File indexing completed on 2024-04-28 04:37:31

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