From 532b94e98f3d7c74599b7093a3c353e3a747f7a4 Mon Sep 17 00:00:00 2001 From: David Faure Date: Fri, 4 Apr 2014 19:28:43 +0200 Subject: [PATCH] Add support for -qwindowicon command line argument. [ChangeLog][QtGui][QGuiApplication] Add support for -icon command line argument on X11, add -qwindowicon on all platforms. Change-Id: Iacc602466699bf634d8b34aab7ed73c83fd9844f Reviewed-by: Frederik Gladhorn Reviewed-by: Friedemann Kleint --- src/gui/kernel/qguiapplication.cpp | 6 ++++++ src/gui/kernel/qguiapplication_p.h | 1 + src/gui/kernel/qwindow.cpp | 5 ++++- .../kernel/qguiapplication/icons/appicon.png | Bin 0 -> 175 bytes .../kernel/qguiapplication/icons/usericon.png | Bin 0 -> 14743 bytes .../qguiapplication/qguiapplication.pro | 2 ++ .../qguiapplication/tst_qguiapplication.cpp | 19 ++++++++++++++++++ .../qguiapplication/tst_qguiapplication.qrc | 6 ++++++ 8 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/auto/gui/kernel/qguiapplication/icons/appicon.png create mode 100644 tests/auto/gui/kernel/qguiapplication/icons/usericon.png create mode 100644 tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.qrc diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index f0ef39e809..01b888919d 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -495,6 +495,7 @@ static QWindowGeometrySpecification windowGeometrySpecification; \l{Session Management}{session}. \li -qwindowgeometry, sets the geometry of the first window \li -qwindowtitle, sets the title of the first window + \li -qwindowicon, sets the default window icon \endlist The following standard command line options are available for X11: @@ -1115,6 +1116,11 @@ void QGuiApplicationPrivate::createPlatformIntegration() } else if (arg == "-qwindowtitle" || (platformName == "xcb" && arg == "-title")) { if (++i < argc) firstWindowTitle = QString::fromLocal8Bit(argv[i]); + } else if (arg == "-qwindowicon" || (platformName == "xcb" && arg == "-icon")) { + if (++i < argc) { + const QString icon = QString::fromLocal8Bit(argv[i]); + forcedWindowIcon = QDir::isAbsolutePath(icon) ? QIcon(icon) : QIcon::fromTheme(icon); + } } else { argv[j++] = argv[i]; } diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h index 8f6149d1ed..782a4b34b3 100644 --- a/src/gui/kernel/qguiapplication_p.h +++ b/src/gui/kernel/qguiapplication_p.h @@ -234,6 +234,7 @@ public: QInputMethod *inputMethod; QString firstWindowTitle; + QIcon forcedWindowIcon; static QList generic_plugin_list; #ifndef QT_NO_SHORTCUT diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 6dcc3df166..2b0c95b2b6 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -436,11 +436,14 @@ void QWindow::setVisible(bool visible) QCoreApplication::removePostedEvents(qApp, QEvent::Quit); if (type() == Qt::Window) { - QString &firstWindowTitle = QGuiApplicationPrivate::instance()->firstWindowTitle; + QGuiApplicationPrivate *app_priv = QGuiApplicationPrivate::instance(); + QString &firstWindowTitle = app_priv->firstWindowTitle; if (!firstWindowTitle.isEmpty()) { setTitle(firstWindowTitle); firstWindowTitle = QString(); } + if (!app_priv->forcedWindowIcon.isNull()) + setIcon(app_priv->forcedWindowIcon); } QShowEvent showEvent; diff --git a/tests/auto/gui/kernel/qguiapplication/icons/appicon.png b/tests/auto/gui/kernel/qguiapplication/icons/appicon.png new file mode 100644 index 0000000000000000000000000000000000000000..b5d3ecbddf72e23df912cf21a04658fce092e202 GIT binary patch literal 175 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 literal 0 HcmV?d00001 diff --git a/tests/auto/gui/kernel/qguiapplication/qguiapplication.pro b/tests/auto/gui/kernel/qguiapplication/qguiapplication.pro index cd363bab31..895c2a0307 100644 --- a/tests/auto/gui/kernel/qguiapplication/qguiapplication.pro +++ b/tests/auto/gui/kernel/qguiapplication/qguiapplication.pro @@ -7,3 +7,5 @@ INCLUDEPATH += $$CORE_TEST_PATH TARGET = tst_qguiapplication QT += gui-private SOURCES += tst_qguiapplication.cpp + +RESOURCES = tst_qguiapplication.qrc diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp index 6ef9957fa1..eea72cd246 100644 --- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp @@ -61,6 +61,7 @@ class tst_QGuiApplication: public tst_QCoreApplication private slots: void displayName(); void firstWindowTitle(); + void windowIcon(); void focusObject(); void allWindows(); void topLevelWindows(); @@ -95,6 +96,24 @@ void tst_QGuiApplication::firstWindowTitle() QCOMPARE(window.title(), QString("User Title")); } +void tst_QGuiApplication::windowIcon() +{ + int argc = 3; + char *argv[] = { const_cast("tst_qguiapplication"), const_cast("-qwindowicon"), const_cast(":/icons/usericon.png") }; + QGuiApplication app(argc, argv); + QIcon appIcon(":/icons/appicon.png"); + app.setWindowIcon(appIcon); + + QWindow window; + window.show(); + + QIcon userIcon(":/icons/usericon.png"); + // Comparing icons is hard. cacheKey() differs because the icon was independently loaded. + // So we use availableSizes, after making sure that the app and user icons do have different sizes. + QVERIFY(userIcon.availableSizes() != appIcon.availableSizes()); + QCOMPARE(window.icon().availableSizes(), userIcon.availableSizes()); +} + class DummyWindow : public QWindow { public: diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.qrc b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.qrc new file mode 100644 index 0000000000..b26fba37b9 --- /dev/null +++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.qrc @@ -0,0 +1,6 @@ + + + icons/usericon.png + icons/appicon.png + +