Add applicationDisplayNameChanged() signal.
If applicationDisplayName has not been set, the signal is emitted when applicationNameChanged() is emitted. [ChangeLog][QtGui][General] Add QGuiApplication::applicationDisplayNameChanged() signal. Task-number: QTBUG-53076 Change-Id: I18494ad90bd8dec3f79ef5175a3a85e776560fd0 Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
parent
4e41babd03
commit
0e6f1cb7fa
@ -656,9 +656,20 @@ QGuiApplicationPrivate::QGuiApplicationPrivate(int &argc, char **argv, int flags
|
||||
*/
|
||||
void QGuiApplication::setApplicationDisplayName(const QString &name)
|
||||
{
|
||||
if (!QGuiApplicationPrivate::displayName)
|
||||
QGuiApplicationPrivate::displayName = new QString;
|
||||
*QGuiApplicationPrivate::displayName = name;
|
||||
if (!QGuiApplicationPrivate::displayName) {
|
||||
QGuiApplicationPrivate::displayName = new QString(name);
|
||||
if (qGuiApp) {
|
||||
disconnect(qGuiApp, &QGuiApplication::applicationNameChanged,
|
||||
qGuiApp, &QGuiApplication::applicationDisplayNameChanged);
|
||||
|
||||
if (QGuiApplicationPrivate::displayName != applicationName())
|
||||
emit qGuiApp->applicationDisplayNameChanged();
|
||||
}
|
||||
} else if (name != *QGuiApplicationPrivate::displayName) {
|
||||
*QGuiApplicationPrivate::displayName = name;
|
||||
if (qGuiApp)
|
||||
emit qGuiApp->applicationDisplayNameChanged();
|
||||
}
|
||||
}
|
||||
|
||||
QString QGuiApplication::applicationDisplayName()
|
||||
@ -1424,9 +1435,8 @@ void QGuiApplicationPrivate::init()
|
||||
init_plugins(pluginList);
|
||||
QWindowSystemInterface::flushWindowSystemEvents();
|
||||
|
||||
#ifndef QT_NO_SESSIONMANAGER
|
||||
Q_Q(QGuiApplication);
|
||||
|
||||
#ifndef QT_NO_SESSIONMANAGER
|
||||
// connect to the session manager
|
||||
session_manager = new QSessionManager(q, session_id, session_key);
|
||||
#endif
|
||||
@ -1455,6 +1465,10 @@ void QGuiApplicationPrivate::init()
|
||||
|
||||
if (layout_direction == Qt::LayoutDirectionAuto || force_reverse)
|
||||
QGuiApplication::setLayoutDirection(qt_detectRTLLanguage() ? Qt::RightToLeft : Qt::LeftToRight);
|
||||
|
||||
if (!QGuiApplicationPrivate::displayName)
|
||||
QObject::connect(q, &QGuiApplication::applicationNameChanged,
|
||||
q, &QGuiApplication::applicationDisplayNameChanged);
|
||||
}
|
||||
|
||||
extern void qt_cleanupFontDatabase();
|
||||
|
@ -72,7 +72,7 @@ class Q_GUI_EXPORT QGuiApplication : public QCoreApplication
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QIcon windowIcon READ windowIcon WRITE setWindowIcon)
|
||||
Q_PROPERTY(QString applicationDisplayName READ applicationDisplayName WRITE setApplicationDisplayName)
|
||||
Q_PROPERTY(QString applicationDisplayName READ applicationDisplayName WRITE setApplicationDisplayName NOTIFY applicationDisplayNameChanged)
|
||||
Q_PROPERTY(QString desktopFileName READ desktopFileName WRITE setDesktopFileName)
|
||||
Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection NOTIFY layoutDirectionChanged)
|
||||
Q_PROPERTY(QString platformName READ platformName STORED false)
|
||||
@ -183,6 +183,7 @@ Q_SIGNALS:
|
||||
void saveStateRequest(QSessionManager &sessionManager);
|
||||
#endif
|
||||
void paletteChanged(const QPalette &pal);
|
||||
void applicationDisplayNameChanged();
|
||||
|
||||
protected:
|
||||
bool event(QEvent *) Q_DECL_OVERRIDE;
|
||||
|
@ -106,11 +106,29 @@ void tst_QGuiApplication::displayName()
|
||||
int argc = 1;
|
||||
char *argv[] = { const_cast<char*>("tst_qguiapplication") };
|
||||
QGuiApplication app(argc, argv);
|
||||
QSignalSpy spy(&app, &QGuiApplication::applicationDisplayNameChanged);
|
||||
|
||||
QCOMPARE(::qAppName(), QString::fromLatin1("tst_qguiapplication"));
|
||||
QCOMPARE(QGuiApplication::applicationName(), QString::fromLatin1("tst_qguiapplication"));
|
||||
QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("tst_qguiapplication"));
|
||||
|
||||
QGuiApplication::setApplicationName("The Core Application");
|
||||
QCOMPARE(QGuiApplication::applicationName(), QString::fromLatin1("The Core Application"));
|
||||
QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("The Core Application"));
|
||||
QCOMPARE(spy.count(), 1);
|
||||
|
||||
QGuiApplication::setApplicationDisplayName("The GUI Application");
|
||||
QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("The GUI Application"));
|
||||
QCOMPARE(spy.count(), 2);
|
||||
|
||||
QGuiApplication::setApplicationName("The Core Application 2");
|
||||
QCOMPARE(QGuiApplication::applicationName(), QString::fromLatin1("The Core Application 2"));
|
||||
QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("The GUI Application"));
|
||||
QCOMPARE(spy.count(), 2);
|
||||
|
||||
QGuiApplication::setApplicationDisplayName("The GUI Application 2");
|
||||
QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("The GUI Application 2"));
|
||||
QCOMPARE(spy.count(), 3);
|
||||
}
|
||||
|
||||
void tst_QGuiApplication::desktopFileName()
|
||||
|
Loading…
Reference in New Issue
Block a user