// For license of this file, see /LICENSE.md. #ifndef TOOLBAREDITOR_H #define TOOLBAREDITOR_H #include #include "ui_toolbareditor.h" namespace Ui { class ToolBarEditor; } class BaseBar; class ToolBarEditor : public QWidget { Q_OBJECT public: explicit ToolBarEditor(QWidget* parent = nullptr); // Toolbar operations. void loadFromToolBar(BaseBar* tool_bar); void saveToolBar(); QListWidget* activeItemsWidget() const; QListWidget* availableItemsWidget() const; protected: virtual bool eventFilter(QObject* object, QEvent* event); private slots: void updateActionsAvailability(); // Insert common controls. void insertSpacer(); void insertSeparator(); void moveActionDown(); void moveActionUp(); void addSelectedAction(); void deleteSelectedAction(); void deleteAllActions(); void resetToolBar(); signals: void setupChanged(); private: void loadEditor(const QList activated_actions, const QList available_actions); QScopedPointer m_ui; BaseBar* m_toolBar; }; inline QListWidget* ToolBarEditor::activeItemsWidget() const { return m_ui->m_listActivatedActions; } inline QListWidget* ToolBarEditor::availableItemsWidget() const { return m_ui->m_listAvailableActions; } #endif // TOOLBAREDITOR_H