diff options
Diffstat (limited to 'src/location/declarativemaps/qdeclarativegeomapparameter.cpp')
-rw-r--r-- | src/location/declarativemaps/qdeclarativegeomapparameter.cpp | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/location/declarativemaps/qdeclarativegeomapparameter.cpp b/src/location/declarativemaps/qdeclarativegeomapparameter.cpp index c1361d5d..2408e1c7 100644 --- a/src/location/declarativemaps/qdeclarativegeomapparameter.cpp +++ b/src/location/declarativemaps/qdeclarativegeomapparameter.cpp @@ -39,10 +39,28 @@ #include <QByteArray> #include <QMetaObject> #include <QMetaProperty> -#include <QSignalMapper> +#include <QObject> QT_BEGIN_NAMESPACE +namespace { +class SignalMapper : public QObject +{ + Q_OBJECT + + int i; +public: + explicit SignalMapper(int i, QObject *parent = nullptr) + : QObject(parent), i(i) {} + +public Q_SLOTS: + void map() { emit mapped(i); } + +Q_SIGNALS: + void mapped(int); +}; +} // unnamed namespace + /*! \qmltype MapParameter \inqmlmodule QtLocation @@ -114,8 +132,7 @@ void QDeclarativeGeoMapParameter::componentComplete() return; } - QSignalMapper *mapper = new QSignalMapper(this); - mapper->setMapping(this, i); + SignalMapper *mapper = new SignalMapper(i, this); const QByteArray signalName = '2' + property.notifySignal().methodSignature(); // TODO: explain why '2' QObject::connect(this, signalName, mapper, SLOT(map())); @@ -131,3 +148,5 @@ void QDeclarativeGeoMapParameter::onPropertyUpdated(int index) } QT_END_NAMESPACE + +#include "qdeclarativegeomapparameter.moc" |