diff options
Diffstat (limited to 'src/corelib/kernel/qcoreapplication.cpp')
-rw-r--r-- | src/corelib/kernel/qcoreapplication.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 05d58ac028..524bfd26cc 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -325,6 +325,7 @@ struct QCoreApplicationData { #ifndef QT_NO_LIBRARY app_libpaths = 0; #endif + applicationNameSet = false; } ~QCoreApplicationData() { #ifndef QT_NO_LIBRARY @@ -369,8 +370,8 @@ struct QCoreApplicationData { QString orgName, orgDomain; QString application; // application name, initially from argv[0], can then be modified. - QString applicationNameCompat; // for QDesktopServices. Only set explicitly. QString applicationVersion; + bool applicationNameSet; // true if setApplicationName was called #ifndef QT_NO_LIBRARY QStringList *app_libpaths; @@ -752,7 +753,8 @@ void QCoreApplication::init() QCoreApplication::self = this; // Store app name (so it's still available after QCoreApplication is destroyed) - coreappdata()->application = d_func()->appName(); + if (!coreappdata()->applicationNameSet) + coreappdata()->application = d_func()->appName(); QLoggingRegistry::instance()->init(); @@ -2349,13 +2351,13 @@ QString QCoreApplication::organizationDomain() */ void QCoreApplication::setApplicationName(const QString &application) { + coreappdata()->applicationNameSet = !application.isEmpty(); QString newAppName = application; if (newAppName.isEmpty() && QCoreApplication::self) newAppName = QCoreApplication::self->d_func()->appName(); if (coreappdata()->application == newAppName) return; coreappdata()->application = newAppName; - coreappdata()->applicationNameCompat = newAppName; #ifndef QT_NO_QOBJECT if (QCoreApplication::self) emit QCoreApplication::self->applicationNameChanged(); @@ -2373,7 +2375,7 @@ QString QCoreApplication::applicationName() // Exported for QDesktopServices (Qt4 behavior compatibility) Q_CORE_EXPORT QString qt_applicationName_noFallback() { - return coreappdata()->applicationNameCompat; + return coreappdata()->applicationNameSet ? coreappdata()->application : QString(); } /*! |