20 #ifndef LIBREPCB_EDITOR_EDITORCOMMAND_H 21 #define LIBREPCB_EDITOR_EDITORCOMMAND_H 54 Q_DECLARE_FLAGS(Flags,
Flag)
57 NoShortcuts = (1 << 0),
58 WidgetShortcut = (1 << 1),
59 ApplicationShortcut = (1 << 2),
60 QueuedConnection = (1 << 3),
61 ReactOnToggle = (1 << 4),
69 const char* description,
const QString& iconFp, Flags flags,
70 const QList<QKeySequence>& defaultKeySequences,
71 QObject* parent =
nullptr) noexcept;
97 ActionFlags flags = ActionFlags())
const noexcept;
98 template <
typename TContext,
typename TSlot>
99 QAction*
createAction(QObject* parent,
const TContext* context, TSlot slot,
100 ActionFlags flags = ActionFlags()) const noexcept {
103 ? Qt::QueuedConnection
104 : Qt::AutoConnection;
106 QObject::connect(action, &QAction::toggled, context, slot, conType);
108 QObject::connect(action, &QAction::triggered, context, slot, conType);
120 QAction*
setupAction(QAction* action, ActionFlags flags)
const noexcept;
121 bool eventFilter(QObject* obj, QEvent* event) noexcept
override;
139 Q_DECLARE_OPERATORS_FOR_FLAGS(librepcb::editor::EditorCommand::Flags)
140 Q_DECLARE_OPERATORS_FOR_FLAGS(librepcb::editor::EditorCommand::ActionFlags)
void updateTranslations() noexcept
Definition: editorcommand.cpp:102
React on toggled() instead of triggered().
QString getDisplayTextNoTr() const noexcept
Definition: editorcommand.h:78
Create a queued signal/slot connection.
const QList< QKeySequence > getDefaultKeySequences() const noexcept
Definition: editorcommand.h:84
QList< QKeySequence > mDefaultKeySequences
Definition: editorcommand.h:132
QString getDisplayText() const noexcept
Definition: editorcommand.h:77
ActionFlag
Definition: editorcommand.h:56
Definition: occmodel.cpp:77
QString mText
Definition: editorcommand.h:127
QString mIdentifier
Definition: editorcommand.h:125
void setKeySequences(const QList< QKeySequence > &sequences) noexcept
Definition: editorcommand.cpp:90
QAction * createAction(QObject *parent, const TContext *context, TSlot slot, ActionFlags flags=ActionFlags()) const noexcept
Definition: editorcommand.h:99
QAction * createAction(QObject *parent, ActionFlags flags=ActionFlags()) const noexcept
Definition: editorcommand.cpp:109
const QString & getIdentifier() const noexcept
Definition: editorcommand.h:75
const char * mTextNoTr
Definition: editorcommand.h:126
bool eventFilter(QObject *obj, QEvent *event) noexcept override
Definition: editorcommand.cpp:160
QString mDescription
Definition: editorcommand.h:129
const QIcon & getIcon() const noexcept
Definition: editorcommand.h:82
Command for editors, e.g. to be added to a QMenu.
Definition: editorcommand.h:42
~EditorCommand() noexcept
Definition: editorcommand.cpp:83
QList< QKeySequence > mKeySequences
Definition: editorcommand.h:133
QIcon mIcon
Definition: editorcommand.h:130
static QString unescapeAmpersand(QString text) noexcept
Definition: editorcommand.cpp:210
const Flags & getFlags() const noexcept
Definition: editorcommand.h:83
const QString & getDescription() const noexcept
Definition: editorcommand.h:81
QAction * setupAction(QAction *action, ActionFlags flags) const noexcept
Definition: editorcommand.cpp:118
const char * mDescriptionNoTr
Definition: editorcommand.h:128
EditorCommand & operator=(const EditorCommand &rhs)=delete
Flags mFlags
Definition: editorcommand.h:131
const QList< QKeySequence > & getKeySequences() const noexcept
Definition: editorcommand.h:87
void shortcutsChanged(const QList< QKeySequence > &sequences)
const QString & getText() const noexcept
Definition: editorcommand.h:76
Flag
Definition: editorcommand.h:47