Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/QtGui/qshortcut.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // Copyright (C) 2019 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
0003 
0004 #ifndef QSHORTCUT_H
0005 #define QSHORTCUT_H
0006 
0007 #include <QtGui/qtguiglobal.h>
0008 #include <QtGui/qkeysequence.h>
0009 #include <QtCore/qobject.h>
0010 
0011 QT_REQUIRE_CONFIG(shortcut);
0012 
0013 QT_BEGIN_NAMESPACE
0014 
0015 class QShortcutPrivate;
0016 class QWindow;
0017 
0018 class Q_GUI_EXPORT QShortcut : public QObject
0019 {
0020     Q_OBJECT
0021     Q_DECLARE_PRIVATE(QShortcut)
0022     Q_PROPERTY(QKeySequence key READ key WRITE setKey)
0023     Q_PROPERTY(bool enabled READ isEnabled WRITE setEnabled)
0024     Q_PROPERTY(bool autoRepeat READ autoRepeat WRITE setAutoRepeat)
0025     Q_PROPERTY(Qt::ShortcutContext context READ context WRITE setContext)
0026 public:
0027     explicit QShortcut(QObject *parent);
0028     explicit QShortcut(const QKeySequence& key, QObject *parent,
0029                        const char *member = nullptr, const char *ambiguousMember = nullptr,
0030                        Qt::ShortcutContext context = Qt::WindowShortcut);
0031     explicit QShortcut(QKeySequence::StandardKey key, QObject *parent,
0032                        const char *member = nullptr, const char *ambiguousMember = nullptr,
0033                        Qt::ShortcutContext context = Qt::WindowShortcut);
0034 
0035 #ifdef Q_QDOC
0036     template<typename Functor>
0037     QShortcut(const QKeySequence &key, QObject *parent,
0038               Functor functor,
0039               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0040     template<typename Functor>
0041     QShortcut(const QKeySequence &key, QObject *parent,
0042               const QObject *context, Functor functor,
0043               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0044     template<typename Functor, typename FunctorAmbiguous>
0045     QShortcut(const QKeySequence &key, QObject *parent,
0046               const QObject *context1, Functor functor,
0047               FunctorAmbiguous functorAmbiguous,
0048               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0049     template<typename Functor, typename FunctorAmbiguous>
0050     QShortcut(const QKeySequence &key, QObject *parent,
0051               const QObject *context1, Functor functor,
0052               const QObject *context2, FunctorAmbiguous functorAmbiguous,
0053               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0054 
0055     template<typename Functor>
0056     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0057               Functor functor,
0058               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0059     template<typename Functor>
0060     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0061               const QObject *context, Functor functor,
0062               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0063     template<typename Functor, typename FunctorAmbiguous>
0064     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0065               const QObject *context1, Functor functor,
0066               FunctorAmbiguous functorAmbiguous,
0067               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0068     template<typename Functor, typename FunctorAmbiguous>
0069     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0070               const QObject *context1, Functor functor,
0071               const QObject *context2, FunctorAmbiguous functorAmbiguous,
0072               Qt::ShortcutContext shortcutContext = Qt::WindowShortcut);
0073 #else
0074 #ifndef QT_NO_CONTEXTLESS_CONNECT
0075     template<typename Func1>
0076     QShortcut(const QKeySequence &key, QObject *parent,
0077               Func1 slot1,
0078               Qt::ShortcutContext context = Qt::WindowShortcut)
0079         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0080     {
0081         connect(this, &QShortcut::activated, std::move(slot1));
0082     }
0083 #endif
0084     template<class Obj1, typename Func1>
0085     QShortcut(const QKeySequence &key, QObject *parent,
0086               const Obj1 *object1, Func1 slot1,
0087               Qt::ShortcutContext context = Qt::WindowShortcut,
0088               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
0089         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0090     {
0091         connect(this, &QShortcut::activated, object1, std::move(slot1));
0092     }
0093     template<class Obj1, typename Func1, typename Func2>
0094     QShortcut(const QKeySequence &key, QObject *parent,
0095               const Obj1 *object1, Func1 slot1, Func2 slot2,
0096               Qt::ShortcutContext context = Qt::WindowShortcut,
0097               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
0098         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0099     {
0100         connect(this, &QShortcut::activated, object1, std::move(slot1));
0101         connect(this, &QShortcut::activatedAmbiguously, object1, std::move(slot2));
0102     }
0103     template<class Obj1, typename Func1, class Obj2, typename Func2>
0104     QShortcut(const QKeySequence &key, QObject *parent,
0105               const Obj1 *object1, Func1 slot1,
0106               const Obj2 *object2, Func2 slot2,
0107               Qt::ShortcutContext context = Qt::WindowShortcut,
0108               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0,
0109               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0)
0110         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0111     {
0112         connect(this, &QShortcut::activated, object1, std::move(slot1));
0113         connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2));
0114     }
0115 
0116     template<typename Func1>
0117     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0118               Func1 slot1,
0119               Qt::ShortcutContext context = Qt::WindowShortcut)
0120         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0121     {
0122         connect(this, &QShortcut::activated, std::move(slot1));
0123     }
0124     template<class Obj1, typename Func1>
0125     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0126               const Obj1 *object1, Func1 slot1,
0127               Qt::ShortcutContext context = Qt::WindowShortcut,
0128               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
0129         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0130     {
0131         connect(this, &QShortcut::activated, object1, std::move(slot1));
0132     }
0133     template<class Obj1, typename Func1, typename Func2>
0134     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0135               const Obj1 *object1, Func1 slot1, Func2 slot2,
0136               Qt::ShortcutContext context = Qt::WindowShortcut,
0137               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
0138         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0139     {
0140         connect(this, &QShortcut::activated, object1, std::move(slot1));
0141         connect(this, &QShortcut::activatedAmbiguously, object1, std::move(slot2));
0142     }
0143     template<class Obj1, typename Func1, class Obj2, typename Func2>
0144     QShortcut(QKeySequence::StandardKey key, QObject *parent,
0145               const Obj1 *object1, Func1 slot1,
0146               const Obj2 *object2, Func2 slot2,
0147               Qt::ShortcutContext context = Qt::WindowShortcut,
0148               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0,
0149               typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0)
0150         : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
0151     {
0152         connect(this, &QShortcut::activated, object1, std::move(slot1));
0153         connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2));
0154     }
0155 #endif
0156 
0157     ~QShortcut();
0158 
0159     void setKey(const QKeySequence& key);
0160     QKeySequence key() const;
0161     void setKeys(QKeySequence::StandardKey key);
0162     void setKeys(const QList<QKeySequence> &keys);
0163     QList<QKeySequence> keys() const;
0164 
0165     void setEnabled(bool enable);
0166     bool isEnabled() const;
0167 
0168     void setContext(Qt::ShortcutContext context);
0169     Qt::ShortcutContext context() const;
0170 
0171     void setAutoRepeat(bool on);
0172     bool autoRepeat() const;
0173 
0174 #if QT_DEPRECATED_SINCE(6,0)
0175     QT_DEPRECATED_VERSION_6_0 int id() const;
0176 #endif
0177 
0178     void setWhatsThis(const QString &text);
0179     QString whatsThis() const;
0180 
0181 #if QT_DEPRECATED_SINCE(6,0)
0182 #ifdef Q_QDOC
0183     QWidget *parentWidget() const;
0184 #else
0185     template<typename T = QWidget*>
0186     QT_DEPRECATED_VERSION_X_6_0("Use parent() and qobject_cast instead")
0187     inline T parentWidget() const
0188     { return static_cast<T>(QObject::parent()); }
0189 #endif
0190 #endif
0191 
0192 Q_SIGNALS:
0193     void activated();
0194     void activatedAmbiguously();
0195 
0196 protected:
0197     bool event(QEvent *e) override;
0198 };
0199 
0200 QT_END_NAMESPACE
0201 
0202 #endif // QSHORTCUT_H