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