diff options
author | David Faure <faure@kde.org> | 2012-06-23 14:08:25 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-27 09:23:15 +0200 |
commit | 2246e48a760823234952031afd247e5d0419e38c (patch) | |
tree | 943afc41b3708de63f821b22456bcfe2f088b7c0 | |
parent | ae7e9a407fbcd06926216e9f9bdebc0a8144527c (diff) |
Add QGuiApplication::setApplicationDisplayName.
This is for use in window titles.
Change-Id: I0070a08abd379ae2edcfab4413c182bd9e840678
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 27 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.h | 4 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication_p.h | 1 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp | 13 |
4 files changed, 45 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index dbee892319..a3d9c1f2ab 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -119,6 +119,7 @@ enum ApplicationResourceFlags static unsigned applicationResourceFlags = 0; QString *QGuiApplicationPrivate::platform_name = 0; +QString *QGuiApplicationPrivate::displayName = 0; QPalette *QGuiApplicationPrivate::app_pal = 0; // default application palette @@ -369,6 +370,8 @@ QGuiApplication::~QGuiApplication() delete QGuiApplicationPrivate::platform_name; QGuiApplicationPrivate::platform_name = 0; + delete QGuiApplicationPrivate::displayName; + QGuiApplicationPrivate::displayName = 0; } QGuiApplicationPrivate::QGuiApplicationPrivate(int &argc, char **argv, int flags) @@ -382,6 +385,30 @@ QGuiApplicationPrivate::QGuiApplicationPrivate(int &argc, char **argv, int flags } /*! + \property QGuiApplication::applicationDisplayName + \brief the user-visible name of this application + \since 5.0 + + This name is shown to the user, for instance in window titles. + It can be translated, if necessary. + + If not set, the application display name defaults to the application name. + + \sa applicationName +*/ +void QGuiApplication::setApplicationDisplayName(const QString &name) +{ + if (!QGuiApplicationPrivate::displayName) + QGuiApplicationPrivate::displayName = new QString; + *QGuiApplicationPrivate::displayName = name; +} + +QString QGuiApplication::applicationDisplayName() +{ + return QGuiApplicationPrivate::displayName ? *QGuiApplicationPrivate::displayName : applicationName(); +} + +/*! Returns the most recently shown modal window. If no modal windows are visible, this function returns zero. diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h index a366826c28..b84d73147d 100644 --- a/src/gui/kernel/qguiapplication.h +++ b/src/gui/kernel/qguiapplication.h @@ -74,6 +74,7 @@ class QStyleHints; class Q_GUI_EXPORT QGuiApplication : public QCoreApplication { Q_OBJECT + Q_PROPERTY(QString applicationDisplayName READ applicationDisplayName WRITE setApplicationDisplayName) Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection) Q_PROPERTY(QString platformName READ platformName STORED false) Q_PROPERTY(bool quitOnLastWindowClosed READ quitOnLastWindowClosed WRITE setQuitOnLastWindowClosed) @@ -82,6 +83,9 @@ public: QGuiApplication(int &argc, char **argv, int = ApplicationFlags); virtual ~QGuiApplication(); + static void setApplicationDisplayName(const QString &name); + static QString applicationDisplayName(); + static QWindowList allWindows(); static QWindowList topLevelWindows(); static QWindow *topLevelAt(const QPoint &pos); diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h index a564120a3b..a9fe118f2b 100644 --- a/src/gui/kernel/qguiapplication_p.h +++ b/src/gui/kernel/qguiapplication_p.h @@ -164,6 +164,7 @@ public: static QGuiApplicationPrivate *instance() { return self; } static QString *platform_name; + static QString *displayName; QWindowList modalWindowList; static void showModalWindow(QWindow *window); diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index 372dd65ff4..dda810ab41 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -50,6 +50,7 @@ class tst_QGuiApplication: public QObject Q_OBJECT private slots: + void displayName(); void focusObject(); void allWindows(); void topLevelWindows(); @@ -60,6 +61,18 @@ private slots: void quitOnLastWindowClosed(); }; +void tst_QGuiApplication::displayName() +{ + int argc = 1; + char *argv[] = { const_cast<char*>("tst_qguiapplication") }; + QGuiApplication app(argc, argv); + QCOMPARE(::qAppName(), QString::fromLatin1("tst_qguiapplication")); + QCOMPARE(QGuiApplication::applicationName(), QString::fromLatin1("tst_qguiapplication")); + QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("tst_qguiapplication")); + QGuiApplication::setApplicationDisplayName("The GUI Application"); + QCOMPARE(QGuiApplication::applicationDisplayName(), QString::fromLatin1("The GUI Application")); +} + class DummyWindow : public QWindow { public: |