diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-06-17 12:21:20 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-06-18 14:42:24 +0000 |
commit | c0eafb9d75b6e24c03cde848b6482d0fcad9ee31 (patch) | |
tree | a7b7cf882659704848dd7061d067c8cb11929e54 /src/widgets/widgets/qtoolbar.h | |
parent | a851868e63311622bb83d2e08388b34c4d6d869e (diff) |
QMenu/QToolBar: Add overloads of addAction() using Qt 5 signals and slots.
Add documentation dummies and templates, add tests verifying
compilation.
Change-Id: Ide336b28bc069cfd17848ce3a17fd428e36ed65b
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/widgets/widgets/qtoolbar.h')
-rw-r--r-- | src/widgets/widgets/qtoolbar.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/widgets/widgets/qtoolbar.h b/src/widgets/widgets/qtoolbar.h index f925577646..f4ed13d399 100644 --- a/src/widgets/widgets/qtoolbar.h +++ b/src/widgets/widgets/qtoolbar.h @@ -34,6 +34,7 @@ #ifndef QDYNAMICTOOLBAR_H #define QDYNAMICTOOLBAR_H +#include <QtWidgets/qaction.h> #include <QtWidgets/qwidget.h> QT_BEGIN_NAMESPACE @@ -92,6 +93,51 @@ public: QAction *addAction(const QString &text, const QObject *receiver, const char* member); QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member); +#ifdef Q_QDOC + QAction *addAction(const QString &text, const QObject *receiver, PointerToMemberFunction method); + QAction *addAction(const QString &text, Functor functor); + QAction *addAction(const QString &text, const QObject *context, Functor functor); + QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, PointerToMemberFunction method); + QAction *addAction(const QIcon &icon, const QString &text, Functor functor); + QAction *addAction(const QIcon &icon, const QString &text, const QObject *context, Functor functor); +#else + // addAction(QString): Connect to a QObject slot / functor or function pointer (with context) + template<class Obj, typename Func1> + inline typename QtPrivate::QEnableIf<!QtPrivate::is_same<const char*, Func1>::value + && QtPrivate::IsPointerToTypeDerivedFromQObject<Obj*>::Value, QAction *>::Type + addAction(const QString &text, const Obj *object, Func1 slot) + { + QAction *result = addAction(text); + connect(result, &QAction::triggered, object, slot); + return result; + } + // addAction(QString): Connect to a functor or function pointer (without context) + template <typename Func1> + inline QAction *addAction(const QString &text, Func1 slot) + { + QAction *result = addAction(text); + connect(result, &QAction::triggered, slot); + return result; + } + // addAction(QString): Connect to a QObject slot / functor or function pointer (with context) + template<class Obj, typename Func1> + inline typename QtPrivate::QEnableIf<!QtPrivate::is_same<const char*, Func1>::value + && QtPrivate::IsPointerToTypeDerivedFromQObject<Obj*>::Value, QAction *>::Type + addAction(const QIcon &actionIcon, const QString &text, const Obj *object, Func1 slot) + { + QAction *result = addAction(actionIcon, text); + connect(result, &QAction::triggered, object, slot); + return result; + } + // addAction(QIcon, QString): Connect to a functor or function pointer (without context) + template <typename Func1> + inline QAction *addAction(const QIcon &actionIcon, const QString &text, Func1 slot) + { + QAction *result = addAction(actionIcon, text); + connect(result, &QAction::triggered, slot); + return result; + } +#endif // !Q_QDOC QAction *addSeparator(); QAction *insertSeparator(QAction *before); |