From f7481e685dc45c9eff0245249a8a83da79d6808c Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 3 Feb 2019 10:17:58 +0100 Subject: opentrack: get rid of Q_OBJECT More work toward mixins. --- compat/qt-signal.cpp | 13 +++++++++++++ compat/qt-signal.hpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 compat/qt-signal.cpp create mode 100644 compat/qt-signal.hpp (limited to 'compat') diff --git a/compat/qt-signal.cpp b/compat/qt-signal.cpp new file mode 100644 index 00000000..08aac663 --- /dev/null +++ b/compat/qt-signal.cpp @@ -0,0 +1,13 @@ +#include "qt-signal.hpp" + +namespace qt_sig { + +nullary::nullary(QObject* parent) : QObject(parent) {} +nullary::~nullary() = default; + +void nullary::operator()() const +{ + notify(); +} + +} // ns qt_sig diff --git a/compat/qt-signal.hpp b/compat/qt-signal.hpp new file mode 100644 index 00000000..119e063c --- /dev/null +++ b/compat/qt-signal.hpp @@ -0,0 +1,30 @@ +#pragma once + +// this is to avoid dealing with QMetaObject for the time being -sh 20190203 + +#include "export.hpp" +#include + +namespace qt_sig { + +class OTR_COMPAT_EXPORT nullary : public QObject +{ + Q_OBJECT + +public: + template + nullary(t* datum, F&& f, Qt::ConnectionType conntype = Qt::AutoConnection) : QObject(datum) + { + connect(this, &nullary::notify, datum, f, conntype); + } + + nullary(QObject* parent = nullptr); + ~nullary() override; + + void operator()() const; + +signals: + void notify() const; +}; + +} // ns qt_sig -- cgit v1.2.3