diff options
author | Gerald Combs <gerald@wireshark.org> | 2019-06-13 10:25:19 -0700 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2019-06-13 18:02:50 +0000 |
commit | b94047c606a53f405ea24ca5bf5161a74da7d4b9 (patch) | |
tree | 0c1b8091e8533adccb1d92331434f472cef725ba /ui/qt/widgets | |
parent | f41e1d22f0d9b9deb7f7f8dc9e3f81f45faae11a (diff) |
Qt: Add support for template icons.
Add support for ".template" icons, which are masked against the current
WindowText color. Convert the edit-find icons to templates.
Reload our icon(s) when we receive a QEvent::PaletteChange in MainWindow
and in StockIconToolButton.
Clean our SVGs.
To do:
- Convert other black or mostly black icons to templates.
- Handle QEvent::PaletteChange in more places.
Ping-Bug: 15511
Change-Id: I1ce78d92e769861dc38d86a3def5116fb869e2bf
Reviewed-on: https://code.wireshark.org/review/33571
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/qt/widgets')
-rw-r--r-- | ui/qt/widgets/stock_icon_tool_button.cpp | 15 | ||||
-rw-r--r-- | ui/qt/widgets/stock_icon_tool_button.h | 3 |
2 files changed, 13 insertions, 5 deletions
diff --git a/ui/qt/widgets/stock_icon_tool_button.cpp b/ui/qt/widgets/stock_icon_tool_button.cpp index 11a373a57e..3db550ce78 100644 --- a/ui/qt/widgets/stock_icon_tool_button.cpp +++ b/ui/qt/widgets/stock_icon_tool_button.cpp @@ -28,9 +28,7 @@ StockIconToolButton::StockIconToolButton(QWidget * parent, QString stock_icon_na QToolButton(parent), leave_timer_(0) { - if (!stock_icon_name.isEmpty()) { - setStockIcon(stock_icon_name); - } + setStockIcon(stock_icon_name); } void StockIconToolButton::setIconMode(QIcon::Mode mode) @@ -47,7 +45,13 @@ void StockIconToolButton::setIconMode(QIcon::Mode mode) void StockIconToolButton::setStockIcon(QString icon_name) { - base_icon_ = StockIcon(icon_name); + if (!icon_name.isEmpty()) { + icon_name_ = icon_name; + } + if (icon_name_.isEmpty()) { + return; + } + base_icon_ = StockIcon(icon_name_); setIconMode(); } @@ -91,6 +95,9 @@ bool StockIconToolButton::event(QEvent *event) } break; } + case QEvent::PaletteChange: + setStockIcon(); + break; default: break; } diff --git a/ui/qt/widgets/stock_icon_tool_button.h b/ui/qt/widgets/stock_icon_tool_button.h index 793e7fd2ea..7fc0e2f0b8 100644 --- a/ui/qt/widgets/stock_icon_tool_button.h +++ b/ui/qt/widgets/stock_icon_tool_button.h @@ -19,13 +19,14 @@ public: explicit StockIconToolButton(QWidget * parent = 0, QString stock_icon_name = QString()); void setIconMode(QIcon::Mode mode = QIcon::Normal); - void setStockIcon(QString icon_name); + void setStockIcon(QString icon_name = QString()); protected: virtual bool event(QEvent *event); private: QIcon base_icon_; + QString icon_name_; int leave_timer_; static const int leave_interval_ = 500; // ms }; |