diff --git a/bin/app/data/color_schemes/bad_rainbow.xml b/bin/app/data/color_schemes/bad_rainbow.xml index e5477ef9..15a92e60 100644 --- a/bin/app/data/color_schemes/bad_rainbow.xml +++ b/bin/app/data/color_schemes/bad_rainbow.xml @@ -10,6 +10,7 @@ #CCCCCC #606060 white + #808080 @@ -72,7 +73,20 @@ #494949 - #CCCCCC + + + #A0A0A0 + #CCCCCC + + + #CCCCCC diff --git a/bin/app/data/color_schemes/bright.xml b/bin/app/data/color_schemes/bright.xml index 3411c17d..15a48e3a 100644 --- a/bin/app/data/color_schemes/bright.xml +++ b/bin/app/data/color_schemes/bright.xml @@ -8,8 +8,9 @@ #E0E0E0 #B2B2B2 #626262 - #F4F4F4 + #F2F2F2 white + #FDFDFD @@ -72,7 +73,20 @@ white - #B2B2B2 + + + #BCBCBC + #B2B2B2 + + + #E0E0E0 diff --git a/bin/app/data/color_schemes/dark.xml b/bin/app/data/color_schemes/dark.xml index 972fcb5d..22242c3d 100644 --- a/bin/app/data/color_schemes/dark.xml +++ b/bin/app/data/color_schemes/dark.xml @@ -10,6 +10,7 @@ #444444 #333333 white + #777777 @@ -72,7 +73,20 @@ #272728 - #CCC + + + #A0A0A0 + #CCC + + + #777777 diff --git a/bin/app/data/gui/code_view/code_view.css b/bin/app/data/gui/code_view/code_view.css index 2c4d2192..1c571130 100644 --- a/bin/app/data/gui/code_view/code_view.css +++ b/bin/app/data/gui/code_view/code_view.css @@ -1,4 +1,4 @@ -#code_navigation, #code_container, #code_container_single, #code_file_list, #code_file_single { +#code_navigation, #code_container, #code_file_list, #code_file_single { background-color: ; } @@ -6,8 +6,14 @@ border: none; } -#code_container { - border-top: 1px solid ; +#separator_gap { + background-color: ; + border: none; +} + +#separator_line { + background-color: ; + border: none; } #code_navigation * { @@ -16,52 +22,60 @@ } #code_navigation QPushButton { - background: ; + background: ; border: none; - color: ; + color: ; height: 24px; width: 24px; } #code_navigation QPushButton:hover, #code_navigation QPushButton:checked { - background: ; + background: ; } #code_navigation QPushButton:disabled { - background: ; + background: ; } #code_navigation QPushButton:pressed { - background: ; + background: ; } -#code_navigation #reference_button_previous, #code_navigation #reference_button_next { - border-radius: 12px; +#code_navigation #reference_button_previous { + border-bottom-left-radius: 11px; + border-top-left-radius: 11px; +} + +#code_navigation #reference_button_next { + border-bottom-right-radius: 11px; + border-top-right-radius: 11px; } #code_navigation #references_label { - background-color: ; border: none; border-radius: 10px; - color: ; + color: ; font-size: px; padding: 0px 3px; margin: 4px 6px 4px 6px; } -#code_navigation #mode_button_list, #code_navigation #mode_button_single { - padding-left: 3px; - padding-right: 3px; -} - #code_navigation #mode_button_list { - border-bottom-left-radius: 12px; - border-top-left-radius: 12px; + padding-left: 2px; } #code_navigation #mode_button_single { - border-bottom-right-radius: 12px; - border-top-right-radius: 12px; + padding-right: 2px; +} + +#code_navigation #mode_button_list { + border-bottom-left-radius: 11px; + border-top-left-radius: 11px; +} + +#code_navigation #mode_button_single { + border-bottom-right-radius: 11px; + border-top-right-radius: 11px; } #code_file { diff --git a/bin/app/data/gui/code_view/images/arrow_left.png b/bin/app/data/gui/code_view/images/arrow_left.png new file mode 100644 index 00000000..ef4d39da Binary files /dev/null and b/bin/app/data/gui/code_view/images/arrow_left.png differ diff --git a/bin/app/data/gui/code_view/images/arrow_right.png b/bin/app/data/gui/code_view/images/arrow_right.png new file mode 100644 index 00000000..068ce5b2 Binary files /dev/null and b/bin/app/data/gui/code_view/images/arrow_right.png differ diff --git a/bin/app/data/gui/code_view/images/file.png b/bin/app/data/gui/code_view/images/file.png new file mode 100644 index 00000000..0d8b37ae Binary files /dev/null and b/bin/app/data/gui/code_view/images/file.png differ diff --git a/bin/app/data/gui/code_view/images/list.png b/bin/app/data/gui/code_view/images/list.png new file mode 100644 index 00000000..5246233b Binary files /dev/null and b/bin/app/data/gui/code_view/images/list.png differ diff --git a/src/lib_gui/qt/element/QtCodeFileSingle.cpp b/src/lib_gui/qt/element/QtCodeFileSingle.cpp index 232903d6..cb62ed65 100644 --- a/src/lib_gui/qt/element/QtCodeFileSingle.cpp +++ b/src/lib_gui/qt/element/QtCodeFileSingle.cpp @@ -22,7 +22,7 @@ QtCodeFileSingle::QtCodeFileSingle(QtCodeNavigator* navigator, QWidget* parent) , m_area(nullptr) , m_contentRequested(false) { - setObjectName("code_container_single"); + setObjectName("code_container"); setLayout(new QVBoxLayout(this)); layout()->setContentsMargins(0, 0, 0, 0); diff --git a/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp b/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp index 9c64ff3a..8947b4f7 100644 --- a/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp +++ b/src/lib_gui/qt/element/QtCodeFileTitleButton.cpp @@ -33,7 +33,7 @@ void QtCodeFileTitleButton::setFilePath(const FilePath& filePath) setText(filePath.fileName().c_str()); setToolTip(filePath.str().c_str()); - std::string text = ResourcePaths::getGuiPath() + "graph_view/images/file.png"; + std::string text = ResourcePaths::getGuiPath() + "code_view/images/file.png"; setIcon(utility::colorizePixmap( QPixmap(text.c_str()), diff --git a/src/lib_gui/qt/element/QtCodeNavigator.cpp b/src/lib_gui/qt/element/QtCodeNavigator.cpp index 14ec44dd..11a701e6 100644 --- a/src/lib_gui/qt/element/QtCodeNavigator.cpp +++ b/src/lib_gui/qt/element/QtCodeNavigator.cpp @@ -7,18 +7,21 @@ #include #include -#include "data/location/TokenLocation.h" -#include "data/location/TokenLocationCollection.h" -#include "data/location/TokenLocationFile.h" #include "utility/logging/logging.h" #include "utility/messaging/type/MessageCodeViewExpandedInitialFiles.h" #include "utility/messaging/type/MessageScrollCode.h" #include "utility/messaging/type/MessageShowReference.h" +#include "utility/ResourcePaths.h" -#include "settings/ApplicationSettings.h" +#include "data/location/TokenLocation.h" +#include "data/location/TokenLocationCollection.h" +#include "data/location/TokenLocationFile.h" #include "qt/element/QtCodeFile.h" #include "qt/element/QtCodeSnippet.h" +#include "qt/utility/QtDeviceScaledPixmap.h" #include "qt/utility/utilityQt.h" +#include "settings/ApplicationSettings.h" + QtCodeNavigator::QtCodeNavigator(QWidget* parent) : QWidget(parent) @@ -39,11 +42,11 @@ QtCodeNavigator::QtCodeNavigator(QWidget* parent) QHBoxLayout* navLayout = new QHBoxLayout(); navLayout->setSpacing(2); - navLayout->setContentsMargins(7, 7, 7, 7); + navLayout->setContentsMargins(7, 7, 7, 6); - m_prevButton = new QPushButton("<"); - m_nextButton = new QPushButton(">"); + m_prevButton = new QPushButton(); + m_nextButton = new QPushButton(); m_prevButton->setObjectName("reference_button_previous"); m_nextButton->setObjectName("reference_button_next"); @@ -65,12 +68,15 @@ QtCodeNavigator::QtCodeNavigator(QWidget* parent) navLayout->addStretch(); - m_listButton = new QPushButton("list"); - m_fileButton = new QPushButton("file"); + m_listButton = new QPushButton(); + m_fileButton = new QPushButton(); m_listButton->setObjectName("mode_button_list"); m_fileButton->setObjectName("mode_button_single"); + m_listButton->setToolTip("snippet list mode"); + m_fileButton->setToolTip("single file mode"); + m_listButton->setCheckable(true); m_fileButton->setCheckable(true); @@ -83,6 +89,30 @@ QtCodeNavigator::QtCodeNavigator(QWidget* parent) navigation->setLayout(navLayout); layout->addWidget(navigation); + + refreshStyle(); + + QHBoxLayout* separatorLayout = new QHBoxLayout(); + + QWidget* widget = new QWidget(); + widget->setObjectName("separator_gap"); + widget->setFixedWidth(7); + separatorLayout->addWidget(widget); + + m_separatorLine = new QFrame(); + m_separatorLine->setFrameShape(QFrame::HLine); + m_separatorLine->setFrameShadow(QFrame::Plain); + m_separatorLine->setObjectName("separator_line"); + m_separatorLine->setFixedHeight(1); + m_separatorLine->hide(); + separatorLayout->addWidget(m_separatorLine); + + QWidget* widget2 = new QWidget(); + widget2->setObjectName("separator_gap"); + widget2->setFixedWidth(7); + separatorLayout->addWidget(widget2); + + layout->addLayout(separatorLayout); } m_list = new QtCodeFileList(this); @@ -435,6 +465,41 @@ void QtCodeNavigator::showContents() m_current->showContents(); } +void QtCodeNavigator::refreshStyle() +{ + float height = std::max(ApplicationSettings::getInstance()->getFontSize() + 10, 24); + + m_prevButton->setFixedHeight(height); + m_nextButton->setFixedHeight(height); + m_listButton->setFixedHeight(height); + m_fileButton->setFixedHeight(height); + + m_prevButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "code_view/images/arrow_left.png", + "code/navigation/button" + )); + + m_nextButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "code_view/images/arrow_right.png", + "code/navigation/button" + )); + + m_listButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "code_view/images/list.png", + "code/navigation/button" + )); + + m_fileButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "code_view/images/file.png", + "code/navigation/button" + )); + + m_prevButton->setIconSize(QSize(12, 12)); + m_nextButton->setIconSize(QSize(12, 12)); + m_listButton->setIconSize(QSize(14, 14)); + m_fileButton->setIconSize(QSize(14, 14)); +} + void QtCodeNavigator::scrollToValue(int value, bool inListMode) { if ((m_mode == MODE_LIST) == inListMode) @@ -623,11 +688,13 @@ void QtCodeNavigator::setMode(Mode mode) case MODE_SINGLE: m_list->hide(); m_single->show(); + m_separatorLine->hide(); m_current = m_single; break; case MODE_LIST: m_single->hide(); m_list->show(); + m_separatorLine->show(); m_current = m_list; break; default: diff --git a/src/lib_gui/qt/element/QtCodeNavigator.h b/src/lib_gui/qt/element/QtCodeNavigator.h index f59ab061..7a8e5fa9 100644 --- a/src/lib_gui/qt/element/QtCodeNavigator.h +++ b/src/lib_gui/qt/element/QtCodeNavigator.h @@ -75,6 +75,8 @@ public: void updateFiles(); void showContents(); + void refreshStyle(); + void scrollToValue(int value, bool inListMode); void scrollToLine(const FilePath& filePath, unsigned int line); void scrollToDefinition(); @@ -170,6 +172,7 @@ private: QLabel* m_refLabel; QPushButton* m_prevButton; QPushButton* m_nextButton; + QFrame* m_separatorLine; std::vector m_references; size_t m_refIndex; diff --git a/src/lib_gui/qt/element/QtRefreshBar.cpp b/src/lib_gui/qt/element/QtRefreshBar.cpp index 13567a72..88e66e4c 100644 --- a/src/lib_gui/qt/element/QtRefreshBar.cpp +++ b/src/lib_gui/qt/element/QtRefreshBar.cpp @@ -9,7 +9,6 @@ #include "qt/utility/utilityQt.h" #include "settings/ApplicationSettings.h" -#include "settings/ColorScheme.h" QtRefreshBar::QtRefreshBar() { @@ -49,10 +48,9 @@ void QtRefreshBar::refreshStyle() m_refreshButton->setFixedHeight(height); - std::string map = ResourcePaths::getGuiPath() + "refresh_view/images/refresh.png"; - m_refreshButton->setIcon(utility::colorizePixmap( - QPixmap(map.c_str()), - ColorScheme::getInstance()->getColor("search/button/icon").c_str() + m_refreshButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "refresh_view/images/refresh.png", + "search/button" )); } diff --git a/src/lib_gui/qt/element/QtSearchBar.cpp b/src/lib_gui/qt/element/QtSearchBar.cpp index bd99920c..036407bd 100644 --- a/src/lib_gui/qt/element/QtSearchBar.cpp +++ b/src/lib_gui/qt/element/QtSearchBar.cpp @@ -9,7 +9,6 @@ #include "qt/element/QtSmartSearchBox.h" #include "qt/utility/utilityQt.h" #include "settings/ApplicationSettings.h" -#include "settings/ColorScheme.h" QtSearchBar::QtSearchBar() { @@ -102,16 +101,14 @@ void QtSearchBar::refreshStyle() m_searchButton->setFixedHeight(m_searchBox->height() + 5); m_homeButton->setFixedHeight(m_searchBox->height() + 5); - std::string map = ResourcePaths::getGuiPath() + "search_view/images/search.png"; - m_searchButton->setIcon(utility::colorizePixmap( - QPixmap(map.c_str()), - ColorScheme::getInstance()->getColor("search/button/icon").c_str() + m_searchButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "search_view/images/search.png", + "search/button" )); - map = ResourcePaths::getGuiPath() + "search_view/images/home.png"; - m_homeButton->setIcon(utility::colorizePixmap( - QPixmap(map.c_str()), - ColorScheme::getInstance()->getColor("search/button/icon").c_str() + m_homeButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "search_view/images/home.png", + "search/button" )); } diff --git a/src/lib_gui/qt/element/QtUndoRedo.cpp b/src/lib_gui/qt/element/QtUndoRedo.cpp index 996d489c..ea372091 100644 --- a/src/lib_gui/qt/element/QtUndoRedo.cpp +++ b/src/lib_gui/qt/element/QtUndoRedo.cpp @@ -9,7 +9,6 @@ #include "qt/utility/utilityQt.h" #include "settings/ApplicationSettings.h" -#include "settings/ColorScheme.h" QtUndoRedo::QtUndoRedo() { @@ -72,13 +71,13 @@ void QtUndoRedo::refreshStyle() m_undoButton->setFixedHeight(height); m_redoButton->setFixedHeight(height); - m_undoButton->setIcon(utility::colorizePixmap( - QPixmap((ResourcePaths::getGuiPath() + "undoredo_view/images/arrow_left.png").c_str()), - ColorScheme::getInstance()->getColor("search/button/icon").c_str() + m_undoButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "undoredo_view/images/arrow_left.png", + "search/button" )); - m_redoButton->setIcon(utility::colorizePixmap( - QPixmap((ResourcePaths::getGuiPath() + "undoredo_view/images/arrow_right.png").c_str()), - ColorScheme::getInstance()->getColor("search/button/icon").c_str() + m_redoButton->setIcon(utility::createButtonIcon( + ResourcePaths::getGuiPath() + "undoredo_view/images/arrow_right.png", + "search/button" )); } diff --git a/src/lib_gui/qt/utility/utilityQt.cpp b/src/lib_gui/qt/utility/utilityQt.cpp index 99ffba55..22f70464 100644 --- a/src/lib_gui/qt/utility/utilityQt.cpp +++ b/src/lib_gui/qt/utility/utilityQt.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -157,6 +158,19 @@ namespace utility return QPixmap::fromImage(image); } + QIcon createButtonIcon(const std::string& iconPath, const std::string& colorId) + { + QPixmap pixmap(iconPath.c_str()); + + QIcon icon(utility::colorizePixmap(pixmap, ColorScheme::getInstance()->getColor(colorId + "/icon").c_str())); + icon.addPixmap( + utility::colorizePixmap(pixmap, ColorScheme::getInstance()->getColor(colorId + "/icon_disabled").c_str()), + QIcon::Disabled + ); + + return icon; + } + void copyNewFilesFromDirectory(QString src, QString dst) { QDir dir(src); diff --git a/src/lib_gui/qt/utility/utilityQt.h b/src/lib_gui/qt/utility/utilityQt.h index 9cb9d372..481b80f8 100644 --- a/src/lib_gui/qt/utility/utilityQt.h +++ b/src/lib_gui/qt/utility/utilityQt.h @@ -4,6 +4,7 @@ #include class QColor; +class QIcon; class QPixmap; class QString; class QWidget; @@ -16,6 +17,7 @@ namespace utility std::string getStyleSheet(const std::string& path); QPixmap colorizePixmap(const QPixmap& pixmap, QColor color); + QIcon createButtonIcon(const std::string& iconPath, const std::string& colorId); void copyNewFilesFromDirectory(QString src, QString dst); } diff --git a/src/lib_gui/qt/view/QtCodeView.cpp b/src/lib_gui/qt/view/QtCodeView.cpp index 358fefb3..de886d50 100644 --- a/src/lib_gui/qt/view/QtCodeView.cpp +++ b/src/lib_gui/qt/view/QtCodeView.cpp @@ -46,6 +46,8 @@ void QtCodeView::refreshView() { setStyleSheet(); + m_widget->refreshStyle(); + QtCodeArea::clearAnnotationColors(); QtHighlighter::clearHighlightingRules(); }