Mercurial > trustbridge
annotate ui/main.cpp @ 482:0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 24 Apr 2014 12:44:35 +0200 |
parents | 3d1e9df24803 |
children | 77d478a34f45 |
rev | line source |
---|---|
404 | 1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU GPL (v>=2) | |
5 * and comes with ABSOLUTELY NO WARRANTY! | |
6 * See LICENSE.txt for details. | |
7 */ | |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 #include "mainwindow.h" |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 #include <QApplication> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 #include <QSystemTrayIcon> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 #include <QtPlugin> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 #include <QMessageBox> |
17
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
14 #include <QSettings> |
423
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
15 #include <QDebug> |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
16 #include <QTranslator> |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
18 #ifndef VERSION |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
19 #define VERSION "0.0.1" |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
20 #endif |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
21 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
22 #ifndef APPNAME |
407
af53c40e74b1
Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents:
404
diff
changeset
|
23 #define APPNAME "TrustBridge" |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
24 #endif |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
25 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
26 #ifndef ORGANIZATION |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
27 #define ORGANIZATION "BSI" |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
28 #endif |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 #ifdef Q_OS_WIN |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin) |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 #else |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 Q_IMPORT_PLUGIN(QXcbIntegrationPlugin) |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 #endif |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 int main(int argc, char **argv) |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 QApplication app (argc, argv); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 |
482
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
40 QApplication::setQuitOnLastWindowClosed(false); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
41 QApplication::setOrganizationName(QString::fromLatin1(ORGANIZATION)); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
42 QApplication::setApplicationName(QString::fromLatin1(APPNAME)); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
43 QApplication::setApplicationVersion(QString::fromLatin1(VERSION)); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
44 QSettings::setDefaultFormat(QSettings::IniFormat); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
45 |
154
3349c9596043
Added commandline arguemnt '--tray' to hide or show the mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
73
diff
changeset
|
46 QStringList arguments = QApplication::arguments(); |
3349c9596043
Added commandline arguemnt '--tray' to hide or show the mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
73
diff
changeset
|
47 bool trayMode = arguments.contains("--tray"); |
3349c9596043
Added commandline arguemnt '--tray' to hide or show the mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
73
diff
changeset
|
48 |
482
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
49 QSettings settings; |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
50 settings.beginGroup("settings"); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
51 int autoStart = settings.value("autostart").toInt(); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
52 settings.endGroup(); |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
53 qDebug() << "autostart: " << autoStart; |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
54 |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
55 if (trayMode && autoStart <= 0) { |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
56 return 0; |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
57 } |
0f4331ed4e83
Close the application if started in tray mode and autstart is not set.
Raimund Renkert <rrenkert@intevation.de>
parents:
423
diff
changeset
|
58 |
423
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
59 QTranslator translator; |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
60 if (QLocale::system().name() == "C") { |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
61 /* Useful for testing / development as the primary target is german */ |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
62 translator.load(":/l10n/trustbridge_de_DE"); |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
63 } else { |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
64 translator.load(":/l10n/trustbridge_" + QLocale::system().name()); |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
65 qDebug() << "Loading translations for: " << "trustbridge_" + |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
66 QLocale::system().name(); |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
67 } |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
68 app.installTranslator(&translator); |
3d1e9df24803
Add translation loading
Andre Heinecke <aheinecke@intevation.de>
parents:
409
diff
changeset
|
69 |
73
5c616934cbe4
Also check that the system tray supports messages
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
70 if (!QSystemTrayIcon::isSystemTrayAvailable() || |
5c616934cbe4
Also check that the system tray supports messages
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
71 !QSystemTrayIcon::supportsMessages()) { |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
72 QMessageBox::critical(0, QString::fromLatin1(APPNAME), |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 QObject::tr("Couldn't detect any system tray " |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
74 "on this system. This software can only " |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
75 "be used in a desktop environment.")); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
76 return 1; |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
77 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
0
diff
changeset
|
78 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
154
diff
changeset
|
79 MainWindow mainWin(trayMode); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
80 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 return app.exec(); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
82 } |