diff options
author | Alan Alpert <aalpert@rim.com> | 2013-02-25 13:37:37 -0800 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-01 01:46:50 +0100 |
commit | 8b0868bb17690fa601b3b0cb8c630ac7a178062a (patch) | |
tree | 1e6ae916326090fa7e8479a4481d9e804d21b514 | |
parent | 0effb751538ee3158f7b90fb33b9d5659c7f79cf (diff) |
Add notify signals to some QCoreApplication properties
The various string properties are good candidates for exposure to QML.
While QCoreApplication itself is unlikely to be exposed to QML directly,
a wrapper exposure also needs these signals in order to react to changes
from QCoreApplication.
Change-Id: I266da6010f1c9300de4bb5e7775a0bdacab7f26c
Reviewed-by: Richard J. Moore <rich@kde.org>
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 42 | ||||
-rw-r--r-- | src/corelib/kernel/qcoreapplication.h | 13 |
2 files changed, 51 insertions, 4 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 05688d3ba6..1696aeb77b 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2039,9 +2039,21 @@ QStringList QCoreApplication::arguments() \sa organizationDomain, applicationName */ +/*! + \fn void QCoreApplication::organizationNameChanged() + \internal + + While not useful from C++ due to how organizationName is normally set once on + startup, this is still needed for QML so that bindings are reevaluated after + that initial change. +*/ void QCoreApplication::setOrganizationName(const QString &orgName) { + if (coreappdata()->orgName == orgName) + return; coreappdata()->orgName = orgName; + if (QCoreApplication::self) + emit QCoreApplication::self->organizationNameChanged(); } QString QCoreApplication::organizationName() @@ -2067,9 +2079,19 @@ QString QCoreApplication::organizationName() \sa organizationName, applicationName, applicationVersion */ +/*! + \fn void QCoreApplication::organizationDomainChanged() + \internal + + Primarily for QML, see organizationNameChanged. +*/ void QCoreApplication::setOrganizationDomain(const QString &orgDomain) { + if (coreappdata()->orgDomain == orgDomain) + return; coreappdata()->orgDomain = orgDomain; + if (QCoreApplication::self) + emit QCoreApplication::self->organizationDomainChanged(); } QString QCoreApplication::organizationDomain() @@ -2089,9 +2111,19 @@ QString QCoreApplication::organizationDomain() \sa organizationName, organizationDomain, applicationVersion, applicationFilePath */ +/*! + \fn void QCoreApplication::applicationNameChanged() + \internal + + Primarily for QML, see organizationNameChanged. +*/ void QCoreApplication::setApplicationName(const QString &application) { + if (coreappdata()->application == application) + return; coreappdata()->application = application; + if (QCoreApplication::self) + emit QCoreApplication::self->applicationNameChanged(); } QString QCoreApplication::applicationName() @@ -2118,9 +2150,19 @@ Q_CORE_EXPORT QString qt_applicationName_noFallback() \sa applicationName, organizationName, organizationDomain */ +/*! + \fn void QCoreApplication::applicationVersionChanged() + \internal + + Primarily for QML, see organizationNameChanged. +*/ void QCoreApplication::setApplicationVersion(const QString &version) { + if (coreappdata()->applicationVersion == version) + return; coreappdata()->applicationVersion = version; + if (QCoreApplication::self) + emit QCoreApplication::self->applicationVersionChanged(); } QString QCoreApplication::applicationVersion() diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h index b235e327e0..022ef8c0bc 100644 --- a/src/corelib/kernel/qcoreapplication.h +++ b/src/corelib/kernel/qcoreapplication.h @@ -66,10 +66,10 @@ class QAbstractNativeEventFilter; class Q_CORE_EXPORT QCoreApplication : public QObject { Q_OBJECT - Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName) - Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion) - Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName) - Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain) + Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName NOTIFY applicationNameChanged) + Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion NOTIFY applicationVersionChanged) + Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName NOTIFY organizationNameChanged) + Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain NOTIFY organizationDomainChanged) Q_PROPERTY(bool quitLockEnabled READ isQuitLockEnabled WRITE setQuitLockEnabled) Q_DECLARE_PRIVATE(QCoreApplication) @@ -164,6 +164,11 @@ Q_SIGNALS: #endif ); + void organizationNameChanged(); + void organizationDomainChanged(); + void applicationNameChanged(); + void applicationVersionChanged(); + protected: bool event(QEvent *); |