File indexing completed on 2024-05-19 08:29:16
0001 /* 0002 SPDX-FileCopyrightText: 2007 Roberto Raggi <roberto@kdevelop.org> 0003 SPDX-FileCopyrightText: 2007 Hamish Rodda <rodda@kde.org> 0004 SPDX-FileCopyrightText: 2011 Alexander Dymo <adymo@kdevelop.org> 0005 0006 SPDX-License-Identifier: LicenseRef-MIT-KDevelop-Ideal 0007 */ 0008 0009 #ifndef IDEALBUTTONBARWIDGET_H 0010 #define IDEALBUTTONBARWIDGET_H 0011 0012 #include <QWidget> 0013 0014 class IdealToolButton; 0015 class ToolViewAction; 0016 class QAction; 0017 0018 class KConfigGroup; 0019 0020 namespace Sublime 0021 { 0022 0023 class MainWindow; 0024 class IdealController; 0025 class IdealDockWidget; 0026 class IdealButtonBarLayout; 0027 class View; 0028 class Area; 0029 0030 class IdealButtonBarWidget: public QWidget 0031 { 0032 Q_OBJECT 0033 0034 public: 0035 IdealButtonBarWidget(Qt::DockWidgetArea area, 0036 IdealController *controller, Sublime::MainWindow *parent); 0037 0038 QAction* addWidget(IdealDockWidget *widget, 0039 Area* area, View *view); 0040 0041 void addAction(QAction *action); 0042 void removeAction(QAction* action); 0043 0044 Qt::Orientation orientation() const; 0045 0046 Qt::DockWidgetArea area() const; 0047 0048 IdealDockWidget* widgetForAction(QAction* action) const; 0049 0050 QWidget* corner() const; 0051 0052 void showWidget(QAction *widgetAction, bool checked); 0053 bool isEmpty() const; 0054 0055 bool isShown() const; 0056 void saveShowState(); 0057 bool lastShowState(); 0058 0059 void loadOrderSettings(const KConfigGroup& configGroup); 0060 void saveOrderSettings(KConfigGroup& configGroup); 0061 0062 bool isLocked() const; 0063 0064 Q_SIGNALS: 0065 void emptyChanged(); 0066 0067 private: 0068 void showWidget(bool checked); 0069 0070 void applyOrderToLayout(); 0071 void takeOrderFromLayout(); 0072 0073 IdealToolButton* button(const QString& id) const; 0074 QString id(const IdealToolButton* button) const; 0075 0076 void addButtonToOrder(const IdealToolButton* button); 0077 0078 Qt::DockWidgetArea m_area; 0079 IdealController* m_controller; 0080 QWidget* m_corner; 0081 bool m_showState; 0082 QStringList m_buttonsOrder; 0083 IdealButtonBarLayout* m_buttonsLayout; 0084 }; 0085 0086 } 0087 0088 #endif // IDEALBUTTONBARWIDGET_H