File indexing completed on 2024-05-12 16:02:28
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_HIGHLIGHTED_TOOL_BUTTON_H 0008 #define __KIS_HIGHLIGHTED_TOOL_BUTTON_H 0009 0010 #include <QToolButton> 0011 #include <QEvent> 0012 0013 #include "kritawidgetutils_export.h" 0014 0015 class KRITAWIDGETUTILS_EXPORT KisHighlightedToolButton : public QToolButton 0016 { 0017 public: 0018 KisHighlightedToolButton(QWidget *parent = 0) 0019 : QToolButton(parent) 0020 { 0021 } 0022 0023 void changeEvent(QEvent *event) override { 0024 if (event->type() == QEvent::PaletteChange) { 0025 updatePalette(); 0026 } 0027 } 0028 0029 protected: 0030 void checkStateSet() override { 0031 QToolButton::checkStateSet(); 0032 updatePalette(); 0033 } 0034 0035 void nextCheckState() override { 0036 QToolButton::nextCheckState(); 0037 updatePalette(); 0038 } 0039 0040 private: 0041 void updatePalette() { 0042 QWidget *parent = this->parentWidget(); 0043 if (parent) { 0044 QPalette p = parent->palette(); 0045 QColor color = p.color(this->isChecked() ? QPalette::Highlight : QPalette::Button); 0046 p.setColor(QPalette::Button, color); 0047 this->setPalette(p); 0048 } 0049 } 0050 }; 0051 0052 0053 #endif /* __KIS_HIGHLIGHTED_BUTTON_H */