From 34ec0713bb5a2bc12782ab17ceabfead37c4b584 Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Wed, 8 Apr 2015 13:09:10 +0200 Subject: Add a means to set the application icon where supported On OS X the application icon can be changed at runtime, so this adds a way to set this via the QPlatformIntegration. [ChangeLog][OS X] QApplication::setWindowIcon now changes the icon for the application in the dock. Task-number: QTBUG-43999 Change-Id: Ice298c0bd52f10f4866f37c6d3f20cf5419b7a1b Reviewed-by: Gabriel de Dietrich Reviewed-by: Jake Petroules --- tests/manual/cocoa/appicon/README | 3 ++ tests/manual/cocoa/appicon/appicon.pro | 4 ++ tests/manual/cocoa/appicon/main.cpp | 68 ++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 tests/manual/cocoa/appicon/README create mode 100644 tests/manual/cocoa/appicon/appicon.pro create mode 100644 tests/manual/cocoa/appicon/main.cpp (limited to 'tests') diff --git a/tests/manual/cocoa/appicon/README b/tests/manual/cocoa/appicon/README new file mode 100644 index 0000000000..ecef1286ff --- /dev/null +++ b/tests/manual/cocoa/appicon/README @@ -0,0 +1,3 @@ +Test for checking that the dock icon is changed when +QGuiApplication::setWindowIcon() is called. Clicking the +buttong should change the entry in the dock to a red icon. diff --git a/tests/manual/cocoa/appicon/appicon.pro b/tests/manual/cocoa/appicon/appicon.pro new file mode 100644 index 0000000000..87df7b872c --- /dev/null +++ b/tests/manual/cocoa/appicon/appicon.pro @@ -0,0 +1,4 @@ +QT += widgets +TEMPLATE = app +TARGET = appicon +SOURCES += main.cpp diff --git a/tests/manual/cocoa/appicon/main.cpp b/tests/manual/cocoa/appicon/main.cpp new file mode 100644 index 0000000000..9e00e4e64c --- /dev/null +++ b/tests/manual/cocoa/appicon/main.cpp @@ -0,0 +1,68 @@ +/**************************************************************************** + ** + ** Copyright (C) 2015 The Qt Company Ltd. + ** Contact: http://www.qt.io/licensing/ + ** + ** This file is part of the test suite of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:LGPL21$ + ** Commercial License Usage + ** Licensees holding valid commercial Qt licenses may use this file in + ** accordance with the commercial license agreement provided with the + ** Software or, alternatively, in accordance with the terms contained in + ** a written agreement between you and The Qt Company. For licensing terms + ** and conditions see http://www.qt.io/terms-conditions. For further + ** information use the contact form at http://www.qt.io/contact-us. + ** + ** GNU Lesser General Public License Usage + ** Alternatively, this file may be used under the terms of the GNU Lesser + ** General Public License version 2.1 or version 3 as published by the Free + ** Software Foundation and appearing in the file LICENSE.LGPLv21 and + ** LICENSE.LGPLv3 included in the packaging of this file. Please review the + ** following information to ensure the GNU Lesser General Public License + ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and + ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. + ** + ** As a special exception, The Qt Company gives you certain additional + ** rights. These rights are described in The Qt Company LGPL Exception + ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. + ** + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + +#include +#include +#include + +class TopWidget : public QWidget +{ + Q_OBJECT +public: + TopWidget(QWidget *parent = 0) : QWidget(parent) + { + QVBoxLayout *layout = new QVBoxLayout; + QPushButton *button = new QPushButton("Change app icon"); + connect(button, SIGNAL(clicked()), this, SLOT(changeIcon())); + layout->addWidget(button); + setLayout(layout); + } +public slots: + void changeIcon() + { + QPixmap pix(32, 32); + pix.fill(Qt::red); + QIcon i(pix); + qApp->setWindowIcon(i); + } +}; + +#include "main.moc" + +int main(int argc, char **argv) +{ + QApplication a(argc, argv); + TopWidget w; + w.show(); + return a.exec(); +} -- cgit v1.2.3