File indexing completed on 2024-05-12 04:38:23
0001 /* 0002 SPDX-FileCopyrightText: David Nolden <david.nolden.kdevelop@art-master.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KDEVPLATFORM_WORKINGSETTOOLBUTTON_H 0008 #define KDEVPLATFORM_WORKINGSETTOOLBUTTON_H 0009 0010 #include <QToolButton> 0011 0012 namespace KDevelop { 0013 0014 class MainWindow; 0015 class WorkingSet; 0016 0017 /** 0018 * @note This button should be hidden when it is not associated to any set! 0019 */ 0020 class WorkingSetToolButton : public QToolButton { 0021 Q_OBJECT 0022 0023 public: 0024 WorkingSetToolButton(QWidget* parent, WorkingSet* set); 0025 0026 void disableTooltip() { 0027 m_toolTipEnabled = false; 0028 } 0029 0030 WorkingSet* workingSet() const; 0031 void setWorkingSet(WorkingSet* set); 0032 0033 public Q_SLOTS: 0034 void closeSet(); 0035 void loadSet(); 0036 void duplicateSet(); 0037 void mergeSet(); 0038 void subtractSet(); 0039 void intersectSet(); 0040 void buttonTriggered(); 0041 0042 private Q_SLOTS: 0043 void showTooltip(const QPoint& globalPos); 0044 0045 private: 0046 void contextMenuEvent(QContextMenuEvent* ev) override; 0047 bool event(QEvent* e) override; 0048 WorkingSet* m_set; 0049 bool m_toolTipEnabled; 0050 }; 0051 0052 } 0053 0054 #endif // KDEVPLATFORM_WORKINGSETTOOLBUTTON_H