diff options
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 4 | ||||
-rw-r--r-- | src/quick/util/qquickapplication.cpp | 12 | ||||
-rw-r--r-- | src/quick/util/qquickapplication_p.h | 4 | ||||
-rw-r--r-- | tests/auto/quick/qquickapplication/data/tst_displayname.qml | 7 | ||||
-rw-r--r-- | tests/auto/quick/qquickapplication/qquickapplication.pro | 6 | ||||
-rw-r--r-- | tests/auto/quick/qquickapplication/tst_qquickapplication.cpp | 27 |
6 files changed, 59 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index c273330a0a..d0c899af12 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -537,6 +537,10 @@ The following functions are also on the Qt object. \li This is the application name set on the QCoreApplication instance. This property can be written to in order to set the application name. \row + \li \c application.displayName (since Qt 5.9) + \li This is the application display name set on the QGuiApplication instance. This property can be written + to in order to set the application display name. + \row \li \c application.version \li This is the application version set on the QCoreApplication instance. This property can be written to in order to set the application version. diff --git a/src/quick/util/qquickapplication.cpp b/src/quick/util/qquickapplication.cpp index ca4a5bfb56..5c89275c5a 100644 --- a/src/quick/util/qquickapplication.cpp +++ b/src/quick/util/qquickapplication.cpp @@ -63,6 +63,8 @@ QQuickApplication::QQuickApplication(QObject *parent) this, SIGNAL(stateChanged(Qt::ApplicationState))); connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)), this, SIGNAL(activeChanged())); + connect(qApp, SIGNAL(applicationDisplayNameChanged()), + this, SIGNAL(displayNameChanged())); connect(qApp, &QGuiApplication::screenAdded, this, &QQuickApplication::updateScreens); connect(qApp, &QGuiApplication::screenRemoved, this, &QQuickApplication::updateScreens); @@ -99,6 +101,16 @@ QFont QQuickApplication::font() const return QGuiApplication::font(); } +QString QQuickApplication::displayName() const +{ + return QGuiApplication::applicationDisplayName(); +} + +void QQuickApplication::setDisplayName(const QString &displayName) +{ + return QGuiApplication::setApplicationDisplayName(displayName); +} + int screens_count(QQmlListProperty<QQuickScreenInfo> *prop) { return static_cast<QVector<QQuickScreenInfo *> *>(prop->data)->count(); diff --git a/src/quick/util/qquickapplication_p.h b/src/quick/util/qquickapplication_p.h index 70381553b4..8ee203f0da 100644 --- a/src/quick/util/qquickapplication_p.h +++ b/src/quick/util/qquickapplication_p.h @@ -68,6 +68,7 @@ class Q_AUTOTEST_EXPORT QQuickApplication : public QQmlApplication Q_PROPERTY(bool supportsMultipleWindows READ supportsMultipleWindows CONSTANT) Q_PROPERTY(Qt::ApplicationState state READ state NOTIFY stateChanged) Q_PROPERTY(QFont font READ font CONSTANT) + Q_PROPERTY(QString displayName READ displayName WRITE setDisplayName NOTIFY displayNameChanged) Q_PROPERTY(QQmlListProperty<QQuickScreenInfo> screens READ screens NOTIFY screensChanged) public: @@ -79,9 +80,12 @@ public: Qt::ApplicationState state() const; QFont font() const; QQmlListProperty<QQuickScreenInfo> screens(); + QString displayName() const; + void setDisplayName(const QString &displayName); Q_SIGNALS: void activeChanged(); + void displayNameChanged(); void layoutDirectionChanged(); void stateChanged(Qt::ApplicationState state); void screensChanged(); diff --git a/tests/auto/quick/qquickapplication/data/tst_displayname.qml b/tests/auto/quick/qquickapplication/data/tst_displayname.qml new file mode 100644 index 0000000000..f43beaf6de --- /dev/null +++ b/tests/auto/quick/qquickapplication/data/tst_displayname.qml @@ -0,0 +1,7 @@ +import QtQuick 2.0; + +Item { + id: root; + property string displayName: Qt.application.displayName; + function updateDisplayName(name) { Qt.application.displayName = name; } +} diff --git a/tests/auto/quick/qquickapplication/qquickapplication.pro b/tests/auto/quick/qquickapplication/qquickapplication.pro index 59445a6c16..c47f5472b7 100644 --- a/tests/auto/quick/qquickapplication/qquickapplication.pro +++ b/tests/auto/quick/qquickapplication/qquickapplication.pro @@ -3,5 +3,11 @@ TARGET = tst_qquickapplication macx:CONFIG -= app_bundle SOURCES += tst_qquickapplication.cpp +OTHER_FILES += data/tst_displayname.qml + +include (../../shared/util.pri) + +TESTDATA = data/* + QT += core-private gui-private qml quick qml-private quick-private testlib diff --git a/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp b/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp index 114f906736..d780b91260 100644 --- a/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp +++ b/tests/auto/quick/qquickapplication/tst_qquickapplication.cpp @@ -36,8 +36,9 @@ #include <qpa/qwindowsysteminterface.h> #include <qpa/qplatformintegration.h> #include <private/qguiapplication_p.h> +#include "../../shared/util.h" -class tst_qquickapplication : public QObject +class tst_qquickapplication : public QQmlDataTest { Q_OBJECT public: @@ -51,6 +52,7 @@ private slots: void inputMethod(); void styleHints(); void cleanup(); + void displayName(); private: QQmlEngine engine; @@ -239,6 +241,29 @@ void tst_qquickapplication::styleHints() QCOMPARE(qvariant_cast<QObject*>(item->property("styleHints")), qApp->styleHints()); } +void tst_qquickapplication::displayName() +{ + QString name[3] = { QStringLiteral("APP NAME 0"), + QStringLiteral("APP NAME 1"), + QStringLiteral("APP NAME 2") + }; + + QQmlComponent component(&engine, testFileUrl("tst_displayname.qml")); + QQuickItem *item = qobject_cast<QQuickItem *>(component.create()); + QVERIFY(item); + QQuickView view; + item->setParentItem(view.rootObject()); + + QCoreApplication::setApplicationName(name[0]); + QCOMPARE(qvariant_cast<QString>(item->property("displayName")), name[0]); + + QGuiApplication::setApplicationName(name[1]); + QCOMPARE(qvariant_cast<QString>(item->property("displayName")), name[1]); + + QMetaObject::invokeMethod(item, "updateDisplayName", Q_ARG(QVariant, QVariant(name[2]))); + QCOMPARE(QGuiApplication::applicationDisplayName(), name[2]); +} + QTEST_MAIN(tst_qquickapplication) #include "tst_qquickapplication.moc" |