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
0002
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