diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2012-03-23 09:32:45 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-27 06:54:34 +0200 |
commit | ec7deb3d123bb44b5d57590615a60ed48b1d2860 (patch) | |
tree | 4b6e98a85cc2fece6ad3cad29090a1294e94cd55 /src/qml/debugger/qqmlprofilerservice_p.h | |
parent | f931ec39513854e56560fe85d55a5d144e22af88 (diff) |
Add QQmlBoundSignalNoParamsqt-v5.0.0-alpha1
This class is used for signal handlers with no parameters, and is more
lightweight than QQmlBoundSignal.
Change-Id: Ie63eb989d334906657fd16fe35386df198654c28
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'src/qml/debugger/qqmlprofilerservice_p.h')
-rw-r--r-- | src/qml/debugger/qqmlprofilerservice_p.h | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/qml/debugger/qqmlprofilerservice_p.h b/src/qml/debugger/qqmlprofilerservice_p.h index e9a58b41ec..20376433f0 100644 --- a/src/qml/debugger/qqmlprofilerservice_p.h +++ b/src/qml/debugger/qqmlprofilerservice_p.h @@ -205,16 +205,16 @@ struct QQmlHandlingSignalProfiler { { enabled = QQmlProfilerService::instance ? QQmlProfilerService::instance->profilingEnabled() : false; - if (enabled) { - QQmlProfilerService *service = QQmlProfilerService::instance; - service->startRange(QQmlProfilerService::HandlingSignal); - service->rangeData(QQmlProfilerService::HandlingSignal, - QLatin1String(signal.signature()) + QLatin1String(": ") - + expression->expression()); - service->rangeLocation(QQmlProfilerService::HandlingSignal, - expression->sourceFile(), expression->lineNumber(), - expression->columnNumber()); - } + if (enabled) + init(signal, expression); + } + + QQmlHandlingSignalProfiler(QObject *object, int index, QQmlExpression *expression) + { + enabled = QQmlProfilerService::instance + ? QQmlProfilerService::instance->profilingEnabled() : false; + if (enabled) + init(object->metaObject()->method(index), expression); } ~QQmlHandlingSignalProfiler() @@ -224,6 +224,19 @@ struct QQmlHandlingSignalProfiler { } bool enabled; + +private: + void init(const QMetaMethod &signal, QQmlExpression *expression) + { + QQmlProfilerService *service = QQmlProfilerService::instance; + service->startRange(QQmlProfilerService::HandlingSignal); + service->rangeData(QQmlProfilerService::HandlingSignal, + QLatin1String(signal.signature()) + QLatin1String(": ") + + expression->expression()); + service->rangeLocation(QQmlProfilerService::HandlingSignal, + expression->sourceFile(), expression->lineNumber(), + expression->columnNumber()); + } }; struct QQmlObjectCreatingProfiler { |