ui: made icon buttons self updating on color scheme change

* fixed hatching not replaced in single file view title bar on color scheme change
This commit is contained in:
Eberhard Graether
2018-03-19 22:44:45 +01:00
parent 66ac70850b
commit 166d82b44f
41 changed files with 386 additions and 505 deletions
+15 -51
View File
@@ -5,13 +5,13 @@
#include <QMessageBox>
#include <QPushButton>
#include "qt/element/QtSearchBarButton.h"
#include "qt/utility/utilityQt.h"
#include "qt/view/QtViewWidgetWrapper.h"
#include "qt/window/QtBookmarkCreator.h"
#include "qt/window/QtBookmarkBrowser.h"
#include "qt/view/QtMainView.h"
#include "qt/view/QtViewWidgetWrapper.h"
#include "qt/window/QtBookmarkBrowser.h"
#include "qt/window/QtBookmarkCreator.h"
#include "qt/window/QtMainWindow.h"
#include "settings/ApplicationSettings.h"
#include "utility/ResourcePaths.h"
QtBookmarkView::QtBookmarkView(ViewLayout* viewLayout)
@@ -42,26 +42,23 @@ void QtBookmarkView::initView()
layout->setAlignment(Qt::AlignTop);
m_widget->setLayout(layout);
m_createBookmarkButton = new QPushButton();
m_createBookmarkButton = new QtSearchBarButton(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/edit_bookmark_icon.png"));
m_createBookmarkButton->setObjectName("bookmark_button");
m_createBookmarkButton->setToolTip("create a bookmark for the active symbol");
m_createBookmarkButton->setAttribute(Qt::WA_LayoutUsesWidgetRect); // fixes layouting on Mac
m_createBookmarkButton->setEnabled(false);
layout->addWidget(m_createBookmarkButton);
connect(m_createBookmarkButton, &QPushButton::clicked, this, &QtBookmarkView::createBookmarkClicked);
m_showBookmarksButton = new QPushButton();
m_showBookmarksButton = new QtSearchBarButton(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/bookmark_list_icon.png"));
m_showBookmarksButton->setObjectName("show_bookmark_button");
m_showBookmarksButton->setToolTip("Show bookmarks");
m_showBookmarksButton->setAttribute(Qt::WA_LayoutUsesWidgetRect);
m_showBookmarksButton->setEnabled(false);
layout->addWidget(m_showBookmarksButton);
connect(m_showBookmarksButton, &QPushButton::clicked, this, &QtBookmarkView::showBookmarksClicked);
setStyleSheet();
refreshStyle();
}
void QtBookmarkView::refreshView()
@@ -69,8 +66,9 @@ void QtBookmarkView::refreshView()
m_onQtThread(
[=]()
{
setStyleSheet();
refreshStyle();
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/bookmark_view.css")
).c_str());
}
);
}
@@ -82,10 +80,8 @@ void QtBookmarkView::setCreateButtonState(const CreateButtonState& state)
{
m_createButtonState = state;
m_createBookmarkButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/edit_bookmark_icon.png"),
"search/button"
));
m_createBookmarkButton->setIconPath(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/edit_bookmark_icon.png"));
if (state == BookmarkView::CreateButtonState::CAN_CREATE)
{
@@ -99,10 +95,8 @@ void QtBookmarkView::setCreateButtonState(const CreateButtonState& state)
{
m_createBookmarkButton->setEnabled(true);
m_createBookmarkButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/bookmark_active.png"),
"search/button"
));
m_createBookmarkButton->setIconPath(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/bookmark_active.png"));
}
else
{
@@ -246,33 +240,3 @@ void QtBookmarkView::showBookmarksClicked()
{
m_controllerProxy.executeAsTask(&BookmarkController::displayBookmarks);
}
void QtBookmarkView::setStyleSheet()
{
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/bookmark_view.css")
).c_str());
}
void QtBookmarkView::refreshStyle()
{
float height = std::max(ApplicationSettings::getInstance()->getFontSize() + 16, 30);
m_createBookmarkButton->setFixedHeight(height);
m_showBookmarksButton->setFixedHeight(height);
m_createBookmarkButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/edit_bookmark_icon.png"),
"search/button"
));
m_showBookmarksButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"bookmark_view/images/bookmark_list_icon.png"),
"search/button"
));
int iconSize = int(height / 4) * 2 + 2;
m_createBookmarkButton->setIconSize(QSize(iconSize, iconSize));
m_showBookmarksButton->setIconSize(QSize(iconSize, iconSize));
}
+4 -6
View File
@@ -8,8 +8,8 @@
#include "qt/utility/QtThreadedFunctor.h"
class QFrame;
class QPushButton;
class QtBookmarkBrowser;
class QtSearchBarButton;
class QtBookmarkView
: public QObject
@@ -26,6 +26,7 @@ public:
virtual void initView();
virtual void refreshView();
// BookmarkView implementation
virtual void setCreateButtonState(const CreateButtonState& state);
virtual void displayBookmarkCreator(
@@ -43,16 +44,13 @@ private slots:
void showBookmarksClicked();
private:
void setStyleSheet();
void refreshStyle();
ControllerProxy<BookmarkController> m_controllerProxy;
QtThreadedLambdaFunctor m_onQtThread;
QFrame* m_widget;
QPushButton* m_createBookmarkButton;
QPushButton* m_showBookmarksButton;
QtSearchBarButton* m_createBookmarkButton;
QtSearchBarButton* m_showBookmarksButton;
QtBookmarkBrowser* m_bookmarkBrowser;
+1 -1
View File
@@ -37,7 +37,7 @@ void QtCodeView::refreshView()
setStyleSheet();
m_widget->refreshStyle();
m_widget->clearCaches();
QtCodeArea::clearAnnotationColors();
QtHighlighter::clearHighlightingRules();
+8 -8
View File
@@ -14,6 +14,7 @@
#include <QStyledItemDelegate>
#include "qt/element/QtHelpButton.h"
#include "qt/element/QtIconButton.h"
#include "qt/element/QtTable.h"
#include "qt/utility/utilityQt.h"
#include "qt/view/QtViewWidgetWrapper.h"
@@ -174,17 +175,21 @@ void QtErrorView::initView()
{
m_editButton = new QPushButton("Edit Project");
m_editButton = new QtSelfRefreshIconButton(
"Edit Project",
ResourcePaths::getGuiPath().concatenate(L"code_view/images/edit.png"),
"window/button"
);
m_editButton->setObjectName("screen_button");
m_editButton->setToolTip("edit project");
connect(m_editButton, &QPushButton::clicked,
[]()
{
MessageProjectEdit().dispatch();
}
);
checkboxes->addWidget(m_editButton);
m_editButton->setToolTip("edit project");
checkboxes->addWidget(m_editButton);
}
checkboxes->addSpacing(10);
@@ -309,11 +314,6 @@ void QtErrorView::setStyleSheet() const
m_helpButton->setColor(QColor(ColorScheme::getInstance()->getColor("table/text/normal").c_str()));
m_editButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"code_view/images/edit.png"),
"window/button"
));
m_table->updateRows();
}
+2 -1
View File
@@ -13,6 +13,7 @@ class QLabel;
class QPushButton;
class QStandardItemModel;
class QtHelpButton;
class QtSelfRefreshIconButton;
class QtTable;
class QtErrorView
@@ -77,7 +78,7 @@ private:
QCheckBox* m_showNonIndexedFatals;
QtHelpButton* m_helpButton;
QPushButton* m_editButton;
QtSelfRefreshIconButton* m_editButton;
QStandardItemModel* m_model;
QtTable* m_table;
+20 -47
View File
@@ -10,19 +10,19 @@
#include <QPushButton>
#include <QScrollBar>
#include <QSequentialAnimationGroup>
#include <QStackedLayout>
#include <QSlider>
#include <QStackedLayout>
#include "component/controller/helper/DummyEdge.h"
#include "component/controller/helper/DummyNode.h"
#include "component/view/GraphViewStyle.h"
#include "settings/ApplicationSettings.h"
#include "utility/messaging/type/MessageActivateTrail.h"
#include "utility/messaging/type/MessageDeactivateEdge.h"
#include "utility/messaging/type/MessageScrollGraph.h"
#include "utility/messaging/type/MessageStatus.h"
#include "utility/ResourcePaths.h"
#include "component/controller/helper/DummyEdge.h"
#include "component/controller/helper/DummyNode.h"
#include "component/view/GraphViewStyle.h"
#include "qt/element/QtIconButton.h"
#include "qt/graphics/QtGraphicsView.h"
#include "qt/utility/utilityQt.h"
#include "qt/view/QtViewWidgetWrapper.h"
@@ -35,6 +35,7 @@
#include "qt/view/graphElements/QtGraphNodeExpandToggle.h"
#include "qt/view/graphElements/QtGraphNodeQualifier.h"
#include "qt/view/graphElements/QtGraphNodeText.h"
#include "settings/ApplicationSettings.h"
QtGraphView::QtGraphView(ViewLayout* viewLayout)
: GraphView(viewLayout)
@@ -87,9 +88,11 @@ void QtGraphView::initView()
QStackedLayout* stack = new QStackedLayout();
{
m_expandButton = new QPushButton();
m_expandButton = new QtSelfRefreshIconButton(
"", ResourcePaths::getGuiPath().concatenate(L"graph_view/images/graph.png"), "search/button");
m_expandButton->setObjectName("expand_button");
m_expandButton->setToolTip("show depth graph controls");
m_expandButton->setIconSize(QSize(16, 16));
m_expandButton->setGeometry(0, 0, 26, 26);
connect(m_expandButton, &QPushButton::clicked, this, &QtGraphView::clickedExpand);
stack->addWidget(m_expandButton);
@@ -100,17 +103,21 @@ void QtGraphView::initView()
ui->setGeometry(0, 0, 26, 210);
stack->addWidget(ui);
m_collapseButton = new QPushButton(ui);
m_collapseButton = new QtSelfRefreshIconButton(
"", ResourcePaths::getGuiPath().concatenate(L"graph_view/images/graph_arrow.png"), "search/button", ui);
m_collapseButton->setObjectName("collapse_button");
m_collapseButton->setToolTip("hide depth graph controls");
m_collapseButton->setIconSize(QSize(16, 16));
connect(m_collapseButton, &QPushButton::clicked, this, &QtGraphView::clickedCollapse);
m_forwardTrailButton = new QPushButton(ui);
m_forwardTrailButton = new QtSelfRefreshIconButton("", FilePath(), "search/button", ui);
m_forwardTrailButton->setObjectName("trail_button");
m_forwardTrailButton->setIconSize(QSize(16, 16));
connect(m_forwardTrailButton, &QPushButton::clicked, this, &QtGraphView::clickedForwardTrail);
m_backwardTrailButton = new QPushButton(ui);
m_backwardTrailButton = new QtSelfRefreshIconButton("", FilePath(), "search/button", ui);
m_backwardTrailButton->setObjectName("trail_button");
m_backwardTrailButton->setIconSize(QSize(16, 16));
connect(m_backwardTrailButton, &QPushButton::clicked, this, &QtGraphView::clickedBackwardTrail);
m_trailDepthLabel = new QLabel(ui);
@@ -163,23 +170,8 @@ void QtGraphView::refreshView()
const std::string css = utility::getStyleSheet(ResourcePaths::getGuiPath().concatenate(L"graph_view/graph_view.css"));
view->setStyleSheet(css.c_str());
view->setAppZoomFactor(GraphViewStyle::getZoomFactor());
view->refreshStyle();
m_trailWidget->setStyleSheet(css.c_str());
m_expandButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"graph_view/images/graph.png"),
"search/button"
));
m_collapseButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"graph_view/images/graph_arrow.png"),
"search/button"
));
m_expandButton->setIconSize(QSize(16, 16));
m_collapseButton->setIconSize(QSize(16, 16));
updateTrailButtons();
});
}
@@ -729,16 +721,13 @@ void QtGraphView::updateTrailButtons()
m_trailDepthLabel->setEnabled(message.trailType);
m_trailDepthSlider->setEnabled(message.trailType);
std::wstring backwardImagePath;
std::wstring forwardImagePath;
std::wstring backwardImagePath = L"graph_left.png";
std::wstring forwardImagePath = L"graph_right.png";
if (message.trailType & Edge::EDGE_CALL)
{
m_backwardTrailButton->setToolTip("show caller graph");
m_forwardTrailButton->setToolTip("show callee graph");
backwardImagePath = L"graph_left.png";
forwardImagePath = L"graph_right.png";
}
else if (message.trailType & Edge::EDGE_INHERITANCE)
{
@@ -752,31 +741,15 @@ void QtGraphView::updateTrailButtons()
{
m_backwardTrailButton->setToolTip("show including files hierarchy");
m_forwardTrailButton->setToolTip("show included files hierarchy");
backwardImagePath = L"graph_left.png";
forwardImagePath = L"graph_right.png";
}
else
{
m_backwardTrailButton->setToolTip("no depth graph available for active symbol");
m_forwardTrailButton->setToolTip("no depth graph available for active symbol");
backwardImagePath = L"graph_left.png";
forwardImagePath = L"graph_right.png";
}
m_backwardTrailButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"graph_view/images/" + backwardImagePath),
"search/button"
));
m_forwardTrailButton->setIcon(utility::createButtonIcon(
ResourcePaths::getGuiPath().concatenate(L"graph_view/images/" + forwardImagePath),
"search/button"
));
m_backwardTrailButton->setIconSize(QSize(16, 16));
m_forwardTrailButton->setIconSize(QSize(16, 16));
m_forwardTrailButton->setIconPath(ResourcePaths::getGuiPath().concatenate(L"graph_view/images/" + forwardImagePath));
m_backwardTrailButton->setIconPath(ResourcePaths::getGuiPath().concatenate(L"graph_view/images/" + backwardImagePath));
}
void QtGraphView::switchToNewGraphData()
+7 -5
View File
@@ -23,6 +23,7 @@ class QSlider;
class QtGraphEdge;
class QtGraphicsView;
class QtGraphNode;
class QtSelfRefreshIconButton;
class QtGraphView
: public QObject
@@ -99,7 +100,8 @@ private:
QtGraphNode* createNodeRecursive(
QGraphicsView* view, QtGraphNode* parentNode, const DummyNode* node, bool multipleActive);
QtGraphEdge* createEdge(
QGraphicsView* view, const DummyEdge* edge, std::set<Id>* visibleEdgeIds, Graph::TrailMode trailMode, QPointF pathOffset, bool useBezier);
QGraphicsView* view, const DummyEdge* edge, std::set<Id>* visibleEdgeIds, Graph::TrailMode trailMode,
QPointF pathOffset, bool useBezier);
QtGraphEdge* createAggregationEdge(
QGraphicsView* view, const DummyEdge* edge, std::set<Id>* visibleEdgeIds);
@@ -144,10 +146,10 @@ private:
QtScrollSpeedChangeListener m_scrollSpeedChangeListenerVertical;
QWidget* m_trailWidget;
QPushButton* m_expandButton;
QPushButton* m_collapseButton;
QPushButton* m_forwardTrailButton;
QPushButton* m_backwardTrailButton;
QtSelfRefreshIconButton* m_expandButton;
QtSelfRefreshIconButton* m_collapseButton;
QtSelfRefreshIconButton* m_forwardTrailButton;
QtSelfRefreshIconButton* m_backwardTrailButton;
QSlider* m_trailDepthSlider;
QLabel* m_trailDepthLabel;
+24 -14
View File
@@ -1,18 +1,34 @@
#include "qt/view/QtRefreshView.h"
#include "component/controller/RefreshController.h"
#include <QHBoxLayout>
#include <QFrame>
#include "utility/messaging/type/MessageRefresh.h"
#include "utility/ResourcePaths.h"
#include "qt/element/QtSearchBarButton.h"
#include "qt/utility/utilityQt.h"
#include "qt/view/QtViewWidgetWrapper.h"
#include "utility/ResourcePaths.h"
QtRefreshView::QtRefreshView(ViewLayout* viewLayout)
: RefreshView(viewLayout)
{
m_widget = new QtRefreshBar();
}
m_widget = new QFrame();
m_widget->setObjectName("refresh_bar");
QtRefreshView::~QtRefreshView()
{
QBoxLayout* layout = new QHBoxLayout();
layout->setSpacing(0);
layout->setContentsMargins(0, 0, 0, 0);
layout->setAlignment(Qt::AlignTop);
QtSearchBarButton* refreshButton =
new QtSearchBarButton(ResourcePaths::getGuiPath().concatenate(L"refresh_view/images/refresh.png"));
refreshButton->setObjectName("refresh_button");
refreshButton->setToolTip("refresh");
m_widget->connect(refreshButton, &QPushButton::clicked, [](){ MessageRefresh().dispatch(); });
layout->addWidget(refreshButton);
m_widget->setLayout(layout);
}
void QtRefreshView::createWidgetWrapper()
@@ -28,13 +44,7 @@ void QtRefreshView::refreshView()
{
m_onQtThread([this]()
{
setStyleSheet();
m_widget->refreshStyle();
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"refresh_view/refresh_view.css")).c_str());
});
}
void QtRefreshView::setStyleSheet()
{
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"refresh_view/refresh_view.css")).c_str());
}
+8 -11
View File
@@ -2,29 +2,26 @@
#define QT_REFRESH_VIEW_H
#include "component/view/RefreshView.h"
#include "qt/element/QtRefreshBar.h"
#include "qt/utility/QtThreadedFunctor.h"
class QFrame;
class QtRefreshView
: public RefreshView
{
public:
QtRefreshView(ViewLayout* viewLayout);
~QtRefreshView();
~QtRefreshView() = default;
// View implementation
virtual void createWidgetWrapper();
virtual void initView();
virtual void refreshView();
// RefreshView implementation
void createWidgetWrapper() override;
void initView() override;
void refreshView() override;
private:
void setStyleSheet();
QtThreadedLambdaFunctor m_onQtThread;
QtRefreshBar* m_widget;
QFrame* m_widget;
};
# endif // QT_REFRESH_VIEW_H
#endif // QT_REFRESH_VIEW_H
+2 -3
View File
@@ -1,10 +1,9 @@
#include "qt/view/QtSearchView.h"
#include "qt/utility/utilityQt.h"
#include "utility/ResourcePaths.h"
#include "component/controller/SearchController.h"
#include "qt/element/QtSearchBar.h"
#include "qt/utility/utilityQt.h"
#include "qt/view/QtViewWidgetWrapper.h"
QtSearchView::QtSearchView(ViewLayout* viewLayout)
+4 -2
View File
@@ -4,10 +4,12 @@
#include <vector>
#include "component/view/SearchView.h"
#include "qt/element/QtSearchBar.h"
#include "qt/utility/QtThreadedFunctor.h"
class QtSearchView: public SearchView
class QtSearchBar;
class QtSearchView
: public SearchView
{
public:
QtSearchView(ViewLayout* viewLayout);
+3 -9
View File
@@ -29,8 +29,9 @@ void QtUndoRedoView::refreshView()
m_onQtThread(
[=]()
{
setStyleSheet();
m_widget->refreshStyle();
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"undoredo_view/undoredo_view.css")
).c_str());
}
);
}
@@ -64,10 +65,3 @@ void QtUndoRedoView::updateHistory(const std::vector<SearchMatch>& searchMatches
}
);
}
void QtUndoRedoView::setStyleSheet()
{
m_widget->setStyleSheet(utility::getStyleSheet(
ResourcePaths::getGuiPath().concatenate(L"undoredo_view/undoredo_view.css")
).c_str());
}
-2
View File
@@ -26,8 +26,6 @@ public:
virtual void updateHistory(const std::vector<SearchMatch>& searchMatches, size_t currentIndex);
private:
void setStyleSheet();
QtThreadedLambdaFunctor m_onQtThread;
QtUndoRedo* m_widget;