diff options
Diffstat (limited to 'src/gui/kernel/qshortcut.h')
-rw-r--r-- | src/gui/kernel/qshortcut.h | 114 |
1 files changed, 73 insertions, 41 deletions
diff --git a/src/gui/kernel/qshortcut.h b/src/gui/kernel/qshortcut.h index 1b90a21925..00b9168bea 100644 --- a/src/gui/kernel/qshortcut.h +++ b/src/gui/kernel/qshortcut.h @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2019 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QSHORTCUT_H #define QSHORTCUT_H @@ -64,8 +28,11 @@ public: explicit QShortcut(const QKeySequence& key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut); + explicit QShortcut(QKeySequence::StandardKey key, QObject *parent, + const char *member = nullptr, const char *ambiguousMember = nullptr, + Qt::ShortcutContext context = Qt::WindowShortcut); -#ifdef Q_CLANG_QDOC +#ifdef Q_QDOC template<typename Functor> QShortcut(const QKeySequence &key, QObject *parent, Functor functor, @@ -84,6 +51,25 @@ public: const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut); + + template<typename Functor> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + Functor functor, + Qt::ShortcutContext shortcutContext = Qt::WindowShortcut); + template<typename Functor> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const QObject *context, Functor functor, + Qt::ShortcutContext shortcutContext = Qt::WindowShortcut); + template<typename Functor, typename FunctorAmbiguous> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const QObject *context1, Functor functor, + FunctorAmbiguous functorAmbiguous, + Qt::ShortcutContext shortcutContext = Qt::WindowShortcut); + template<typename Functor, typename FunctorAmbiguous> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const QObject *context1, Functor functor, + const QObject *context2, FunctorAmbiguous functorAmbiguous, + Qt::ShortcutContext shortcutContext = Qt::WindowShortcut); #else template<typename Func1> QShortcut(const QKeySequence &key, QObject *parent, @@ -124,12 +110,55 @@ public: connect(this, &QShortcut::activated, object1, std::move(slot1)); connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2)); } + + template<typename Func1> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + Func1 slot1, + Qt::ShortcutContext context = Qt::WindowShortcut) + : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context) + { + connect(this, &QShortcut::activated, std::move(slot1)); + } + template<class Obj1, typename Func1> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const Obj1 *object1, Func1 slot1, + Qt::ShortcutContext context = Qt::WindowShortcut, + typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0) + : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context) + { + connect(this, &QShortcut::activated, object1, std::move(slot1)); + } + template<class Obj1, typename Func1, typename Func2> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const Obj1 *object1, Func1 slot1, Func2 slot2, + Qt::ShortcutContext context = Qt::WindowShortcut, + typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0) + : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context) + { + connect(this, &QShortcut::activated, object1, std::move(slot1)); + connect(this, &QShortcut::activatedAmbiguously, object1, std::move(slot2)); + } + template<class Obj1, typename Func1, class Obj2, typename Func2> + QShortcut(QKeySequence::StandardKey key, QObject *parent, + const Obj1 *object1, Func1 slot1, + const Obj2 *object2, Func2 slot2, + Qt::ShortcutContext context = Qt::WindowShortcut, + typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0, + typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0) + : QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context) + { + connect(this, &QShortcut::activated, object1, std::move(slot1)); + connect(this, &QShortcut::activatedAmbiguously, object2, std::move(slot2)); + } #endif ~QShortcut(); void setKey(const QKeySequence& key); QKeySequence key() const; + void setKeys(QKeySequence::StandardKey key); + void setKeys(const QList<QKeySequence> &keys); + QList<QKeySequence> keys() const; void setEnabled(bool enable); bool isEnabled() const; @@ -140,16 +169,19 @@ public: void setAutoRepeat(bool on); bool autoRepeat() const; - int id() const; +#if QT_DEPRECATED_SINCE(6,0) + QT_DEPRECATED_VERSION_6_0 int id() const; +#endif void setWhatsThis(const QString &text); QString whatsThis() const; #if QT_DEPRECATED_SINCE(6,0) -#ifdef Q_CLANG_QDOC +#ifdef Q_QDOC QWidget *parentWidget() const; #else template<typename T = QWidget*> + QT_DEPRECATED_VERSION_X_6_0("Use parent() and qobject_cast instead") inline T parentWidget() const { return static_cast<T>(QObject::parent()); } #endif |