KXmlGui

kactioncollection.h
1/*
2 This file is part of the KDE libraries
3 SPDX-FileCopyrightText: 1999 Reginald Stadlbauer <reggie@kde.org>
4 SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
5 SPDX-FileCopyrightText: 2000 Nicolas Hadacek <haadcek@kde.org>
6 SPDX-FileCopyrightText: 2000 Kurt Granroth <granroth@kde.org>
7 SPDX-FileCopyrightText: 2000 Michael Koch <koch@kde.org>
8 SPDX-FileCopyrightText: 2001 Holger Freyther <freyther@kde.org>
9 SPDX-FileCopyrightText: 2002 Ellis Whitehead <ellis@kde.org>
10 SPDX-FileCopyrightText: 2005-2006 Hamish Rodda <rodda@kde.org>
11
12 SPDX-License-Identifier: LGPL-2.0-only
13*/
14
15#ifndef KACTIONCOLLECTION_H
16#define KACTIONCOLLECTION_H
17
18#include <KStandardAction>
19#include <KStandardActions>
20#include <kxmlgui_export.h>
21
22#include <QAction>
23#include <QObject>
24#include <memory>
25
26class KXMLGUIClient;
27class KConfigGroup;
28class QActionGroup;
29class QString;
30
31/**
32 * @class KActionCollection kactioncollection.h KActionCollection
33 *
34 * \short A container for a set of QAction objects.
35 *
36 * KActionCollection manages a set of QAction objects. It
37 * allows them to be grouped for organized presentation of configuration to the user,
38 * saving + loading of configuration, and optionally for automatic plugging into
39 * specified widget(s).
40 *
41 * Additionally, KActionCollection provides several convenience functions for locating
42 * named actions, and actions grouped by QActionGroup.
43 *
44 * \note If you create your own action collection and need to assign shortcuts
45 * to the actions within, you have to call associateWidget() or
46 * addAssociatedWidget() to have them working.
47 */
48class KXMLGUI_EXPORT KActionCollection : public QObject
49{
50 friend class KXMLGUIClient;
51
53
54 Q_PROPERTY(QString configGroup READ configGroup WRITE setConfigGroup)
55 Q_PROPERTY(bool configIsGlobal READ configIsGlobal WRITE setConfigGlobal)
56
57public:
58 /**
59 * Constructor. Allows specification of a component name other than the default
60 * application name, where needed (remember to call setComponentDisplayName() too).
61 */
62 explicit KActionCollection(QObject *parent, const QString &cName = QString());
63
64 /**
65 * Destructor.
66 */
67 ~KActionCollection() override;
68
69 /**
70 * Access the list of all action collections in existence for this app
71 */
73
74 /**
75 * Clears the entire action collection, deleting all actions.
76 */
77 void clear();
78
79 /**
80 * Associate all actions in this collection to the given @p widget.
81 * Unlike addAssociatedWidget(), this method only adds all current actions
82 * in the collection to the given widget. Any action added after this call
83 * will not be added to the given widget automatically.
84 * So this is just a shortcut for a foreach loop and a widget->addAction call.
85 */
86 void associateWidget(QWidget *widget) const;
87
88 /**
89 * Associate all actions in this collection to the given @p widget, including any actions
90 * added after this association is made.
91 *
92 * This does not change the action's shortcut context, so if you need to have the actions only
93 * trigger when the widget has focus, you'll need to set the shortcut context on each action
94 * to Qt::WidgetShortcut (or better still, Qt::WidgetWithChildrenShortcut with Qt 4.4+)
95 */
96 void addAssociatedWidget(QWidget *widget);
97
98 /**
99 * Remove an association between all actions in this collection and the given @p widget, i.e.
100 * remove those actions from the widget, and stop associating newly added actions as well.
101 */
102 void removeAssociatedWidget(QWidget *widget);
103
104 /**
105 * Return a list of all associated widgets.
106 */
108
109 /**
110 * Clear all associated widgets and remove the actions from those widgets.
111 */
113
114 /**
115 * Returns the KConfig group with which settings will be loaded and saved.
116 */
117 QString configGroup() const;
118
119 /**
120 * Returns whether this action collection's configuration should be global to KDE ( @c true ),
121 * or specific to the application ( @c false ).
122 */
123 bool configIsGlobal() const;
124
125 /**
126 * Sets @p group as the KConfig group with which settings will be loaded and saved.
127 */
128 void setConfigGroup(const QString &group);
129
130 /**
131 * Set whether this action collection's configuration should be global to KDE ( @c true ),
132 * or specific to the application ( @c false ).
133 */
134 void setConfigGlobal(bool global);
135
136 /**
137 * Read all key associations from @p config.
138 *
139 * If @p config is zero, read all key associations from the
140 * application's configuration file KSharedConfig::openConfig(),
141 * in the group set by setConfigGroup().
142 */
143 void readSettings(KConfigGroup *config = nullptr);
144
145 /**
146 * Import from @p config all configurable global key associations.
147 *
148 * \since 4.1
149 *
150 * \param config Config object to read from
151 */
153
154 /**
155 * Export the current configurable global key associations to @p config.
156 *
157 * \since 4.1
158 *
159 * \param config Config object to save to
160 * \param writeDefaults set to true to write settings which are already at defaults.
161 */
162 void exportGlobalShortcuts(KConfigGroup *config, bool writeDefaults = false) const;
163
164 /**
165 * Write the current configurable key associations to @p config. What the
166 * function does if @p config is zero depends. If this action collection
167 * belongs to a KXMLGUIClient the setting are saved to the kxmlgui
168 * definition file. If not the settings are written to the applications
169 * config file.
170 *
171 * \note @p oneAction and @p writeDefaults have no meaning for the kxmlgui
172 * configuration file.
173 *
174 * \param config Config object to save to, or null (see above)
175 * \param writeDefaults set to true to write settings which are already at defaults.
176 * \param oneAction pass an action here if you just want to save the values for one action, eg.
177 * if you know that action is the only one which has changed.
178 */
179 void writeSettings(KConfigGroup *config = nullptr, bool writeDefaults = false, QAction *oneAction = nullptr) const;
180
181 /**
182 * Returns the number of actions in the collection.
183 *
184 * This is equivalent to actions().count().
185 */
186 int count() const;
187
188 /**
189 * Returns whether the action collection is empty or not.
190 */
191 bool isEmpty() const;
192
193 /**
194 * Return the QAction* at position @p index in the action collection.
195 *
196 * This is equivalent to actions().value(index);
197 */
198 QAction *action(int index) const;
199
200 /**
201 * Get the action with the given \p name from the action collection.
202 *
203 * This won't return the action for the menus defined using a "<Menu>" tag
204 * in XMLGUI files (e.g. "<Menu name="menuId">" in "applicationNameui.rc").
205 * To access menu actions defined like this, use e.g.
206 * \code
207 * qobject_cast<QMenu *>(guiFactory()->container("menuId", this));
208 * \endcode
209 * after having called setupGUI() or createGUI().
210 *
211 * @param name Name of the QAction
212 * @return A pointer to the QAction in the collection which matches the parameters or
213 * null if nothing matches.
214 */
215 Q_INVOKABLE QAction *action(const QString &name) const;
216
217 /**
218 * Returns the list of QActions which belong to this action collection.
219 *
220 * The list is guaranteed to be in the same order the action were put into
221 * the collection.
222 */
224
225 /**
226 * Returns the list of QActions without an QAction::actionGroup() which belong to this action collection.
227 */
229
230 /**
231 * Returns the list of all QActionGroups associated with actions in this action collection.
232 */
234
235 /**
236 * Set the @p componentName associated with this action collection.
237 *
238 * \warning Don't call this method on a KActionCollection that contains
239 * actions. This is not supported.
240 *
241 * \param componentData the name which is to be associated with this action collection,
242 * or QString() to indicate the app name. This is used to load/save settings into XML files.
243 * KXMLGUIClient::setComponentName takes care of calling this.
244 */
246
247 /** The component name with which this class is associated. */
248 QString componentName() const;
249
250 /**
251 * Set the component display name associated with this action collection.
252 * (e.g. for the toolbar editor)
253 * KXMLGUIClient::setComponentName takes care of calling this.
254 */
255 void setComponentDisplayName(const QString &displayName);
256
257 /** The display name for the associated component. */
259
260 /**
261 * The parent KXMLGUIClient, or null if not available.
262 */
263 const KXMLGUIClient *parentGUIClient() const;
264
266 /**
267 * Indicates that @p action was inserted into this action collection.
268 */
270
271 /**
272 * Emitted when an action has been inserted into, or removed from, this action collection.
273 * @since 5.66
274 */
275 void changed();
276
277 /**
278 * Indicates that @p action was hovered.
279 */
281
282 /**
283 * Indicates that @p action was triggered
284 */
286
287protected:
288 /// Overridden to perform connections when someone wants to know whether an action was highlighted or triggered
289 void connectNotify(const QMetaMethod &signal) override;
290
291protected Q_SLOTS:
292 virtual void slotActionTriggered();
293
294private Q_SLOTS:
295 KXMLGUI_NO_EXPORT void slotActionHovered();
296
297public:
298 /**
299 * Add an action under the given name to the collection.
300 *
301 * Inserting an action that was previously inserted under a different name will replace the
302 * old entry, i.e. the action will not be available under the old name anymore but only under
303 * the new one.
304 *
305 * Inserting an action under a name that is already used for another action will replace
306 * the other action in the collection (but will not delete it).
307 *
308 * If KAuthorized::authorizeAction() reports that the action is not
309 * authorized, it will be disabled and hidden.
310 *
311 * The ownership of the action object is not transferred.
312 * If the action is destroyed it will be removed automatically from the KActionCollection.
313 *
314 * @param name The name by which the action be retrieved again from the collection.
315 * @param action The action to add.
316 * @return the same as the action given as parameter. This is just for convenience
317 * (chaining calls) and consistency with the other addAction methods, you can also
318 * simply ignore the return value.
319 */
321
322 /**
323 * Adds a list of actions to the collection.
324 *
325 * The objectName of the actions is used as their internal name in the collection.
326 *
327 * The ownership of the action objects is not transferred.
328 * If the action is destroyed it will be removed automatically from the KActionCollection.
329 *
330 * Uses addAction(const QString&, QAction*).
331 *
332 * @param actions the list of the actions to add.
333 *
334 * @see addAction()
335 * @since 5.0
336 */
338
339 /**
340 * Removes an action from the collection and deletes it.
341 * @param action The action to remove.
342 */
344
345 /**
346 * Removes an action from the collection.
347 *
348 * The ownership of the action object is not changed.
349 *
350 * @param action the action to remove.
351 */
353
354 /**
355 * Creates a new standard action, adds it to the collection and connects the
356 * action's triggered(bool) signal to the specified receiver/member. The
357 * newly created action is also returned.
358 *
359 * @note Using KStandardAction::OpenRecent will cause a different signal than
360 * triggered(bool) to be used, see KStandardAction for more information.
361 *
362 * The action can be retrieved later from the collection by its standard name as per
363 * KStandardAction::stdName.
364 *
365 * The KActionCollection takes ownership of the action object.
366 *
367 * @param actionType The standard action type of the action to create.
368 * @param receiver The QObject to connect the triggered(bool) signal to. Leave nullptr if no
369 * connection is desired.
370 * @param member The SLOT to connect the triggered(bool) signal to. Leave nullptr if no
371 * connection is desired.
372 * @return new action of the given type ActionType.
373 */
374 QAction *addAction(KStandardAction::StandardAction actionType, const QObject *receiver = nullptr, const char *member = nullptr);
375
376 /**
377 * Creates a new standard action, adds to the collection under the given name
378 * and connects the action's triggered(bool) signal to the specified
379 * receiver/member. The newly created action is also returned.
380 *
381 * @note Using KStandardAction::OpenRecent will cause a different signal than
382 * triggered(bool) to be used, see KStandardAction for more information.
383 *
384 * The action can be retrieved later from the collection by the specified name.
385 *
386 * The KActionCollection takes ownership of the action object.
387 *
388 * @param actionType The standard action type of the action to create.
389 * @param name The name by which the action be retrieved again from the collection.
390 * @param receiver The QObject to connect the triggered(bool) signal to. Leave nullptr if no
391 * connection is desired.
392 * @param member The SLOT to connect the triggered(bool) signal to. Leave nullptr if no
393 * connection is desired.
394 * @return new action of the given type ActionType.
395 */
396 QAction *addAction(KStandardAction::StandardAction actionType, const QString &name, const QObject *receiver = nullptr, const char *member = nullptr);
397
398/**
399 * This is the same as addAction(KStandardAction::StandardAction actionType, const QString &name, const QObject *receiver, const char *member) using
400 * new style connect syntax.
401 *
402 * @param actionType The standard action type of the action to create.
403 * @param name The name by which the action be retrieved again from the collection.
404 * @param receiver The QObject to connect the triggered(bool) signal to.
405 * @param slot The slot or lambda to connect the triggered(bool) signal to.
406 * @return new action of the given type ActionType.
407 *
408 * @see addAction(KStandardAction::StandardAction, const QString &, const QObject *, const char *)
409 * @since 5.80
410 */
411#ifdef K_DOXYGEN
412 inline QAction *addAction(KStandardAction::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
413#else
414 template<class Receiver, class Func>
415 inline typename std::enable_if<!std::is_convertible<Func, const char *>::value, QAction>::type *
416 addAction(KStandardAction::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
417#endif
418 {
419 QAction *action = KStandardAction::create(actionType, receiver, slot, nullptr);
420 action->setParent(this);
421 action->setObjectName(name);
422 return addAction(name, action);
423 }
424
425 /**
426 * This is the same as addAction(KStandardAction::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
427 * but using KStandardActions from KConfigGui.
428 *
429 * @param actionType The standard action type of the action to create.
430 * @param name The name by which the action be retrieved again from the collection.
431 * @param receiver The QObject to connect the triggered(bool) signal to.
432 * @param slot The slot or lambda to connect the triggered(bool) signal to.
433 * @return new action of the given type ActionType.
434 * @since 6.3
435 */
436#ifdef K_DOXYGEN
437 inline QAction *addAction(KStandardActions::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
438#else
439 template<class Receiver, class Func>
440 inline typename std::enable_if<!std::is_convertible<Func, const char *>::value, QAction>::type *
441 addAction(KStandardActions::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
442#endif
443 {
444 // Use implementation from KConfigWidgets instead of KConfigGui
445 // as it provides tighter integration with QtWidgets applications.
446 QAction *action = KStandardAction::create(static_cast<KStandardAction::StandardAction>(actionType), receiver, slot, nullptr);
447 action->setParent(this);
448 action->setObjectName(name);
449 return addAction(name, action);
450 }
451
452 /**
453 * Creates a new standard action, adds it to the collection and connects the
454 * action's triggered(bool) signal to the specified receiver/member. The
455 * newly created action is also returned.
456 *
457 * @note Using KStandardAction::OpenRecent will cause a different signal than
458 * triggered(bool) to be used, see KStandardAction for more information.
459 *
460 * The action can be retrieved later from the collection by its standard name as per
461 * KStandardAction::stdName.
462 *
463 * The KActionCollection takes ownership of the action object.
464 *
465 * @param actionType The standard action type of the action to create.
466 * @param receiver The QObject to connect the triggered(bool) signal to. Leave nullptr if no
467 * connection is desired.
468 * @param slot The slot or lambda to connect the triggered(bool) signal to.
469 * @return new action of the given type ActionType.
470 *
471 * @since 6.3
472 */
473#ifdef K_DOXYGEN
474 inline QAction *addAction(KStandardActions::StandardAction actionType, const Receiver *receiver, Func slot)
475#else
476 template<class Receiver, class Func>
477 inline typename std::enable_if<!std::is_convertible<Func, const char *>::value, QAction>::type *
478 addAction(KStandardActions::StandardAction actionType, const Receiver *receiver, Func slot)
479#endif
480 {
481 // Use implementation from KConfigWidgets instead of KConfigGui
482 // as it provides tighter integration with QtWidgets applications.
483 // KStandardAction automatically adds it to the collection.
484 QAction *action = KStandardAction::create(static_cast<KStandardAction::StandardAction>(actionType), receiver, slot, this);
485 return action;
486 }
487
488 /**
489 * Creates a new standard action and adds it to the collection.
490 * The newly created action is also returned.
491 *
492 * The action can be retrieved later from the collection by its standard name as per
493 * KStandardAction::stdName.
494 *
495 * The KActionCollection takes ownership of the action object.
496 *
497 * @param actionType The standard action type of the action to create.
498 * @return new action of the given type ActionType.
499 *
500 * @since 6.9
501 */
502 QAction *addAction(KStandardActions::StandardAction actionType);
503
504 /**
505 * Creates a new action under the given name to the collection and connects
506 * the action's triggered(bool) signal to the specified receiver/member. The
507 * newly created action is returned.
508 *
509 * NOTE: KDE prior to 4.2 used the triggered() signal instead of the triggered(bool)
510 * signal.
511 *
512 * Inserting an action that was previously inserted under a different name will replace the
513 * old entry, i.e. the action will not be available under the old name anymore but only under
514 * the new one.
515 *
516 * Inserting an action under a name that is already used for another action will replace
517 * the other action in the collection.
518 *
519 * The KActionCollection takes ownership of the action object.
520 *
521 * @param name The name by which the action be retrieved again from the collection.
522 * @param receiver The QObject to connect the triggered(bool) signal to. Leave nullptr if no
523 * connection is desired.
524 * @param member The SLOT to connect the triggered(bool) signal to. Leave nullptr if no
525 * connection is desired.
526 * @return new action of the given type ActionType.
527 */
528 QAction *addAction(const QString &name, const QObject *receiver = nullptr, const char *member = nullptr);
529
530 /**
531 * Creates a new action under the given name, adds it to the collection and connects the action's triggered(bool)
532 * signal to the specified receiver/member. The receiver slot may accept either a bool or no
533 * parameters at all (i.e. slotTriggered(bool) or slotTriggered() ).
534 * The type of the action is specified by the template parameter ActionType.
535 *
536 * NOTE: KDE prior to 4.2 connected the triggered() signal instead of the triggered(bool)
537 * signal.
538 *
539 * The KActionCollection takes ownership of the action object.
540 *
541 * @param name The internal name of the action (e.g. "file-open").
542 * @param receiver The QObject to connect the triggered(bool) signal to. Leave nullptr if no
543 * connection is desired.
544 * @param member The SLOT to connect the triggered(bool) signal to. Leave nullptr if no
545 * connection is desired.
546 * @return new action of the given type ActionType.
547 *
548 * @see addAction()
549 */
550 template<class ActionType>
551 ActionType *add(const QString &name, const QObject *receiver = nullptr, const char *member = nullptr)
552 {
553 ActionType *a = new ActionType(this);
554 if (receiver && member) {
555 connect(a, SIGNAL(triggered(bool)), receiver, member);
556 }
557 addAction(name, a);
558 return a;
559 }
560
561/**
562 * This is the same as add(const QString &name, const QObject *receiver, const char *member) using
563 * new style connect syntax.
564 *
565 * @param name The internal name of the action (e.g. "file-open").
566 * @param receiver The QObject to connect the triggered(bool) signal to.
567 * @param slot The slot or lambda to connect the triggered(bool) signal to.
568 * @return new action of the given type ActionType.
569 *
570 * @see add(const QString &, const QObject *, const char *)
571 * @since 5.28
572 */
573#ifdef K_DOXYGEN
574 template<class ActionType>
575 inline ActionType *add(const QString &name, const Receiver *receiver, Func slot)
576#else
577 template<class ActionType, class Receiver, class Func>
578 inline typename std::enable_if<!std::is_convertible<Func, const char *>::value, ActionType>::type *
579 add(const QString &name, const Receiver *receiver, Func slot)
580#endif
581 {
582 ActionType *a = new ActionType(this);
583 connect(a, &QAction::triggered, receiver, slot);
584 addAction(name, a);
585 return a;
586 }
587
588/**
589 * This is the same as addAction(const QString &name, const QObject *receiver, const char *member) using
590 * new style connect syntax.
591 *
592 * @param name The internal name of the action (e.g. "file-open").
593 * @param receiver The QObject to connect the triggered(bool) signal to.
594 * @param slot The slot or lambda to connect the triggered(bool) signal to.
595 * @return new action of the given type ActionType.
596 *
597 * @see addAction(const QString &, const QObject *, const char *)
598 * @since 5.28
599 */
600#ifdef K_DOXYGEN
601 inline QAction *addAction(const QString &name, const Receiver *receiver, Func slot)
602#else
603 template<class Receiver, class Func>
604 inline typename std::enable_if<!std::is_convertible<Func, const char *>::value, QAction>::type *
605 addAction(const QString &name, const Receiver *receiver, Func slot)
606#endif
607 {
608 return add<QAction>(name, receiver, slot);
609 }
610
611 /**
612 * Get the default primary shortcut for the given action.
613 *
614 * @param action the action for which the default primary shortcut should be returned.
615 * @return the default primary shortcut of the given action
616 * @since 5.0
617 */
618 static QKeySequence defaultShortcut(QAction *action);
619
620 /**
621 * Get the default shortcuts for the given action.
622 *
623 * @param action the action for which the default shortcuts should be returned.
624 * @return the default shortcuts of the given action
625 * @since 5.0
626 */
627 static QList<QKeySequence> defaultShortcuts(QAction *action);
628
629 /**
630 * Set the default shortcut for the given action.
631 * Since 5.2, this also calls action->setShortcut(shortcut), i.e. the default shortcut is
632 * made active initially.
633 *
634 * @param action the action for which the default shortcut should be set.
635 * @param shortcut the shortcut to use for the given action in its specified shortcutContext()
636 * @since 5.0
637 */
638 static void setDefaultShortcut(QAction *action, const QKeySequence &shortcut);
639
640 /**
641 * Set the default shortcuts for the given action.
642 * Since 5.2, this also calls action->setShortcuts(shortcuts), i.e. the default shortcut is
643 * made active initially.
644 *
645 * @param action the action for which the default shortcut should be set.
646 * @param shortcuts the shortcuts to use for the given action in its specified shortcutContext()
647 * @since 5.0
648 */
649 Q_INVOKABLE static void setDefaultShortcuts(QAction *action, const QList<QKeySequence> &shortcuts);
650
651 /**
652 * Returns true if the given action's shortcuts may be configured by the user.
653 *
654 * @param action the action for the hint should be verified.
655 * @since 5.0
656 */
657 static bool isShortcutsConfigurable(QAction *action);
658
659 /**
660 * Indicate whether the user may configure the action's shortcuts.
661 *
662 * @param action the action for the hint should be verified.
663 * @param configurable set to true if the shortcuts of the given action may be configured by the user, otherwise false.
664 * @since 5.0
665 */
666 static void setShortcutsConfigurable(QAction *action, bool configurable);
667
668private:
669 KXMLGUI_NO_EXPORT explicit KActionCollection(const KXMLGUIClient *parent); // used by KXMLGUIClient
670
671 friend class KActionCollectionPrivate;
672 std::unique_ptr<class KActionCollectionPrivate> const d;
673};
674
675#endif
A container for a set of QAction objects.
Q_INVOKABLE QAction * addAction(const QString &name, QAction *action)
Add an action under the given name to the collection.
void addActions(const QList< QAction * > &actions)
Adds a list of actions to the collection.
void addAssociatedWidget(QWidget *widget)
Associate all actions in this collection to the given widget, including any actions added after this ...
int count() const
Returns the number of actions in the collection.
QList< QWidget * > associatedWidgets() const
Return a list of all associated widgets.
QAction * addAction(KStandardAction::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
This is the same as addAction(KStandardAction::StandardAction actionType, const QString &name,...
QAction * addAction(const QString &name, const Receiver *receiver, Func slot)
This is the same as addAction(const QString &name, const QObject *receiver, const char *member) using...
QAction * addAction(KStandardActions::StandardAction actionType, const Receiver *receiver, Func slot)
Creates a new standard action, adds it to the collection and connects the action's triggered(bool) si...
void actionHovered(QAction *action)
Indicates that action was hovered.
QString componentDisplayName() const
The display name for the associated component.
ActionType * add(const QString &name, const QObject *receiver=nullptr, const char *member=nullptr)
Creates a new action under the given name, adds it to the collection and connects the action's trigge...
void clear()
Clears the entire action collection, deleting all actions.
void importGlobalShortcuts(KConfigGroup *config)
Import from config all configurable global key associations.
void exportGlobalShortcuts(KConfigGroup *config, bool writeDefaults=false) const
Export the current configurable global key associations to config.
void setConfigGroup(const QString &group)
Sets group as the KConfig group with which settings will be loaded and saved.
void setComponentName(const QString &componentName)
Set the componentName associated with this action collection.
void clearAssociatedWidgets()
Clear all associated widgets and remove the actions from those widgets.
void associateWidget(QWidget *widget) const
Associate all actions in this collection to the given widget.
const KXMLGUIClient * parentGUIClient() const
The parent KXMLGUIClient, or null if not available.
ActionType * add(const QString &name, const Receiver *receiver, Func slot)
This is the same as add(const QString &name, const QObject *receiver, const char *member) using new s...
const QList< QAction * > actionsWithoutGroup() const
Returns the list of QActions without an QAction::actionGroup() which belong to this action collection...
QAction * takeAction(QAction *action)
Removes an action from the collection.
bool isEmpty() const
Returns whether the action collection is empty or not.
KActionCollection(QObject *parent, const QString &cName=QString())
Constructor.
const QList< QActionGroup * > actionGroups() const
Returns the list of all QActionGroups associated with actions in this action collection.
void changed()
Emitted when an action has been inserted into, or removed from, this action collection.
void writeSettings(KConfigGroup *config=nullptr, bool writeDefaults=false, QAction *oneAction=nullptr) const
Write the current configurable key associations to config.
void removeAction(QAction *action)
Removes an action from the collection and deletes it.
void inserted(QAction *action)
Indicates that action was inserted into this action collection.
QString componentName() const
The component name with which this class is associated.
static const QList< KActionCollection * > & allCollections()
Access the list of all action collections in existence for this app.
QAction * addAction(KStandardActions::StandardAction actionType, const QString &name, const Receiver *receiver, Func slot)
This is the same as addAction(KStandardAction::StandardAction actionType, const QString &name,...
void setComponentDisplayName(const QString &displayName)
Set the component display name associated with this action collection.
void removeAssociatedWidget(QWidget *widget)
Remove an association between all actions in this collection and the given widget,...
void readSettings(KConfigGroup *config=nullptr)
Read all key associations from config.
QList< QAction * > actions() const
Returns the list of QActions which belong to this action collection.
void setConfigGlobal(bool global)
Set whether this action collection's configuration should be global to KDE ( true ),...
QAction * action(int index) const
Return the QAction* at position index in the action collection.
void actionTriggered(QAction *action)
Indicates that action was triggered.
A KXMLGUIClient can be used with KXMLGUIFactory to create a GUI from actions and an XML document,...
QAction * create(StandardAction id, const QObject *recvr, const char *slot, QObject *parent)
void triggered(bool checked)
QObject(QObject *parent)
Q_INVOKABLEQ_INVOKABLE
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
virtual void connectNotify(const QMetaMethod &signal)
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 24 2025 11:54:16 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.