/* This file is part of the KDE libraries SPDX-FileCopyrightText: 2007 Andreas Hartmetz SPDX-License-Identifier: LGPL-2.0-or-later */ #ifndef KSHORTCUTWIDGET_H #define KSHORTCUTWIDGET_H #include #include #include #include #include class KActionCollection; class KShortcutWidgetPrivate; /** * @class KShortcutWidget kshortcutwidget.h KShortcutWidget * * \image html kshortcutwidget.png "KShortcutWidget" */ class KXMLGUI_EXPORT KShortcutWidget : public QWidget { Q_OBJECT Q_PROPERTY(bool modifierlessAllowed READ isModifierlessAllowed WRITE setModifierlessAllowed) public: explicit KShortcutWidget(QWidget *parent = nullptr); ~KShortcutWidget() override; void setModifierlessAllowed(bool allow); bool isModifierlessAllowed(); void setClearButtonsShown(bool show); QList shortcut() const; /** * Set a list of action collections to check against for conflictuous shortcut. * * If there is a conflictuous shortcut with a QAction, and that his shortcut can be configured * (KActionCollection::isShortcutConfigurable() returns true) the user will be prompted for eventually steal * the shortcut from this action * * Global shortcuts are automatically checked for conflicts * * Don't forget to call applyStealShortcut to actually steal the shortcut. * * @since 4.1 */ void setCheckActionCollections(const QList &actionCollections); Q_SIGNALS: void shortcutChanged(const QList &cut); public Q_SLOTS: void setShortcut(const QList &cut); void clearShortcut(); /** * Actually remove the shortcut that the user wanted to steal, from the * action that was using it. * * To be called before you apply your changes. * No shortcuts are stolen until this function is called. */ void applyStealShortcut(); private: friend class KShortcutWidgetPrivate; std::unique_ptr const d; }; #endif // KSHORTCUTWIDGET_H