| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
|
|
|
|
| #ifndef GUI_ACTION_H
|
| #define GUI_ACTION_H
|
|
|
| #include <memory>
|
| #include <QAction>
|
| #include <QComboBox>
|
| #include <QKeySequence>
|
| #include <QMap>
|
| #include <FCGlobal.h>
|
|
|
| namespace Gui
|
| {
|
| class Command;
|
|
|
| |
| |
| |
| |
| |
| |
|
|
| class GuiExport Action: public QObject
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit Action(Command* pcCmd, QObject* parent = nullptr);
|
|
|
| Action(Command* pcCmd, QAction* action, QObject* parent);
|
| ~Action() override;
|
|
|
| virtual void addTo(QWidget* widget);
|
| virtual void setEnabled(bool);
|
| virtual void setVisible(bool);
|
|
|
| void setCheckable(bool);
|
| void setChecked(bool);
|
| void setBlockedChecked(bool);
|
| bool isChecked() const;
|
| bool isEnabled() const;
|
|
|
| void setShortcut(const QString&);
|
| QKeySequence shortcut() const;
|
| void setIcon(const QIcon&);
|
| QIcon icon() const;
|
| void setStatusTip(const QString&);
|
| QString statusTip() const;
|
| void setText(const QString&);
|
| QString text() const;
|
| void setToolTip(const QString&, const QString& title = QString());
|
| QString toolTip() const;
|
| void setWhatsThis(const QString&);
|
| QString whatsThis() const;
|
| void setMenuRole(QAction::MenuRole menuRole);
|
| QAction* action() const
|
| {
|
| return _action;
|
| }
|
|
|
| static QString createToolTip(
|
| QString helpText,
|
| const QString& title,
|
| const QFont& font,
|
| const QString& shortCut,
|
| const Command* command = nullptr
|
| );
|
|
|
| |
| |
| |
|
|
| static QString commandToolTip(const Command* cmd, bool richFormat = true);
|
|
|
| |
| |
| |
| |
|
|
| static QString commandMenuText(const Command* cmd);
|
|
|
|
|
| static QString cleanTitle(const QString& title);
|
|
|
| Command* command() const
|
| {
|
| return _pcCmd;
|
| }
|
|
|
| public Q_SLOTS:
|
| virtual void onActivated();
|
| virtual void onToggled(bool);
|
|
|
| private:
|
| QAction* _action;
|
| Command* _pcCmd;
|
| QString _tooltip;
|
| QString _title;
|
| QMetaObject::Connection _connection;
|
|
|
| private:
|
| Q_DISABLE_COPY(Action)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
| |
| |
| |
|
|
| class GuiExport ActionGroup: public Action
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit ActionGroup(Command* pcCmd, QObject* parent = nullptr);
|
| ~ActionGroup() override;
|
|
|
| void addTo(QWidget* widget) override;
|
| void setEnabled(bool) override;
|
| void setDisabled(bool);
|
| void setExclusive(bool);
|
| bool isExclusive() const;
|
| void setVisible(bool) override;
|
| void setIsMode(bool check)
|
| {
|
| _isMode = check;
|
| }
|
|
|
| void setRememberLast(bool);
|
| bool doesRememberLast() const;
|
|
|
| void setDropDownMenu(bool check)
|
| {
|
| _dropDown = check;
|
| }
|
| QAction* addAction(QAction*);
|
| QAction* addAction(const QString&);
|
| QList<QAction*> actions() const;
|
| int checkedAction() const;
|
| void setCheckedAction(int);
|
|
|
| QActionGroup* groupAction() const
|
| {
|
| return _group;
|
| }
|
|
|
| public Q_SLOTS:
|
| void onActivated() override;
|
| void onToggled(bool) override;
|
| void onActivated(QAction*);
|
| void onHovered(QAction*);
|
|
|
| Q_SIGNALS:
|
|
|
| void aboutToHide(QMenu*);
|
|
|
| void aboutToShow(QMenu*);
|
|
|
| private:
|
| QActionGroup* _group;
|
| bool _dropDown;
|
| bool _isMode;
|
| bool _rememberLast;
|
|
|
| private:
|
| Q_DISABLE_COPY(ActionGroup)
|
| };
|
|
|
| |
| |
| |
| |
|
|
| class GuiExport WorkbenchGroup: public ActionGroup
|
| {
|
| Q_OBJECT
|
|
|
| QAction* getOrCreateAction(const QString& wbName);
|
|
|
| public:
|
| |
| |
| |
|
|
| WorkbenchGroup(Command* pcCmd, QObject* parent);
|
|
|
| void addTo(QWidget* widget) override;
|
| void refreshWorkbenchList();
|
|
|
| void slotActivateWorkbench(const char*);
|
|
|
| QList<QAction*> getEnabledWbActions() const;
|
| QList<QAction*> getDisabledWbActions() const;
|
|
|
| Q_SIGNALS:
|
| void workbenchListRefreshed(QList<QAction*>);
|
|
|
| protected Q_SLOTS:
|
| void onWorkbenchActivated(const QString&);
|
|
|
| private:
|
| QList<QAction*> enabledWbsActions;
|
| QList<QAction*> disabledWbsActions;
|
|
|
| QMap<QString, QAction*> actionByWorkbenchName;
|
|
|
| Q_DISABLE_COPY(WorkbenchGroup)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
|
|
| class GuiExport RecentFilesAction: public ActionGroup
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit RecentFilesAction(Command* pcCmd, QObject* parent = nullptr);
|
| ~RecentFilesAction() override;
|
|
|
| void appendFile(const QString&);
|
| void activateFile(int);
|
| void resizeList(int);
|
|
|
| Q_SIGNALS:
|
| void recentFilesListModified();
|
|
|
| private:
|
| void setFiles(const QStringList&);
|
| QStringList files() const;
|
| void restore();
|
| void save();
|
|
|
| private:
|
| int visibleItems;
|
| int maximumItems;
|
|
|
| QAction sep, clearRecentFilesListAction;
|
|
|
| class Private;
|
| friend class Private;
|
| std::unique_ptr<Private> _pimpl;
|
|
|
| Q_DISABLE_COPY(RecentFilesAction)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
|
|
| class GuiExport RecentMacrosAction: public ActionGroup
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit RecentMacrosAction(Command* pcCmd, QObject* parent = nullptr);
|
|
|
| void appendFile(const QString&);
|
| void activateFile(int);
|
| void resizeList(int);
|
|
|
| private:
|
| void setFiles(const QStringList&);
|
| QStringList files() const;
|
| void restore();
|
| void save();
|
|
|
| private:
|
| int visibleItems;
|
| int maximumItems;
|
| std::string shortcut_modifiers;
|
| int shortcut_count;
|
|
|
| Q_DISABLE_COPY(RecentMacrosAction)
|
| };
|
|
|
|
|
|
|
|
|
| |
| |
| |
| |
|
|
| class GuiExport UndoAction: public Action
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit UndoAction(Command* pcCmd, QObject* parent = nullptr);
|
| ~UndoAction() override;
|
| void addTo(QWidget* widget) override;
|
| void setEnabled(bool) override;
|
| void setVisible(bool) override;
|
|
|
| private Q_SLOTS:
|
| void actionChanged();
|
|
|
| private:
|
| QAction* _toolAction;
|
|
|
| Q_DISABLE_COPY(UndoAction)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
| |
|
|
| class GuiExport RedoAction: public Action
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit RedoAction(Command* pcCmd, QObject* parent = nullptr);
|
| ~RedoAction() override;
|
| void addTo(QWidget* widget) override;
|
| void setEnabled(bool) override;
|
| void setVisible(bool) override;
|
|
|
| private Q_SLOTS:
|
| void actionChanged();
|
|
|
| private:
|
| QAction* _toolAction;
|
|
|
| Q_DISABLE_COPY(RedoAction)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
|
|
| class GuiExport DockWidgetAction: public Action
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit DockWidgetAction(Command* pcCmd, QObject* parent = nullptr);
|
| ~DockWidgetAction() override;
|
| void addTo(QWidget* widget) override;
|
|
|
| private:
|
| QMenu* _menu;
|
|
|
| Q_DISABLE_COPY(DockWidgetAction)
|
| };
|
|
|
|
|
|
|
| |
| |
| |
|
|
| class GuiExport ToolBarAction: public Action
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit ToolBarAction(Command* pcCmd, QObject* parent = nullptr);
|
| ~ToolBarAction() override;
|
| void addTo(QWidget* widget) override;
|
|
|
| private:
|
| QMenu* _menu;
|
|
|
| Q_DISABLE_COPY(ToolBarAction)
|
| };
|
|
|
|
|
|
|
| |
| |
|
|
| class GuiExport WindowAction: public ActionGroup
|
| {
|
| Q_OBJECT
|
|
|
| public:
|
| explicit WindowAction(Command* pcCmd, QObject* parent = nullptr);
|
| void addTo(QWidget* widget) override;
|
|
|
| private:
|
| QMenu* _menu;
|
|
|
| Q_DISABLE_COPY(WindowAction)
|
| };
|
|
|
| }
|
|
|
| #endif
|
|
|