Mercurial > trustbridge
annotate ui/mainwindow.cpp @ 1310:60e481aa75ca
(issue152) Do not return CryptUIDlgViewContext's return value
The return value is false if the user cancels the dialog.
But as the certificate has been shown this is not really an
error.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 13 Oct 2014 14:13:05 +0200 |
parents | fce8c122cbc4 |
children | 135891f1c8f4 |
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 <QDebug> |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
11 #include <QProcess> |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
12 #include <QProgressDialog> |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 #include <QMessageBox> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 #include <QAction> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 #include <QDialog> |
563
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
16 #include <QDir> |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 #include <QMenu> |
2 | 18 #include <QApplication> |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
19 #include <QFile> |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
20 #include <QTemporaryDir> |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
21 #include <QTimer> |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
22 #include <QHBoxLayout> |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
23 #include <QVBoxLayout> |
709
8f110e6b8295
(UI) Changed update header to GridLayout and moved action buttons to bottom left.
Emanuel Schuetze <emanuel@intevation.de>
parents:
708
diff
changeset
|
24 #include <QGridLayout> |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
25 #include <QGroupBox> |
189
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
26 #include <QSplitter> |
205
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
27 #include <QLabel> |
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
28 #include <QImage> |
250
1e112cf41e92
Updated the mainwindow layout.
Raimund Renkert <rrenkert@intevation.de>
parents:
249
diff
changeset
|
29 #include <QCheckBox> |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
30 #include <QButtonGroup> |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
31 #include <QToolButton> |
857
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
32 #include <QStandardPaths> |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
33 #include <QDesktopServices> |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
34 |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
35 #include "certificatelist.h" |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
36 #include "certificateitemwidget.h" |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
37 #include "downloader.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
38 #include "helpdialog.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
39 #include "aboutdialog.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
40 #include "separatoritemdelegate.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
41 #include "installwrapper.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
42 #include "util.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
43 #include "logging.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
44 #include "binverify.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
45 #include "processhelp.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
46 #include "processwaitdialog.h" |
871
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
47 #include "trayicon.h" |
956
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
48 #include "proxysettingsdlg.h" |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
49 |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
50 // The amount of time in minutes stay silent if we have |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
51 // something to say |
548
c84dc8f6d017
Increase nag interval to 70 minutes
Andre Heinecke <aheinecke@intevation.de>
parents:
531
diff
changeset
|
52 #define NAG_INTERVAL_MINUTES 70 |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
54 #define DATETIME_FORMAT "d. MMM yyyy HH:mm" |
714
57bd73145e48
(Issue25) Fix typos change order and add better date formating
Andre Heinecke <andre.heinecke@intevation.de>
parents:
713
diff
changeset
|
55 |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
56 #ifndef APPNAME |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
57 #define APPNAME "TrustBridge" |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
58 #endif |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
59 |
994
8fb1b912fd8e
Add test using the default download server used by the software
Andre Heinecke <andre.heinecke@intevation.de>
parents:
987
diff
changeset
|
60 #ifndef SERVER_URL |
8fb1b912fd8e
Add test using the default download server used by the software
Andre Heinecke <andre.heinecke@intevation.de>
parents:
987
diff
changeset
|
61 #error "DOWNLOAD_SERVER option not set or invalid." |
8fb1b912fd8e
Add test using the default download server used by the software
Andre Heinecke <andre.heinecke@intevation.de>
parents:
987
diff
changeset
|
62 #endif |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
63 |
885
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
64 #if defined(_X86_) || defined(__i386__) |
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
65 #define TB_ARCH_STRING "-i386" |
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
66 #else |
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
67 #define TB_ARCH_STRING "-amd64" |
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
68 #endif |
1cc85fd3daa5
(issue70) Handle i386 and amd64 packages
Andre Heinecke <andre.heinecke@intevation.de>
parents:
871
diff
changeset
|
69 |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
70 #ifdef IS_TAG_BUILD |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
71 # define LIST_RESOURCE "/zertifikatsliste.txt" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
72 # ifdef Q_OS_WIN |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
73 # define SW_RESOURCE_VERSION "/TrustBridge-%1.exe" |
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
74 # define SW_RESOURCE "/TrustBridge.exe" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
75 # else |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
76 # define SW_RESOURCE_VERSION "/TrustBridge-%1" TB_ARCH_STRING ".sh" |
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
77 # define SW_RESOURCE "/TrustBridge" TB_ARCH_STRING ".sh" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
78 # endif |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
79 #else // Not tag build means develpment build |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
80 # define LIST_RESOURCE "/zertifikatsliste.txt" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
81 # ifdef Q_OS_WIN |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
82 # define SW_RESOURCE_VERSION "/development/TrustBridge-%1.exe" |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
83 # define SW_RESOURCE "/development/TrustBridge.exe" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
84 # else |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
85 # define SW_RESOURCE_VERSION "/development/TrustBridge-%1" TB_ARCH_STRING ".sh" |
1088
508c96e72f62
(issue124) Switch server URL and remove some RELEASE_BUILD options
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1082
diff
changeset
|
86 # define SW_RESOURCE "/development/TrustBridge" TB_ARCH_STRING ".sh" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
87 # endif |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
88 #endif |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
2
diff
changeset
|
89 |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
90 /* Help installation path the path relative to the installation directory where |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
91 * the help is placed.*/ |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
92 #ifdef WIN32 |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
93 #define HELP_PATH "/doc/index.html" |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
94 #else |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
95 #define HELP_PATH "/../share/doc/trustbridge/index.html" |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
96 #endif |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
97 |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
98 static void activateDetailsButton(QPushButton *); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
99 static void deactivateDetailsButton(QPushButton *); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
100 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
101 MainWindow::MainWindow(bool trayMode): |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
102 mTrayMode(trayMode), |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
103 mManualDetailsShown(false) |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
104 { |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
105 createActions(); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 createTrayIcon(); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
107 setupGUI(); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
108 resize(900, 600); |
709
8f110e6b8295
(UI) Changed update header to GridLayout and moved action buttons to bottom left.
Emanuel Schuetze <emanuel@intevation.de>
parents:
708
diff
changeset
|
109 setMinimumWidth(760); |
45
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
110 qRegisterMetaType<SSLConnection::ErrorCode>("SSLConnection::ErrorCode"); |
265
ffd47b045d19
Added certificate status enum and register it as metatype.
Raimund Renkert <rrenkert@intevation.de>
parents:
250
diff
changeset
|
111 qRegisterMetaType<Certificate::Status>("Certificate::Status"); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
112 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
113 connect(mTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
115 |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
116 mMessageTimer = new QTimer(this); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
117 connect(mMessageTimer, SIGNAL(timeout()), this, SLOT(showMessage())); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
118 mMessageTimer->setInterval(NAG_INTERVAL_MINUTES * 60 * 1000); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
119 mMessageTimer->start(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
120 checkUpdates(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
121 loadUnselectedCertificates(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
122 loadCertificateList(); |
1125
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
123 |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
124 if (mSettings.value("ShowOnNextStart").toBool()) { |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
125 mSettings.remove("ShowOnNextStart"); |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
126 show(); |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
127 } else if (!trayMode) { |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
128 show(); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
129 } |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
130 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
131 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
132 void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason) |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
133 { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
134 switch (reason) { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
135 case QSystemTrayIcon::Trigger: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
136 case QSystemTrayIcon::MiddleClick: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
137 showMessage(); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
138 break; |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
139 case QSystemTrayIcon::DoubleClick: |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
140 show(); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
141 break; |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
142 default: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
143 ; |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
144 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
145 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
146 |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
147 void MainWindow::messageClicked() |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
148 { |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
149 if (mCurState == NewSoftwareAvailable) { |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
150 verifySWData(); |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
151 QString swFileName = mSettings.value("Software/available").toString(); |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
152 if (swFileName.isEmpty()) { |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
153 checkUpdates(true); |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
154 mCurState = DownloadingSW; |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
155 return; |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
156 } |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
157 installNewSW(swFileName, |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
158 mSettings.value("Software/availableDate").toDateTime()); |
965
013ca910589a
Open main window in case of error message.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
964
diff
changeset
|
159 } else { |
013ca910589a
Open main window in case of error message.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
964
diff
changeset
|
160 show(); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
161 } |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
162 } |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
163 |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
164 void MainWindow::showMessage() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
165 { |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
166 if (mCurMessage.isEmpty()) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
167 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
168 } |
961
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
169 |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
170 if (!mTrayIcon->isVisible() && !mTrayIcon->isAlternative()) { |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
171 mTrayIcon->show(); |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
172 /* When the message is shown before the tray icon is fully visble |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
173 * and becoming visible may be delayed on some desktop environments |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
174 * the message will pop up somehere on the screen and not over |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
175 * the trayicon. So we delay here.*/ |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
176 QTimer::singleShot(2000, this, SLOT(showMessage())); |
423e31ac656e
Delay the tray icon after the download
Andre Heinecke <andre.heinecke@intevation.de>
parents:
956
diff
changeset
|
177 } else if (mCurState == NewSoftwareAvailable || !isVisible()) { |
1144
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
178 if (mCurState == NewListAvailable) { |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
179 mTrayIcon->showMessage(QApplication::applicationName(), mCurMessage, |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
180 QSystemTrayIcon::Information, 10000, |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
181 tr("Show recommendations")); |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
182 } else if (mCurState == NewSoftwareAvailable || !mTrayIcon->isAlternative()) { |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
183 /* Only show new list or new software in alternative as |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
184 * the current tray icon alternative is too invasive for pure |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
185 * informational messages. */ |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
186 mTrayIcon->showMessage(QApplication::applicationName(), mCurMessage, |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
187 QSystemTrayIcon::Information, 10000); |
a4282bc67a8b
(issue99) Make OK button in message box notification configurable and change it for list updates
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1127
diff
changeset
|
188 } |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
189 mMessageTimer->start(); // Restart the timer so that we don't spam |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
190 } |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
191 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
192 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
193 void MainWindow::verifyListData() |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
194 { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
195 QString availableFileName = mSettings.value("List/available").toString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
196 QString installedFileName = mSettings.value("List/installed").toString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
197 if (!availableFileName.isEmpty()) { |
1153
0495f9187c4b
(issue36) read_and_verify_list expects utf8 filenames.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1148
diff
changeset
|
198 mListToInstall.readList(availableFileName.toUtf8().constData()); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
199 if (!mListToInstall.isValid()) { |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
200 handleLTE(lteInvalidList); |
82
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
201 mCurState = TransferError; |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
202 QFile::remove(availableFileName); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
203 mSettings.remove("List/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
204 mSettings.remove("List/availableDate"); |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
205 } else { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
206 handleLTE(lteInvalidList, true); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
207 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
208 } else { |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
209 // Make sure the available notation is also removed |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
210 mSettings.remove("List/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
211 mSettings.remove("List/availableDate"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
212 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
213 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
214 if (!installedFileName.isEmpty()) { |
1153
0495f9187c4b
(issue36) read_and_verify_list expects utf8 filenames.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1148
diff
changeset
|
215 mInstalledList.readList(installedFileName.toUtf8().constData()); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
216 if (!mInstalledList.isValid()) { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
217 // Probably a bug when Qt fileName is encoded and cFileName |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
218 // fails because of this. This needs a unit test! |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
219 // Maybe check that the file is in our data directory |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
220 QFile::remove(installedFileName); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
221 mSettings.remove("List/installed"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
222 mSettings.remove("List/installedDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
223 } |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
224 } else { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
225 mSettings.remove("List/installed"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
226 mSettings.remove("List/installedDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
227 } |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
228 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
229 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
230 void MainWindow::verifySWData() |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
231 { |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
232 QString swFileName = mSettings.value("Software/available").toString(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
233 |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
234 if (swFileName.isEmpty()) { |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
235 qDebug() << "Date set but no fileName"; |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
236 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
237 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
238 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
239 |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
240 QFileInfo fi(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
241 if (!fi.exists()) { |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
242 mSettings.remove("Software/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
243 mSettings.remove("Software/availableDate"); |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
244 qDebug() << "Software does not yet exist."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
245 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
246 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
247 if (!fi.isExecutable()) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
248 qWarning() << "Downloaded file: " << swFileName << " is not executable."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
249 QFile::remove(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
250 mSettings.remove("Software/available"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
251 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
252 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
253 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
254 bin_verify_result verifyResult = verify_binary(swFileName.toUtf8().constData(), |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
255 swFileName.toUtf8().size()); |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
256 qDebug() << "Binary verify result: " << verifyResult.result; |
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
257 if (verifyResult.result != VerifyValid) { |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
258 handleLTE(lteInvalidSoftware); |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
259 qDebug() << "Failed to verify downloaded data."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
260 QFile::remove(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
261 mSettings.remove("Software/available"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
262 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
263 return; |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
264 } |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
265 handleLTE(lteInvalidSoftware, true); /* Reset error state */ |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
266 fclose(verifyResult.fptr); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
267 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
268 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
269 void MainWindow::handleNewList(const QString& fileName, const QDateTime& modDate) { |
1232
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
270 |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
271 if (mSettings.value("List/available").toString() == fileName && |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
272 getState() == NewListAvailable) { |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
273 qDebug() << "List already handled"; |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
274 return; |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
275 } else { |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
276 qDebug() << "Handling list"; |
f7e890c4dac6
(issue148) Only update list widgets when something new is available.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1231
diff
changeset
|
277 } |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
278 mSettings.setValue("List/available", fileName); |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
279 mSettings.setValue("List/availableDate", modDate); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
280 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
281 verifyListData(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
282 if (!mListToInstall.isValid()) { |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
283 handleLTE(lteInvalidList); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
284 /* Downloader provided invalid files */ |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
285 |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
286 /* Retry the download again in 10 - 20 minutes */ |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
287 QTimer::singleShot(600000 + (qrand() % 60000), this, SLOT(checkUpdates())); |
1153
0495f9187c4b
(issue36) read_and_verify_list expects utf8 filenames.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1148
diff
changeset
|
288 qDebug() << "Failed to verify list."; |
82
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
289 } else { |
1154
98e0712e790b
Indentation fix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1153
diff
changeset
|
290 if (mTrayIcon->isAlternative()) { |
98e0712e790b
Indentation fix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1153
diff
changeset
|
291 mCurMessage = tr("An updated certificate list is available."); |
98e0712e790b
Indentation fix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1153
diff
changeset
|
292 } else { |
98e0712e790b
Indentation fix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1153
diff
changeset
|
293 mCurMessage = tr("An updated certificate list is available.") +" " + tr("Click here to install."); |
98e0712e790b
Indentation fix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1153
diff
changeset
|
294 } |
82
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
295 setState(NewListAvailable); |
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
296 showMessage(); |
189
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
297 loadCertificateList(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
298 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
299 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
300 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
301 void MainWindow::handleNewSW(const QString& fileName, const QDateTime& modDate) { |
871
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
302 if (mTrayIcon->isAlternative()) { |
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
303 mCurMessage = tr("An update for %1 is available.").arg( |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
304 QApplication::applicationName()); |
871
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
305 } else { |
904
f89b41fa7048
Fix whitespace errors
Andre Heinecke <andre.heinecke@intevation.de>
parents:
900
diff
changeset
|
306 mCurMessage = QString(tr("An update for %1 is available.") + "\n" + |
871
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
307 tr("Click here to download and install the update.")).arg( |
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
308 QApplication::applicationName()); |
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
309 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
310 setState(NewSoftwareAvailable); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
311 mSettings.setValue("Software/available", fileName); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
312 mSettings.setValue("Software/availableDate", modDate); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
313 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
314 mSettings.sync(); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
315 showMessage(); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
316 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
317 |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
318 QString MainWindow::getPrettyInstallerName(QString realFileName) { |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
319 QTemporaryDir tDir; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
320 if (!tDir.isValid()) { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
321 qDebug () << "Failed to create temporary directory."; |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
322 showErrorMessage (tr("Failed to create temporary directory.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
323 tr("Please ensure that you have the access rights to write in " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
324 "the temporary directory and that there is at least 20MB free " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
325 "disk space available.")); |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
326 return QString(); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
327 } |
1126
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
328 QString targetPath = tDir.path() + "/" + QObject::tr("TrustBridge-Updater", |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
329 "Used as filename for the updater. Only use ASCII please."); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
330 |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
331 tDir.setAutoRemove(false); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
332 #ifdef WIN32 |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
333 targetPath += ".exe"; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
334 #endif |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
335 if (!QFile::copy(realFileName, targetPath)) { |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
336 showErrorMessage (tr("Failed to create a temporary copy of the installer.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
337 tr("Please ensure that you have the access rights to write in " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
338 "the temporary directory and that there is at least 20MB free " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
339 "disk space available.")); |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
340 qDebug() << "Failed to create temporary copy of installer."; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
341 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
342 return targetPath; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
343 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
344 |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
345 void MainWindow::updaterFinished(int exitCode, QProcess::ExitStatus status) |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
346 { |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
347 if (status != QProcess::NormalExit) { |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
348 syslog_error_printf("Update failed.\n"); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
349 qDebug() << "Failed to install update."; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
350 return; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
351 } |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
352 if (exitCode != 0) { |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
353 qDebug() << "Update not installed with error: " << exitCode; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
354 return; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
355 } |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
356 qDebug() << "Restarting"; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
357 ProcessHelp::cleanUp(); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
358 QProcess::startDetached(qApp->applicationFilePath()); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
359 qApp->quit(); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
360 } |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
361 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
362 void MainWindow::installNewSW(const QString& fileName, const QDateTime& modDate) { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
363 QFileInfo instProcInfo = QFileInfo(fileName); |
563
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
364 QString filePath = QDir::toNativeSeparators(instProcInfo.absoluteFilePath()); |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
365 |
1292
87b3886aca69
(issue44) Also set available information when sw was dowloaded.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1276
diff
changeset
|
366 /* Reset available information. */ |
87b3886aca69
(issue44) Also set available information when sw was dowloaded.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1276
diff
changeset
|
367 mSettings.setValue("Software/available", fileName); |
87b3886aca69
(issue44) Also set available information when sw was dowloaded.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1276
diff
changeset
|
368 mSettings.setValue("Software/availableDate", modDate); |
87b3886aca69
(issue44) Also set available information when sw was dowloaded.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1276
diff
changeset
|
369 |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
370 /* Copy the file to a temporary name for installation */ |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
371 filePath = getPrettyInstallerName(filePath); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
372 |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
373 if (filePath.isEmpty()) { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
374 qDebug() << "Failed to copy updater to temporary location."; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
375 return; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
376 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
377 mSettings.setValue("Software/Updater", filePath); /* So it can be deleted |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
378 on next start */ |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
379 mSettings.sync(); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
380 |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
381 bin_verify_result vres = verify_binary(filePath.toUtf8().constData(), |
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
382 filePath.toUtf8().size()); |
592
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
383 |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
384 if (vres.result != VerifyValid) { |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
385 handleLTE(lteInvalidSoftware); |
592
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
386 qDebug() << "Invalid software. Not installing"; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
387 return; |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
388 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
389 handleLTE(lteInvalidSoftware, true); |
592
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
390 QFileInfo fi(QCoreApplication::applicationFilePath()); |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
391 QDir installDir = fi.absoluteDir(); |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
392 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
393 #ifdef WIN32 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
394 QString parameters = QString::fromLatin1("/S /UPDATE=1 /D=") + |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
395 installDir.path().replace("/", "\\") + ""; |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
396 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
397 SHELLEXECUTEINFOW shExecInfo; |
563
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
398 memset (&shExecInfo, 0, sizeof(SHELLEXECUTEINFOW)); |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
399 shExecInfo.cbSize = sizeof(SHELLEXECUTEINFOW); |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
400 |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
401 shExecInfo.lpFile = reinterpret_cast<LPCWSTR> (filePath.utf16()); |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
402 shExecInfo.lpParameters = reinterpret_cast<LPCWSTR> (parameters.utf16()); |
563
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
403 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
404 // shExecInfo.fMask = SEE_MASK_NOASYNC; |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
405 shExecInfo.nShow = SW_SHOWDEFAULT; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
406 |
1003
db7e7156c824
(issue66) Only depend on is_system_install on windows to decide privilege raise
Andre Heinecke <andre.heinecke@intevation.de>
parents:
997
diff
changeset
|
407 if (!is_system_install()) { |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
408 shExecInfo.lpVerb = L"open"; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
409 } else { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
410 shExecInfo.lpVerb = L"runas"; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
411 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
412 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
413 qDebug() << "Starting process: " << filePath |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
414 << " with arguments: " << parameters; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
415 |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
416 if (!ShellExecuteExW(&shExecInfo)) { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
417 /* Execution failed, maybe the user aborted the UAC check? */ |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
418 char* errmsg = getLastErrorMsg(); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
419 QString qerrmsg = QString::fromUtf8(errmsg); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
420 free(errmsg); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
421 qDebug() << "Failed to start process: " << qerrmsg; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
422 setState(NewSoftwareAvailable); |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
423 fclose(vres.fptr); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
424 return; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
425 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
426 #else /* WIN32 */ |
894
2e7fff9d195a
Update in the real prefix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
893
diff
changeset
|
427 /* On linux installDir is <prefix>/bin */ |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
428 QStringList parameters; |
894
2e7fff9d195a
Update in the real prefix
Andre Heinecke <andre.heinecke@intevation.de>
parents:
893
diff
changeset
|
429 installDir.cdUp(); |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
430 parameters << "--prefix" << installDir.path(); |
1067
51b97ebc5b06
(issue54) Launch depending on visibility either as tray or full after installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1061
diff
changeset
|
431 parameters << "--update"; |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
432 bool sudo_started = false; |
841
216a65d7fc4b
(issue66) Implement is_system_install and use it
Andre Heinecke <andre.heinecke@intevation.de>
parents:
838
diff
changeset
|
433 bool use_sudo = is_admin() && is_system_install(); |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
434 |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
435 QProcess *updaterProcess = new QProcess(); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
436 |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
437 if (use_sudo) { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
438 QStringList sudoPrograms; |
987
b8ae69bcc540
Use pkexec instead of gksudo.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
970
diff
changeset
|
439 sudoPrograms << "pkexec" << "kdesudo" << "sudo"; |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
440 QStringList sudoParams; |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
441 sudoParams << filePath; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
442 sudoParams << parameters; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
443 updaterProcess->setArguments(sudoParams); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
444 |
1260
82792b3a16bd
Add inactive debug code for update installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1259
diff
changeset
|
445 #if 0 |
82792b3a16bd
Add inactive debug code for update installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1259
diff
changeset
|
446 updaterProcess->setStandardErrorFile("/tmp/tb-inst-err.log"); |
82792b3a16bd
Add inactive debug code for update installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1259
diff
changeset
|
447 updaterProcess->setStandardOutputFile("/tmp/tb-inst-out.log"); |
82792b3a16bd
Add inactive debug code for update installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1259
diff
changeset
|
448 #endif |
82792b3a16bd
Add inactive debug code for update installation
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1259
diff
changeset
|
449 |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
450 foreach (const QString &sProg, sudoPrograms) { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
451 qDebug() << "Starting process " << sProg <<" params: " << sudoParams; |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
452 updaterProcess->setProgram(sProg); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
453 updaterProcess->start(); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
454 if (!updaterProcess->waitForStarted() || |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
455 updaterProcess->state() == QProcess::NotRunning) { |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
456 continue; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
457 } else { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
458 sudo_started = true; |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
459 connect(updaterProcess, SIGNAL(finished(int, QProcess::ExitStatus)), |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
460 this, SLOT(updaterFinished(int, QProcess::ExitStatus))); |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
461 break; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
462 } |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
463 } |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
464 } |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
465 if (!sudo_started) { |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
466 qDebug() << "Starting process " << filePath <<" params: " << parameters; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
467 updaterProcess->setArguments(parameters); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
468 updaterProcess->setProgram(filePath); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
469 updaterProcess->start(); |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
470 |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
471 if (!updaterProcess->waitForStarted() || |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
472 updaterProcess->state() == QProcess::NotRunning) { |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
473 qDebug() << "Failed to start process."; |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
474 } |
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
475 connect(updaterProcess, SIGNAL(finished(int, QProcess::ExitStatus)), |
1272
520d8e6f14a4
(issue44) Fix slot parameters
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1270
diff
changeset
|
476 this, SLOT(updaterFinished(int, QProcess::ExitStatus))); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
477 return; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
478 } |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
479 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
480 #endif |
1125
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
481 if (isVisible()) { |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
482 mSettings.setValue("ShowOnNextStart", true); |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
483 mSettings.sync(); |
dd9094d92899
(issue54) If the MainWindows is visible when an update is triggered start it visible after upadte
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1116
diff
changeset
|
484 } |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
485 |
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
486 syslog_info_printf ("Installing update: %s\n", fileName.toUtf8().constData()); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
487 /* Installer process should now be running. We exit */ |
1081
edbf5e5e88f4
(issue118) Extend verify_binary to carry an open file
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1067
diff
changeset
|
488 fclose(vres.fptr); |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
489 #ifdef WIN32 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
490 closeApp(); |
1252
9a482182f80f
(issue54) Monitor update installation and restart afterwards on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1246
diff
changeset
|
491 #endif |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
492 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
493 |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
494 void MainWindow::checkUpdates(bool downloadSW) |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
495 { |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
496 verifyListData(); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
497 |
1116
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
498 /* Delete old temporary installers if they exist */ |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
499 QString oldUpdater = mSettings.value("Software/Updater").toString(); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
500 |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
501 if (!oldUpdater.isEmpty()) { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
502 qDebug() << "Removing old updater: " << oldUpdater; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
503 QFileInfo fiUpdater(oldUpdater); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
504 if (!QFile::remove(fiUpdater.absoluteFilePath())) { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
505 qDebug() << "Failed to remove file"; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
506 } else { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
507 if (!fiUpdater.absoluteDir().rmdir(fiUpdater.absoluteDir().absolutePath())) { |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
508 qDebug() << "Failed to remove temporary directory."; |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
509 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
510 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
511 mSettings.remove("Software/Updater"); |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
512 } |
df2297e741ad
(issue127) Rename the installer to a pretty name before execution.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1110
diff
changeset
|
513 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
514 if (!mSettings.contains("Software/installedDate") || |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
515 mSettings.value("Software/installedVersion").toString() != QApplication::applicationVersion()) { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
516 /* This should only happen on initial startup and after an update has |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
517 * been installed */ |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
518 getLastModForCurrentVersion(); |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
519 return; |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
520 } |
17
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
521 QDateTime listInstalledLastMod = mSettings.value("List/installedDate").toDateTime(); |
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
522 QDateTime swInstalledLastMod = mSettings.value("Software/installedDate").toDateTime(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
523 QString listResource = QString::fromLatin1(LIST_RESOURCE); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
524 QString swResource = QString::fromLatin1(SW_RESOURCE); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
525 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
526 #ifndef RELEASE_BUILD |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
527 /* Use this for testing to specify another file name for updates */ |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
528 listResource = mSettings.value("List/resource", listResource).toString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
529 swResource = mSettings.value("Software/resource", swResource).toString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
530 #endif |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
531 |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
532 Downloader* downloader = new Downloader(this, |
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
533 QString::fromLatin1(SERVER_URL), |
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
534 QByteArray(), |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
535 swInstalledLastMod, |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
536 listInstalledLastMod, |
437
4b486a14252f
Acutally use the values that can be taken from the config
Andre Heinecke <aheinecke@intevation.de>
parents:
434
diff
changeset
|
537 swResource, |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
538 listResource, |
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
539 downloadSW); |
17
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
540 |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
541 connect(downloader, SIGNAL(newListAvailable(const QString&, const QDateTime&)), |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
542 this, SLOT(handleNewList(const QString&, const QDateTime&))); |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
543 if (!downloadSW) { |
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
544 connect(downloader, SIGNAL(newSoftwareAvailable(const QString&, const QDateTime&)), |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
545 this, SLOT(handleNewSW(const QString&, const QDateTime&))); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
546 } else { |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
547 setState(DownloadingSW); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
548 connect(downloader, SIGNAL(newSoftwareAvailable(const QString&, const QDateTime&)), |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
549 this, SLOT(installNewSW(const QString&, const QDateTime&))); |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
550 } |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
551 |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
552 connect(downloader, SIGNAL(finished()), downloader, SLOT(deleteLater())); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
553 connect(downloader, SIGNAL(finished()), this, SLOT(updateCheckSuccess())); |
45
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
554 connect(downloader, SIGNAL(error(const QString &, SSLConnection::ErrorCode)), |
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
555 this, SLOT(downloaderError(const QString &, SSLConnection::ErrorCode))); |
10
fe39d93f1261
Start on Downloader component
Andre Heinecke <aheinecke@intevation.de>
parents:
7
diff
changeset
|
556 downloader->start(); |
1126
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
557 |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
558 if (downloadSW && getState() == DownloadingSW && isVisible()) { |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
559 QProgressDialog *progDlg = new QProgressDialog(this); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
560 progDlg->setCancelButton(0); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
561 progDlg->setRange(0,0); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
562 progDlg->setMinimumDuration(0); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
563 progDlg->setLabelText(tr("Downloading update...")); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
564 progDlg->show(); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
565 connect(downloader, SIGNAL(finished()), progDlg, SLOT(deleteLater())); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
566 connect(downloader, SIGNAL(finished()), progDlg, SLOT(cancel())); |
a07030035349
(issue96) Add progressbar during download if window is visible.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1125
diff
changeset
|
567 } |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
568 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
569 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
570 void MainWindow::getLastModForCurrentVersion() |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
571 { |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
572 QString softwareVersion = QString::fromLatin1(SW_RESOURCE_VERSION).arg( |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
573 QApplication::applicationVersion()); |
1292
87b3886aca69
(issue44) Also set available information when sw was dowloaded.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1276
diff
changeset
|
574 qDebug() << "Getting last modified date for: " << softwareVersion; |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
575 QString listResource = QString::fromLatin1(LIST_RESOURCE); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
576 Downloader* downloader = new Downloader(this, |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
577 QString::fromLatin1(SERVER_URL), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
578 QByteArray(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
579 QDateTime::currentDateTime(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
580 QDateTime::currentDateTime(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
581 softwareVersion, |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
582 listResource, |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
583 false); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
584 connect(downloader, SIGNAL(finished()), downloader, SLOT(deleteLater())); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
585 connect(downloader, SIGNAL(error(const QString &, SSLConnection::ErrorCode)), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
586 this, SLOT(downloaderError(const QString &, SSLConnection::ErrorCode))); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
587 connect(downloader, SIGNAL(lastModifiedDate(const QDateTime&)), |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
588 this, SLOT(setLastModifiedSWDate(const QDateTime&))); |
1155
5f5880cca5cf
Fix connect syntax in downloader destroy notification.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1154
diff
changeset
|
589 connect(this, SIGNAL(destroyed(QObject*)), downloader, SLOT(quit())); |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
590 downloader->start(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
591 } |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
592 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
593 void MainWindow::setLastModifiedSWDate(const QDateTime &date) |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
594 { |
1259
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
595 QDateTime swAvailableLastMod = mSettings.value("Software/availableDate").toDateTime(); |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
596 |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
597 if (swAvailableLastMod.isValid() && date.isValid()) { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
598 if (date >= swAvailableLastMod) { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
599 qDebug() << "Installed an update: " << date << |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
600 " available was " << swAvailableLastMod; |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
601 syslog_info_printf ("Software has been updated to version: %s\n", |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
602 QApplication::applicationVersion().toUtf8().constData()); |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
603 QString fileName = mSettings.value("Software/available").toString(); |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
604 if (fileName.isEmpty()) { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
605 qDebug() << "Software marked as available but no filename set."; |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
606 } else { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
607 if (QFile::remove(fileName)) { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
608 qDebug() << "Removed: " << fileName; |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
609 } else { |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
610 qDebug() << "Failed to remove: " << fileName; |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
611 } |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
612 } |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
613 /* Clear out available data. */ |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
614 mSettings.remove("Software/available"); |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
615 mSettings.remove("Software/availableDate"); |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
616 } |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
617 } |
f1e461340ede
(issue44) Move check if the SW was updated into setLastModifiedSWDate
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1252
diff
changeset
|
618 |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
619 mSettings.beginGroup("Software"); |
1145
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
620 #ifdef IS_TAG_BUILD |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
621 /* We accept an invalid date to force installing any avialable update |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
622 * in release mode. Otherwise we default to current datetime when we |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
623 * did not find out version.*/ |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
624 mSettings.setValue("installedDate", date); |
1145
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
625 #else |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
626 mSettings.setValue("installedDate", date.isValid() ? date : QDateTime::currentDateTime()); |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
627 #endif |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
628 mSettings.setValue("installedVersion", QApplication::applicationVersion()); |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
629 mSettings.endGroup(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
630 checkUpdates(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
631 } |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
632 |
45
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
633 void MainWindow::downloaderError(const QString &message, SSLConnection::ErrorCode error) |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
634 { |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
635 syslog_error_printf ("Failed to check for updates: %s", message.toUtf8().constData()); |
1230
05b938021a24
(issue38) A bit debug output for LTE handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1227
diff
changeset
|
636 qDebug() << "Downloader error: " << error; |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
637 if (error == SSLConnection::InvalidCertificate) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
638 handleLTE(lteInvalidCertificate); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
639 } else { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
640 handleLTE(lteNoConnection); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
641 } |
1145
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
642 #ifdef IS_TAG_BUILD |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
643 /* During tag build it should never happen that an url checked is not available |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
644 * during development this is normal as each revision produces a new url. */ |
a41338b18273
(issue130) Do not show error when software was not found and handle it in setLastMod
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1144
diff
changeset
|
645 setState(TransferError); |
1061
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
646 if (!isVisible()) { |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
647 mCurMessage = message; |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
648 mTrayIcon->show(); |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
649 showMessage(); |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
650 } else { |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
651 showErrorMessage(tr("Failed to check for updates:") + "\n" + message); |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
652 } |
1127
1a5f9e260099
(issue130) Remove USE_REAL_RESOURCE option and implement behavior as descript in the issue
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1126
diff
changeset
|
653 #endif |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
654 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
655 |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
656 void MainWindow::createActions() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
657 { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
658 mCheckUpdates = new QAction(tr("Check for Updates"), this); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
659 connect(mCheckUpdates, SIGNAL(triggered()), this, SLOT(checkUpdates())); |
2 | 660 mQuitAction = new QAction(tr("Quit"), this); |
661 connect(mQuitAction, SIGNAL(triggered()), qApp, SLOT(quit())); | |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
662 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
663 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
664 void MainWindow::createTrayIcon() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
665 { |
11
7e2f14c7aba2
Split up downloader component and further implement it
Andre Heinecke <aheinecke@intevation.de>
parents:
10
diff
changeset
|
666 QIcon trayImg(":/img/tray_22.png"); |
970
c80777457133
(issue50) Add window icon and icon for 48x48px
Andre Heinecke <andre.heinecke@intevation.de>
parents:
966
diff
changeset
|
667 trayImg.addFile(":/img/tray_48.png", QSize(48,48)); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
668 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
669 mTrayMenu = new QMenu(this); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
670 mTrayMenu->addAction(mCheckUpdates); |
2 | 671 mTrayMenu->addAction(mQuitAction); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
672 |
871
4efd6378c001
(issue51) Add fallback in case systemtray is unavailable.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
857
diff
changeset
|
673 mTrayIcon = new TrayIcon(this); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
674 mTrayIcon->setContextMenu(mTrayMenu); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
675 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
676 mTrayIcon->setIcon(trayImg); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
677 setWindowIcon(trayImg); |
407
af53c40e74b1
Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents:
404
diff
changeset
|
678 mTrayIcon->setToolTip(tr("TrustBridge")); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
679 |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
680 connect(mTrayIcon, SIGNAL(messageClicked()), this, SLOT(messageClicked())); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
681 } |
155
c0fdb8d336cf
Added menubar/menu and method stubs to mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
82
diff
changeset
|
682 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
683 QWidget * MainWindow::createInfoWidget() |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
684 { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
685 QWidget *theWidget = new QWidget; |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
686 QVBoxLayout *infoPanelLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
687 QHBoxLayout *infoHeaderLayout = new QHBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
688 QVBoxLayout *infoHeaderTextLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
689 QVBoxLayout *infoCenterLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
690 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
691 QString infoVersion = tr("Version: "); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
692 infoVersion.append(QApplication::applicationVersion()); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
693 QLabel *appVersion = new QLabel(infoVersion); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
694 appVersion->setTextInteractionFlags( |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
695 Qt::TextSelectableByMouse | |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
696 Qt::TextSelectableByKeyboard); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
697 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
698 QFrame *infoHeaderSeparator = new QFrame(); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
699 infoHeaderSeparator->setFrameShape(QFrame::HLine); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
700 infoHeaderSeparator->setFrameShadow(QFrame::Sunken); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
701 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
702 infoHeaderTextLayout->addWidget(appVersion); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
703 infoHeaderLayout->addLayout(infoHeaderTextLayout); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
704 infoHeaderLayout->insertStretch(2, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
705 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
706 QLabel *textDesc = new QLabel(tr("TrustBridge is a root certificate" |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
707 " installer for Windows and GNU/Linux.<br/>") + |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
708 tr("The root certificate lists are managed" |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
709 " by the German <a href=\"https://www.bsi.bund.de\">" |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
710 "Federal Office for Information Security (BSI)</a>.<br/><br/>") + |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
711 tr("The software was developed by the companies" |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
712 " <a href=\"http://www.intevation.de\">Intevation GmbH</a> and " |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
713 " <a href=\"http://www.dn-systems.de\">DN-Systems GmbH</a>, <br>" |
1215
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
714 " contracted by the BSI.<br/><br/>") + |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
715 tr("TrustBridge is Free Software licensed" |
1215
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
716 " under GNU GPL v>=3.<br/>Copyright (C) 2014 by Bundesamt für Sicherheit" |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
717 " in der Informationstechnik<br/><br/>") + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
718 tr("TrustBridge uses several Free Software components with different licenses:") + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
719 "<ul><li>TrustBridge source code (GPL v>=2)" + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
720 "<li>Qt (LGPL v==2.1)" + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
721 "<li>PolarSSL (GPL v>=2)" + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
722 "<li>Oxygen-Icons (LGPL v==3)" + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
723 "<li>Mozilla NSS (Mozilla Public License v2)" + |
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
724 "<li>libcurl (The curl license)</ul>" + |
1275
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
725 tr("You will find the legally binding details in the 'licenses' directory " |
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
726 "where TrustBridge is installed<br/>" |
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
727 "or in the corresponding revision of the " |
1215
1171a4778562
(issue68) Added license note to about dialog of client and admin application.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1211
diff
changeset
|
728 "<a href=\"https://wald.intevation.org/hg/trustbridge/file/tip/licenses\">TrustBridge code repository</a>.")); |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
729 textDesc->setTextFormat(Qt::RichText); |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
730 textDesc->setTextInteractionFlags( |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
731 Qt::TextSelectableByMouse | |
844
fa68e5aeeaac
Make links clickable and also change the about info in mainwindow.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
842
diff
changeset
|
732 Qt::TextSelectableByKeyboard | |
fa68e5aeeaac
Make links clickable and also change the about info in mainwindow.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
842
diff
changeset
|
733 Qt::LinksAccessibleByMouse); |
fa68e5aeeaac
Make links clickable and also change the about info in mainwindow.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
842
diff
changeset
|
734 textDesc->setOpenExternalLinks(true); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
735 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
736 infoCenterLayout->addWidget(infoHeaderSeparator); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
737 infoCenterLayout->addWidget(textDesc); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
738 infoCenterLayout->insertSpacing(2, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
739 infoCenterLayout->insertSpacing(4, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
740 infoCenterLayout->insertSpacing(6, 10); |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
741 |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
742 QHBoxLayout *helpButtonLayout = new QHBoxLayout(); |
996
29783ef4da62
(UI) Added space in QPushButton on about page.
Emanuel Schuetze <emanuel@intevation.de>
parents:
995
diff
changeset
|
743 QPushButton *helpButton = new QPushButton(" " + tr("Show Help")); |
964
706405a2f3e8
(issue89) Add help icon to help button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
962
diff
changeset
|
744 helpButton->setIcon(QIcon(":/img/show-help_16.png")); |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
745 connect(helpButton, SIGNAL(clicked()), this, SLOT(showHelp())); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
746 helpButtonLayout->addWidget(helpButton); |
956
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
747 #ifdef USE_CURL |
996
29783ef4da62
(UI) Added space in QPushButton on about page.
Emanuel Schuetze <emanuel@intevation.de>
parents:
995
diff
changeset
|
748 QPushButton *proxySettingsButton = new QPushButton(" " + tr("Proxy settings")); |
956
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
749 proxySettingsButton->setIcon(QIcon(":/img/preferences-network_16.png")); |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
750 connect(proxySettingsButton, SIGNAL(clicked()), this, SLOT(showProxySettings())); |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
751 helpButtonLayout->addWidget(proxySettingsButton); |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
752 #endif |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
753 helpButtonLayout->addStretch(); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
754 infoCenterLayout->addLayout(helpButtonLayout); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
755 |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
756 infoCenterLayout->insertStretch(8, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
757 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
758 infoPanelLayout->addLayout(infoHeaderLayout); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
759 infoPanelLayout->addLayout(infoCenterLayout); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
760 theWidget->setLayout(infoPanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
761 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
762 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
763 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
764 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
765 QWidget * MainWindow::createUpdatesWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
766 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
767 QWidget * theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
768 QVBoxLayout *updatesMainLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
769 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
770 /* The header */ |
1096
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
771 QVBoxLayout *updatesHeaderLayout = new QVBoxLayout; |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
772 |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
773 QGridLayout *detailsLayout = new QGridLayout; |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
774 |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
775 /* Header 1: Action buttons and summary*/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
776 mUpdatesHeader = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
777 new QLabel("<h2>" + tr("Certificates unchanged")+ "</h2>"); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
778 updatesHeaderLayout->addWidget(mUpdatesHeader); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
779 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
780 QHBoxLayout *updatesHeaderActionButtonLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
781 mQuitButton = new QPushButton(" " + tr("Quit without saving")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
782 mQuitButton->setIcon(QIcon(":/img/application-exit.png")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
783 mQuitButton->setFixedHeight(30); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
784 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
785 mInstallButton = new QPushButton(" " + tr("Install certificates again")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
786 mInstallButton->setFixedHeight(30); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
787 #ifdef Q_OS_WIN |
1003
db7e7156c824
(issue66) Only depend on is_system_install on windows to decide privilege raise
Andre Heinecke <andre.heinecke@intevation.de>
parents:
997
diff
changeset
|
788 if (is_system_install()) { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
789 QIcon uacShield = QApplication::style()->standardIcon(QStyle::SP_VistaShield); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
790 mInstallButton->setIcon(uacShield); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
791 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
792 #else |
1211
b64f847bde09
(issue121) icon, new version for the do-changes button.
Bernhard Reiter <bernhard@intevation.de>
parents:
1209
diff
changeset
|
793 mInstallButton->setIcon(QIcon(":/img/do-changes-16.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
794 #endif |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
795 connect(mQuitButton, SIGNAL(clicked()), this, SLOT(closeApp())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
796 connect(mInstallButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
797 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
798 updatesHeaderActionButtonLayout->addWidget(mInstallButton); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
799 updatesHeaderActionButtonLayout->addWidget(mQuitButton); |
1096
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
800 updatesHeaderActionButtonLayout->addStretch(-1); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
801 |
1096
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
802 updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout); |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
803 updatesHeaderLayout->addSpacing(20); |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
804 |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
805 /* The splitter line */ |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
806 QFrame *line = new QFrame(); |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
807 line->setFrameShape(QFrame::HLine); |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
808 line->setFrameShadow(QFrame::Sunken); |
10f0efd197c7
(issue111) Rework header to be simpler and left bound.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1095
diff
changeset
|
809 updatesHeaderLayout->addWidget(line); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
810 |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
811 updatesMainLayout->addLayout(updatesHeaderLayout); |
1103
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
812 |
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
813 /* Central Header Details and update button. Part of the scroll area */ |
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
814 QScrollArea *centralScrollArea = new QScrollArea; |
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
815 QVBoxLayout *updatesCenterLayout = new QVBoxLayout; |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
816 mUpdatesDetailsHeader = new QLabel(QString()); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
817 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
818 QHBoxLayout *updateDateAndSearchButton = new QHBoxLayout; |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
819 mCertListVersion = |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
820 new QLabel(QString()); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
821 mCertListVersionContents = new QLabel(QString()); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
822 const QDateTime lastCheck = mSettings.value("lastUpdateCheck").toDateTime().toLocalTime(); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
823 mLastUpdateCheck = new QLabel(tr("Last update check:")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
824 if (lastCheck.isValid()) { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
825 const QString lastUpdateCheck = QLocale::system().toString(lastCheck, DATETIME_FORMAT); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
826 mLastUpdateCheckContents = new QLabel(lastUpdateCheck); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
827 } else { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
828 mLastUpdateCheckContents = new QLabel(tr("No connection with the updateserver.")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
829 } |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
830 QPushButton *searchUpdates = new QPushButton(" " + tr("Update")); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
831 searchUpdates->setFixedHeight(22); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
832 searchUpdates->setToolTip(tr("Check for Updates")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
833 searchUpdates->setStyleSheet("font-size: 10px;"); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
834 searchUpdates->setIcon(QIcon(":/img/update-list.png")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
835 connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates())); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
836 updateDateAndSearchButton->addWidget(mLastUpdateCheckContents); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
837 updateDateAndSearchButton->addWidget(searchUpdates); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
838 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
839 mUpdatesTip = |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
840 new QLabel(QString()); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
841 mUpdatesTip->setWordWrap(true); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
842 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
843 // addWidget(*Widget, row, column, rowspan, colspan) |
1103
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
844 updatesCenterLayout->addWidget(mUpdatesDetailsHeader); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
845 detailsLayout->addWidget(mLastUpdateCheck, 0, 0, 1, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
846 detailsLayout->addLayout(updateDateAndSearchButton, 0, 1, 1, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
847 detailsLayout->addWidget(mCertListVersion, 1, 0, 1, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
848 detailsLayout->addWidget(mCertListVersionContents, 1, 1, 1, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
849 detailsLayout->addItem(new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum), 2, 2, 1, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
850 detailsLayout->setColumnStretch(2, 1); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
851 |
1103
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
852 updatesCenterLayout->addLayout(detailsLayout); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
853 |
1103
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
854 updatesCenterLayout->addItem(new QSpacerItem(100, 10)); |
c4e3498e716f
(issue111) Move detailed header into the scrollarea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1102
diff
changeset
|
855 updatesCenterLayout->addWidget(mUpdatesTip); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
856 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
857 /* The central panels. */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
858 QHBoxLayout *updatesNewLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
859 QHBoxLayout *updatesRemoveLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
860 QHBoxLayout *updatesManualLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
861 mUpdatesNewCertificates = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
862 new QLabel("<h3>" + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
863 tr("Install new trusted certificates (%1/%2)").arg(0).arg(0) + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
864 "</h3>"); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
865 mUpdatesDetailsNew = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
866 mUpdatesDetailsNew->setText(" " + tr("Details")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
867 mUpdatesDetailsNew->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
868 mUpdatesDetailsNew->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
869 mUpdatesDetailsNew->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
870 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
871 connect(mUpdatesDetailsNew, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
872 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
873 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
874 SLOT(toggleUpdatesNew())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
875 updatesNewLayout->addWidget(mUpdatesNewCertificates); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
876 updatesNewLayout->addWidget(mUpdatesDetailsNew); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
877 updatesNewLayout->addStretch(1); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
878 mUpdatesNew = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
879 connect(mUpdatesNew, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
880 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
881 mUpdatesNew->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
882 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
883 mUpdatesRemoveCertificates = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
884 new QLabel("<h3>" + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
885 tr("Remove revoked certificates (%1/%2)").arg(0).arg(0) + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
886 "</h3>"); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
887 mUpdatesDetailsRemove = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
888 mUpdatesDetailsRemove->setText(" " + tr("Details")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
889 mUpdatesDetailsRemove->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
890 mUpdatesDetailsRemove->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
891 mUpdatesDetailsRemove->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
892 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
893 connect(mUpdatesDetailsRemove, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
894 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
895 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
896 SLOT(toggleUpdatesRemove())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
897 updatesRemoveLayout->addWidget(mUpdatesRemoveCertificates); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
898 updatesRemoveLayout->addWidget(mUpdatesDetailsRemove); |
746
d73f4e58d117
Add strecht also between remove button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
743
diff
changeset
|
899 updatesRemoveLayout->addStretch(1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
900 mUpdatesRemove = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
901 connect(mUpdatesRemove, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
902 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
903 mUpdatesRemove->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
904 |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
905 mUpdatesManualCertificates = new QLabel(QString()); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
906 mUpdatesDetailsManual = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
907 mUpdatesDetailsManual->setText(" " + tr("Details")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
908 mUpdatesDetailsManual->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
909 mUpdatesDetailsManual->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
910 mUpdatesDetailsManual->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
911 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
912 connect(mUpdatesDetailsManual, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
913 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
914 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
915 SLOT(toggleUpdatesManual())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
916 mUpdatesDetailsManual->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
917 updatesManualLayout->addWidget(mUpdatesManualCertificates); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
918 updatesManualLayout->addWidget(mUpdatesDetailsManual); |
747
b959304d6ecf
Also space away the manual details button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
746
diff
changeset
|
919 updatesManualLayout->addStretch(1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
920 mUpdatesManual = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
921 mUpdatesManual->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
922 connect(mUpdatesManual, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
923 this, SLOT(removeFromManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
924 connect(mUpdatesManual, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
925 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
926 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
927 updatesNewLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
928 updatesRemoveLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
929 updatesManualLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
930 updatesCenterLayout->addLayout(updatesNewLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
931 updatesCenterLayout->addWidget(mUpdatesNew); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
932 updatesCenterLayout->addLayout(updatesRemoveLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
933 updatesCenterLayout->addWidget(mUpdatesRemove); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
934 updatesCenterLayout->addSpacing(10); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
935 updatesCenterLayout->addLayout(updatesManualLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
936 updatesCenterLayout->addWidget(mUpdatesManual); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
937 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
938 QWidget *dummyWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
939 dummyWidget->setLayout(updatesCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
940 centralScrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
941 centralScrollArea->setWidget(dummyWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
942 centralScrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
943 centralScrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
944 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
945 updatesMainLayout->addWidget(centralScrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
946 updatesCenterLayout->addSpacerItem(new QSpacerItem(0, 0, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
947 QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
948 theWidget->setLayout(updatesMainLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
949 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
950 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
951 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
952 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
953 QWidget *MainWindow::createInstallWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
954 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
955 QWidget *theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
956 QScrollArea *scrollArea = new QScrollArea; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
957 QVBoxLayout *installPanelLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
958 QVBoxLayout *installHeaderLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
959 QVBoxLayout *installCenterLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
960 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
961 QLabel *installHeaderLabel = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
962 new QLabel("<h2>" + tr("Trusted certificates") + "</h2>"); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
963 QLabel *installHeaderText = new QLabel(tr("The following list of trusted root" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
964 " certificates is managed by the BSI. The BSI validates independently the" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
965 " authenticity, security and actuality of these certificates.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
966 installHeaderText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
967 installHeaderLayout->addWidget(installHeaderLabel); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
968 installHeaderLayout->addWidget(installHeaderText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
969 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
970 QLabel *installCenterText = new QLabel(tr("Please choose the certificates" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
971 " you want to trust or untrust. TrustBridge will install these certificates for your" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
972 " secure communication for email and internet.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
973 installCenterText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
974 installCenterLayout->addWidget(installCenterText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
975 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
976 installPanelLayout->addLayout(installHeaderLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
977 installPanelLayout->addLayout(installCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
978 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
979 mInstallList = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
980 connect(mInstallList, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
981 this, SLOT(toggleInManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
982 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
983 scrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
984 scrollArea->setWidget(mInstallList); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
985 scrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
986 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
987 installPanelLayout->addWidget(scrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
988 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
989 theWidget->setLayout(installPanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
990 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
991 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
992 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
993 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
994 QWidget *MainWindow::createRemoveWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
995 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
996 QWidget * theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
997 QScrollArea *scrollArea = new QScrollArea; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
998 QVBoxLayout *removePanelLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
999 QVBoxLayout *removeHeaderLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1000 QVBoxLayout *removeCenterLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1001 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1002 QLabel *removeHeaderLabel = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1003 new QLabel("<h2>" + tr("Revoked certificates") + "</h2>"); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1004 QLabel *removeHeaderText = new QLabel(tr("Certificates can be corrupted" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1005 " or stolen and misused in many ways. Therefore the BSI recommends" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1006 " to remove all revoked certificates from your system.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1007 removeHeaderText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1008 removeHeaderLayout->addWidget(removeHeaderLabel); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1009 removeHeaderLayout->addWidget(removeHeaderText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1010 |
805 | 1011 QLabel *removeCenterText = new QLabel(tr("The following unsecure certificates were" |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1012 " revoked by the BSI. Already uninstalled certificates cannot be reinstalled." |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1013 " It is recommended that you select all certificates to uninstall if you still" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1014 " have revoked certificates installed.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1015 removeCenterText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1016 removeCenterLayout->addWidget(removeCenterText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1017 mRemoveList = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1018 connect(mRemoveList, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1019 this, SLOT(toggleInManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1020 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1021 removePanelLayout->addLayout(removeHeaderLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1022 removePanelLayout->addLayout(removeCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1023 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1024 scrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1025 scrollArea->setWidget(mRemoveList); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1026 scrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1027 removePanelLayout->addWidget(scrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1028 theWidget->setLayout(removePanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1029 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1030 return theWidget; |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
1031 } |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
1032 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
1033 void MainWindow::setupGUI() |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1034 { |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1035 // Create a central widget containing the main layout. |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1036 QWidget *base = new QWidget; |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1037 |
250
1e112cf41e92
Updated the mainwindow layout.
Raimund Renkert <rrenkert@intevation.de>
parents:
249
diff
changeset
|
1038 // Layouts and Container |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1039 QVBoxLayout *mainLayout = new QVBoxLayout; |
205
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
1040 QHBoxLayout *headerLayout = new QHBoxLayout; |
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
1041 QVBoxLayout *headerTextLayout = new QVBoxLayout; |
1094
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1042 QHBoxLayout *headerSubtitleLayout = new QHBoxLayout; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1043 QHBoxLayout *centerLayout = new QHBoxLayout; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1044 QVBoxLayout *buttonBarLayout = new QVBoxLayout; |
271
1ae15ea73850
Some GUI desing and layout changes.
Raimund Renkert <rrenkert@intevation.de>
parents:
267
diff
changeset
|
1045 QHBoxLayout *bottomLayout = new QHBoxLayout; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1046 QHBoxLayout *containerLayout = new QHBoxLayout; |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1047 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1048 // The header (icon, about text) |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1049 QImage *logoImage = new QImage(":/img/logo.png"); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1050 QLabel *logo = new QLabel; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1051 logo->setBackgroundRole(QPalette::Base); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1052 logo->setPixmap(QPixmap::fromImage(*logoImage)); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1053 QLabel *title = new QLabel("<h1>" + QString::fromLatin1(APPNAME) + "</h1>"); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1054 QLabel *subTitle = new QLabel(tr("Trust in your digital communication")); |
1094
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1055 QLabel *swVersion = new QLabel(QString::fromLatin1("<i>") + |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1056 tr("Version") + " " + QApplication::applicationVersion() + |
1095
a0fb21625cf3
(issue111) Avoid clipping the last charcter in italic font.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1094
diff
changeset
|
1057 QString::fromLatin1(" </i>")); |
1094
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1058 |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1059 swVersion->setTextInteractionFlags(Qt::TextSelectableByKeyboard | Qt::TextSelectableByMouse); |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1060 swVersion->setTextFormat(Qt::RichText); |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1061 |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1062 headerSubtitleLayout->addWidget(subTitle); |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1063 headerSubtitleLayout->addStretch(-1); |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1064 headerSubtitleLayout->addWidget(swVersion); |
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1065 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1066 headerTextLayout->addWidget(title); |
1094
03a1f3761f45
(issue111) Move Version label into header.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1093
diff
changeset
|
1067 headerTextLayout->addLayout(headerSubtitleLayout); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1068 headerLayout->addWidget(logo); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1069 headerLayout->addLayout(headerTextLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1070 headerLayout->setStretch(0, 0); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1071 headerLayout->setStretch(1, 10); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1072 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1073 /*********************************** |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1074 * The Buttonbar on the left side. |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1075 ***********************************/ |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1076 mButtonGroup = new QButtonGroup; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1077 |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1078 TextOverlayButton *updatesButton = new TextOverlayButton; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1079 updatesButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
932
57371f2e8dae
(issue72) Set background image as pixmap in textoverlayicon
Andre Heinecke <andre.heinecke@intevation.de>
parents:
926
diff
changeset
|
1080 updatesButton->setBackgroundIcon(":/img/red-circle.png"); |
1202
407f2c1286ae
(issue121) better Icon for the pending changes.
Bernhard Reiter <bernhard@intevation.de>
parents:
1201
diff
changeset
|
1081 updatesButton->setIcon(QIcon(":/img/pending-changes-overview-48.png")); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1082 updatesButton->setIconSize(QSize(48, 48)); |
1099
3d4a81eff3fd
(issue111) Rename updates button to pending changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1098
diff
changeset
|
1083 updatesButton->setText(tr("Pending\nchanges")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
1084 updatesButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1085 updatesButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1086 updatesButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1087 updatesButton->setChecked(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1088 |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1089 connect(this, SIGNAL(changesChanged(const QString&)), |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1090 updatesButton, SLOT(setOverlay(const QString&))); |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1091 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1092 QToolButton *allInstallButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1093 allInstallButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1094 allInstallButton->setIcon(QIcon(":/img/document-encrypt.png")); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1095 allInstallButton->setIconSize(QSize(48, 48)); |
659
c7405d526ead
(UI) Updated English strings.
Emanuel Schuetze <emanuel@intevation.de>
parents:
657
diff
changeset
|
1096 allInstallButton->setText(tr("Trusted\ncertificates")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
1097 allInstallButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1098 allInstallButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1099 allInstallButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1100 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1101 QToolButton *allRemoveButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1102 allRemoveButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
673
e8bc1215904e
(UI) Changed some icons.
Emanuel Schuetze <emanuel@intevation.de>
parents:
669
diff
changeset
|
1103 allRemoveButton->setIcon(QIcon(":/img/dialog-warning.png")); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1104 allRemoveButton->setIconSize(QSize(48, 48)); |
661
320a64d58e62
(UI) Updated English strings. Removed Issuer fields.
Emanuel Schuetze <emanuel@intevation.de>
parents:
659
diff
changeset
|
1105 allRemoveButton->setText(tr("Revoked\ncertificates")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
1106 allRemoveButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1107 allRemoveButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1108 allRemoveButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1109 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1110 QToolButton *infoButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1111 infoButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1112 infoButton->setIcon(QIcon(":/img/dialog-information.png")); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1113 infoButton->setIconSize(QSize(48, 48)); |
659
c7405d526ead
(UI) Updated English strings.
Emanuel Schuetze <emanuel@intevation.de>
parents:
657
diff
changeset
|
1114 infoButton->setText(tr("Information\nand help")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
1115 infoButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
1116 infoButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1117 infoButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1118 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1119 mButtonGroup->addButton(updatesButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1120 mButtonGroup->addButton(allInstallButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1121 mButtonGroup->addButton(allRemoveButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1122 mButtonGroup->addButton(infoButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1123 mButtonGroup->setId(updatesButton, 0); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1124 mButtonGroup->setId(allInstallButton, 1); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1125 mButtonGroup->setId(allRemoveButton, 2); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1126 mButtonGroup->setId(infoButton, 3); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1127 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1128 connect(mButtonGroup, SIGNAL(buttonClicked(int)), |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1129 this, SLOT(togglePages(int))); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1130 buttonBarLayout->addWidget(updatesButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1131 buttonBarLayout->addWidget(allInstallButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1132 buttonBarLayout->addWidget(allRemoveButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1133 buttonBarLayout->insertStretch(3, 10); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1134 buttonBarLayout->addWidget(infoButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1135 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1136 /* The main pages.*/ |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1137 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1138 /* The updates page. */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1139 mUpdatesWidget = createUpdatesWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1140 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1141 /* Install (trusted certs) Page */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1142 mInstallWidget = createInstallWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1143 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1144 /********************************** |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1145 * Page for certificates to be removed. |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1146 **********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1147 mRemoveWidget = createRemoveWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1148 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1149 /********************************** |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1150 * The info page. |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1151 **********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1152 mInfoWidget = createInfoWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1153 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1154 /******************************** |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1155 * The main layout for pages. |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
1156 ********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1157 mInstallWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1158 mRemoveWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1159 mInfoWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1160 containerLayout->addWidget(mUpdatesWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1161 containerLayout->addWidget(mInstallWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1162 containerLayout->addWidget(mRemoveWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1163 containerLayout->addWidget(mInfoWidget); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1164 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1165 centerLayout->addLayout(buttonBarLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1166 centerLayout->addLayout(containerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1167 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1168 mainLayout->addLayout(headerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1169 mainLayout->addLayout(centerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1170 mainLayout->addLayout(bottomLayout); |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1171 base->setLayout(mainLayout); |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1172 setCentralWidget(base); |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1173 } |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
1174 |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1175 void MainWindow::listChanged(int selected) |
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1176 { |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1177 Q_UNUSED (selected); |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1178 setChangeCount(mUpdatesRemove->selectedCertCount() + |
1107
51d3b361f17a
Revert commit 1102
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
1179 mUpdatesNew->selectedCertCount() + mUpdatesManual->certificates().size()); |
696
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
1180 |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1181 /* Show a different tip in case of manual changes, updates aviailable, updates and manual |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1182 * changes available */ |
1107
51d3b361f17a
Revert commit 1102
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
1183 if (changeCount() && !mUpdatesManual->certificates().size()) { |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1184 mUpdatesTip->setText( |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1185 tr("You should apply the following, recommended changes to your certificate stores:")); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1186 } else { |
1236
33a17569812a
(issue111) Remove unecessary update tips
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
1187 mUpdatesTip->setText(""); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1188 } |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1189 |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1190 if (!changeCount()) { |
693
0fc1a20adaff
(Issue 27) Change Quit button text depending on changes or no changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
692
diff
changeset
|
1191 /* No changes */ |
702
9dea3d895f53
(Issue22) Add a space between button icon and text.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
696
diff
changeset
|
1192 mQuitButton->setText(" " + tr("Quit")); |
696
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
1193 mUpdatesHeader->setText("<h2>" + tr("Certificates unchanged") + |
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
1194 "</h2>"); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1195 mInstallButton->setText(" " + tr("Install certificates again")); |
693
0fc1a20adaff
(Issue 27) Change Quit button text depending on changes or no changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
692
diff
changeset
|
1196 } else { |
702
9dea3d895f53
(Issue22) Add a space between button icon and text.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
696
diff
changeset
|
1197 mQuitButton->setText(" " + tr("Quit without saving")); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1198 mUpdatesHeader->setText("<h2>" + tr("Pending changes (%1)") |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1199 .arg(changeCount()) + |
696
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
1200 "</h2>"); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
1201 mInstallButton->setText(" " + tr("Apply changes")); |
693
0fc1a20adaff
(Issue 27) Change Quit button text depending on changes or no changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
692
diff
changeset
|
1202 } |
0fc1a20adaff
(Issue 27) Change Quit button text depending on changes or no changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
692
diff
changeset
|
1203 |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1204 if (mUpdatesManual->certificates().size()) { |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1205 mUpdatesDetailsManual->show(); |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1206 if (mManualDetailsShown) { |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1207 mUpdatesManual->show(); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1208 deactivateDetailsButton(mUpdatesDetailsManual); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1209 } else { |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1210 activateDetailsButton(mUpdatesDetailsManual); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1211 } |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1212 } else { |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1213 mUpdatesDetailsManual->hide(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1214 mUpdatesManual->hide(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1215 } |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1216 mUpdatesManualCertificates->setText("<h2>" + |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1217 tr("Manual changes (%1)").arg(mUpdatesManual->certificates().size()) + |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1218 "</h2>"); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1219 |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1220 if (mUpdatesNew->certificates().size()) { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1221 mUpdatesNewCertificates->setText("<h3>" + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1222 tr("Install new trusted certificates (%1/%2)") |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1223 .arg(mUpdatesNew->selectedCertCount()) |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1224 .arg(mUpdatesNew->certificates().size()) + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1225 "</h3>"); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1226 mUpdatesDetailsNew->show(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1227 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_16px.png")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1228 mUpdatesDetailsNew->setToolTip(tr("Show details")); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1229 mUpdatesNewCertificates->show(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1230 } else { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1231 mUpdatesDetailsNew->hide(); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1232 mUpdatesNew->hide(); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1233 mUpdatesNewCertificates->hide(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1234 } |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1235 |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1236 if (mUpdatesRemove->certificates().size()) { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1237 mUpdatesRemoveCertificates->setText("<h3>" + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1238 tr("Remove revoked certificates (%1/%2)") |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1239 .arg(mUpdatesRemove->selectedCertCount()) |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1240 .arg(mUpdatesRemove->certificates().size()) + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1241 "</h3>"); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1242 mUpdatesRemoveCertificates->show(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1243 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_16px.png")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1244 mUpdatesDetailsRemove->setToolTip(tr("Show details")); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1245 mUpdatesDetailsRemove->show(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1246 } else { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1247 mUpdatesRemoveCertificates->hide(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1248 mUpdatesDetailsRemove->hide(); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
1249 mUpdatesRemove->hide(); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
1250 } |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1251 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1252 /* Update the details header */ |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1253 if (mUpdatesRemove->certificates().size() || |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1254 mUpdatesNew->certificates().size()) { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1255 mUpdatesDetailsHeader->setText("<h2>" + |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1256 tr("New, recommended changes (%1/%2)") |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1257 .arg(mUpdatesRemove->selectedCertCount() + |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1258 mUpdatesNew->selectedCertCount()) |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1259 .arg(mUpdatesRemove->certificates().size() + |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1260 mUpdatesNew->certificates().size()) + |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1261 "</h2>"); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1262 } else { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1263 mUpdatesDetailsHeader->setText(QString::fromLatin1("<h2>") + |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1264 tr("No new recommendations") + QString::fromLatin1("</h2>")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1265 } |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1266 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1267 if (mListToInstall.isValid()) { |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1268 mCertListVersion->setText(tr("Certificate list from:")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1269 mCertListVersionContents->setText(QLocale::system().toString( |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1270 mListToInstall.date().toLocalTime(), DATETIME_FORMAT)); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1271 } else { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1272 if (mInstalledList.isValid()) { |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1273 mCertListVersion->setText(tr("Currently installed certificate list:")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1274 mCertListVersionContents->setText(QLocale::system().toString( |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1275 mInstalledList.date().toLocalTime(), DATETIME_FORMAT)); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1276 } else { |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1277 mCertListVersion->setText(tr("No certificate list installed.")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1278 mCertListVersionContents->setText(""); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1279 } |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1280 } |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1281 } |
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1282 |
189
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
1283 void MainWindow::loadCertificateList() |
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
1284 { |
1162
2a1206932f53
(issue107) Comment all TODO's and FIXME's with issues as documented in issue107
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1155
diff
changeset
|
1285 /* TODO (issue134): if nothing is available (neither old nor new) add some progress |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1286 * indication */ |
1233
7da9ec20eae4
(issue148) Disable UI Updates while loading the list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1232
diff
changeset
|
1287 setUpdatesEnabled(false); |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1288 mInstallList->clear(); |
684
69def231f5ac
(issue28) clear manual updates after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
673
diff
changeset
|
1289 mRemoveList->clear(); |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1290 mUpdatesNew->clear(); |
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1291 mUpdatesRemove->clear(); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1292 QList<Certificate> newInstallCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1293 QList<Certificate> newRemoveCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1294 QList<Certificate> oldInstallCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1295 QList<Certificate> oldRemoveCerts; |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1296 |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1297 if (mListToInstall.getCertificates().isEmpty()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1298 // No new list available, add old certificates. |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1299 foreach (const Certificate &cert, mInstalledList.getCertificates()) { |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1300 bool state = !mPreviouslyUnselected.contains(cert.base64Line()); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1301 if (cert.isInstallCert()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1302 oldInstallCerts.append(cert); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1303 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1304 QIcon btnIcon; |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1305 if (!state) { |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1306 btnIcon.addFile(":/img/cert-to-be-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1307 btnIcon.addFile(":/img/cert-not-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1308 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be installed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1309 actionBtn->setProperty("ToolTip_On", tr("Certifcate is not installed.")); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1310 } else { |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1311 actionBtn->setProperty("ToolTip_Off", tr("Certificate is installed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1312 actionBtn->setProperty("ToolTip_On", tr("Certificate will be removed.")); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1313 btnIcon.addFile(":/img/cert-is-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1314 btnIcon.addFile(":/img/cert-to-be-removed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1315 } |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1316 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1317 mInstallList->addCertificate(cert, state, actionBtn); |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1318 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1319 else { |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1320 oldRemoveCerts.append(cert); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1321 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1322 QIcon btnIcon; |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1323 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1324 actionBtn->setProperty("ToolTip_On", tr("Certificate has not been removed.")); |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1325 btnIcon.addFile(":/img/cert-to-be-removed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1326 btnIcon.addFile(":/img/cert-is-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1327 btnIcon.addFile(":/img/cert-not-installed-good-48.png", QSize(48, 48), QIcon::Disabled, QIcon::Off); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1328 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1329 if (state) { |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1330 actionBtn->setEnabled(false); |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1331 actionBtn->setToolTip(tr("Certificate has been removed.")); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1332 } |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1333 mRemoveList->addCertificate(cert, state, actionBtn); |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1334 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1335 } |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1336 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1337 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1338 // Sort and filter both lists. |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1339 foreach (const Certificate &cert, mListToInstall.getCertificates()) { |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1340 bool state = !mPreviouslyUnselected.contains(cert.base64Line()); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1341 if (cert.isInstallCert()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1342 // Certificate with status "install". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1343 if (mInstalledList.getCertificates().contains(cert)) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1344 // Was in the old list. |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1345 oldInstallCerts.append(cert); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1346 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1347 QIcon btnIcon; |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1348 actionBtn->setProperty("ToolTip_Off", tr("Certificate is installed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1349 actionBtn->setProperty("ToolTip_On", tr("Certifcate is not installed.")); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1350 btnIcon.addFile(":/img/cert-is-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1351 btnIcon.addFile(":/img/cert-not-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1352 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1353 mInstallList->addCertificate(cert, state, actionBtn); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1354 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1355 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1356 // Is a brand new certificate |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1357 newInstallCerts.append(cert); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1358 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1359 QIcon btnIcon; |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1360 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be installed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1361 actionBtn->setProperty("ToolTip_On", tr("Certificate will not be installed.")); |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1362 btnIcon.addFile(":/img/cert-to-be-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1363 btnIcon.addFile(":/img/cert-not-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1364 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1365 mUpdatesNew->addCertificate(cert, state, actionBtn); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1366 } |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1367 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1368 else { |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1369 // Certificate with status "remove". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1370 if (mInstalledList.getCertificates().contains(cert)) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1371 // Was in the old list. |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1372 oldRemoveCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1373 // Is removed, so set editable to false. |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1374 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1375 QIcon btnIcon; |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1376 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1377 actionBtn->setProperty("ToolTip_On", tr("Certificate has not been removed.")); |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1378 btnIcon.addFile(":/img/cert-to-be-removed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1379 btnIcon.addFile(":/img/cert-is-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1380 btnIcon.addFile(":/img/cert-not-installed-good-48.png", QSize(48, 48), QIcon::Disabled, QIcon::Off); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1381 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1382 if (state) { |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1383 actionBtn->setEnabled(false); |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1384 actionBtn->setToolTip(tr("Certificate has been removed.")); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1385 } |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1386 mRemoveList->addCertificate(cert, state, actionBtn); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1387 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1388 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1389 // Was in the old list with status "install" and now has the |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1390 // status "remove". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1391 newRemoveCerts.append(cert); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1233
diff
changeset
|
1392 CheckLessToolBtn* actionBtn = new CheckLessToolBtn(); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1393 QIcon btnIcon; |
1110
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1394 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); |
b6cb4fd7ee20
(issue115) Move tooltips into body to make qt tr work
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
1395 actionBtn->setProperty("ToolTip_On", tr("Certificate will not be removed.")); |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1396 btnIcon.addFile(":/img/cert-to-be-removed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1148
6ec64a30fd5f
(issue115) Use updated icons.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1146
diff
changeset
|
1397 btnIcon.addFile(":/img/cert-is-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1398 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1399 mUpdatesRemove->addCertificate(cert, state, actionBtn); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1400 } |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1401 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1402 } |
691
315103410002
(Issue 32) Move updates header text generation out of update avialable block
Andre Heinecke <andre.heinecke@intevation.de>
parents:
690
diff
changeset
|
1403 } |
692
3791a277f00b
Remove code duplication and calculate headers only in listchanged
Andre Heinecke <andre.heinecke@intevation.de>
parents:
691
diff
changeset
|
1404 |
3791a277f00b
Remove code duplication and calculate headers only in listchanged
Andre Heinecke <andre.heinecke@intevation.de>
parents:
691
diff
changeset
|
1405 listChanged(0); |
1233
7da9ec20eae4
(issue148) Disable UI Updates while loading the list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1232
diff
changeset
|
1406 setUpdatesEnabled(true); |
271
1ae15ea73850
Some GUI desing and layout changes.
Raimund Renkert <rrenkert@intevation.de>
parents:
267
diff
changeset
|
1407 } |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1408 |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1409 void MainWindow::installerError(const QString& errMsg) { |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1410 QMessageBox::warning(this, tr("Error executing update"), errMsg); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1411 } |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1412 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1413 void MainWindow::installerSuccess() { |
997
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1414 if (mCurState == NewListAvailable ) { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1415 mCurState = NothingChanged; |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1416 mCurMessage = QString(); |
997
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1417 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1418 |
997
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1419 QString listFileName = mSettings.value("List/available").toString(); |
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1420 QDateTime listFileDate = mSettings.value("List/availableDate").toDateTime(); |
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1421 if (!listFileName.isEmpty() && listFileDate.isValid()) { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1422 mSettings.remove("List/available"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1423 mSettings.remove("List/availableDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1424 |
857
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1425 /* Rename the installed list to list-installed.txt so that external |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1426 * programs (like the uninstaller can easily recognize it). */ |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1427 QString dataLoc = |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1428 QStandardPaths::writableLocation(QStandardPaths::DataLocation); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1429 QDir dataDir(dataLoc); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1430 if (!dataDir.exists()) { |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1431 /* Should not happen */ |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1432 qWarning() << "Data dir removed."; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1433 return; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1434 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1435 |
857
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1436 QFileInfo oldList (dataDir.absoluteFilePath("list-installed.txt")); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1437 if (oldList.exists()) { |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1438 qDebug() << "Removing old list: " << oldList.filePath(); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1439 if (!QFile::remove(oldList.filePath())) { |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1440 qWarning() << "Removal of old list failed."; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1441 return; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1442 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1443 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1444 QFile newList(listFileName); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1445 if (!newList.rename(oldList.filePath())) { |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1446 qWarning() << "Failed to rename new list."; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1447 return; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1448 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1449 |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1450 mSettings.setValue("List/installed", oldList.filePath()); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1451 mSettings.setValue("List/installedDate", listFileDate); |
857
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1452 mInstalledList = CertificateList(oldList.filePath().toUtf8().constData()); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1453 if (!mInstalledList.isValid()) { |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1454 /* Something went wrong. Go back to square one. */ |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1455 qWarning () << "List corrupted after installation"; |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1456 mInstalledList = CertificateList(); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1457 QFile::remove(oldList.filePath()); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1458 mSettings.remove("List/installed"); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1459 mSettings.remove("List/installedDate"); |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1460 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1461 } |
997
405c97ca4ab0
Save installation success independet of state.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
996
diff
changeset
|
1462 mListToInstall = CertificateList(); |
684
69def231f5ac
(issue28) clear manual updates after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
673
diff
changeset
|
1463 mUpdatesManual->clear(); |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1464 loadCertificateList(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1465 } |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1466 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1467 void MainWindow::installCerts() { |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1468 QStringList choices; |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1469 QStringList unselected; |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1470 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1471 choices << mUpdatesNew->selectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1472 choices << mUpdatesRemove->selectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1473 |
1308
fce8c122cbc4
(issue165) Invert manual states. Manual changes are inverted as the action should be the opposite of
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1292
diff
changeset
|
1474 choices << mUpdatesManual->unselectedCertificates(); |
669
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1475 |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1476 /* Also include the old certificates */ |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1477 choices << mInstallList->selectedCertificates(); |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1478 choices << mRemoveList->selectedCertificates(); |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1479 |
1308
fce8c122cbc4
(issue165) Invert manual states. Manual changes are inverted as the action should be the opposite of
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1292
diff
changeset
|
1480 QStringList selectedManuals = mUpdatesManual->selectedCertificates(); |
fce8c122cbc4
(issue165) Invert manual states. Manual changes are inverted as the action should be the opposite of
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1292
diff
changeset
|
1481 for(int i = 0; i < selectedManuals.size(); i++) { |
fce8c122cbc4
(issue165) Invert manual states. Manual changes are inverted as the action should be the opposite of
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1292
diff
changeset
|
1482 if (selectedManuals.at(i).startsWith("I:")) { |
fce8c122cbc4
(issue165) Invert manual states. Manual changes are inverted as the action should be the opposite of
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1292
diff
changeset
|
1483 QString certLine = selectedManuals.at(i); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1484 certLine[0] = 'R'; |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1485 choices << certLine; |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1486 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1487 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1488 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1489 unselected << mUpdatesNew->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1490 unselected << mUpdatesRemove->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1491 unselected << mInstallList->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1492 unselected << mRemoveList->unselectedCertificates(); |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1493 |
918
e5fd2d0cf42f
(issue63) Add warning message when installation is not as admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
904
diff
changeset
|
1494 #ifdef Q_OS_WIN |
1003
db7e7156c824
(issue66) Only depend on is_system_install on windows to decide privilege raise
Andre Heinecke <andre.heinecke@intevation.de>
parents:
997
diff
changeset
|
1495 if (!is_system_install()) { |
db7e7156c824
(issue66) Only depend on is_system_install on windows to decide privilege raise
Andre Heinecke <andre.heinecke@intevation.de>
parents:
997
diff
changeset
|
1496 QMessageBox::warning(this, |
926
ca997bc0f790
(issue63) Updated message box text for normal user.
Emanuel Schuetze <emanuel@intevation.de>
parents:
918
diff
changeset
|
1497 tr("Installation with standard user account"), |
1006
6aa115b206df
Updated translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1003
diff
changeset
|
1498 tr("Windows will now ask you to confirm each root certificate modification " |
926
ca997bc0f790
(issue63) Updated message box text for normal user.
Emanuel Schuetze <emanuel@intevation.de>
parents:
918
diff
changeset
|
1499 "because TrustBridge does not have the necessary privileges to install " |
ca997bc0f790
(issue63) Updated message box text for normal user.
Emanuel Schuetze <emanuel@intevation.de>
parents:
918
diff
changeset
|
1500 "root certificates into the Windows certificate store silently.")); |
918
e5fd2d0cf42f
(issue63) Add warning message when installation is not as admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
904
diff
changeset
|
1501 } |
e5fd2d0cf42f
(issue63) Add warning message when installation is not as admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
904
diff
changeset
|
1502 #endif |
e5fd2d0cf42f
(issue63) Add warning message when installation is not as admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
904
diff
changeset
|
1503 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1504 QProgressDialog *progress = new QProgressDialog(this); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1505 progress->setWindowModality(Qt::WindowModal); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1506 progress->setLabelText(tr("Installing certificates...")); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1507 progress->setCancelButton(0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1508 progress->setRange(0,0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1509 progress->setMinimumDuration(0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1510 progress->show(); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1511 |
1082
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1512 CertificateList *instList = mListToInstall.isValid() ? |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1513 &mListToInstall : |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1514 &mInstalledList; |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1515 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1516 InstallWrapper *instWrap = new InstallWrapper(this, |
1082
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1517 instList->fileName(), |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1518 choices); |
1082
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1519 |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1520 syslog_info_printf ("Installing certificate list: '%s' Version '%s'\n", |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1521 instList->fileName().toUtf8().constData(), |
a12e6172d82c
Extend logging to all choices and SW updates.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1081
diff
changeset
|
1522 instList->date().toString().toUtf8().constData()); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1523 /* Clean up object and progress dialog */ |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1524 connect(instWrap, SIGNAL(finished()), instWrap, SLOT(deleteLater())); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1525 connect(instWrap, SIGNAL(finished()), progress, SLOT(deleteLater())); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1526 connect(instWrap, SIGNAL(finished()), progress, SLOT(cancel())); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1527 connect(instWrap, SIGNAL(installationSuccessful()), |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1528 this, SLOT(installerSuccess())); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1529 connect(instWrap, SIGNAL(error(const QString &)), |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1530 this, SLOT(installerError(const QString &))); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1531 instWrap->start(); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1532 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1533 if (!saveUnselectedCertificates(unselected)) { |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1534 qWarning() << "Failed to save previosly unselected certificates."; |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1535 } |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1536 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1537 } |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1538 |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1539 void MainWindow::loadUnselectedCertificates() |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1540 { |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1541 mPreviouslyUnselected.clear(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1542 mSettings.beginGroup("unselected"); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1543 QStringList keys = mSettings.allKeys(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1544 foreach (const QString &key, keys) { |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1545 mPreviouslyUnselected << mSettings.value(key, QString()).toString(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1546 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1547 mSettings.endGroup(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1548 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1549 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1550 bool MainWindow::saveUnselectedCertificates(QStringList unselected) |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1551 { |
479
a8d56a2846a8
Fill the internal list of previously unselcted certificates when saving in settings.
Raimund Renkert <rrenkert@intevation.de>
parents:
461
diff
changeset
|
1552 mPreviouslyUnselected.clear(); |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1553 mSettings.beginGroup("unselected"); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1554 mSettings.remove(""); /* Clears old choices */ |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1555 for (int i = 0; i < unselected.size(); i++) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1556 QString key = QString::fromLatin1("cert%1").arg(i); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1557 QString value = unselected.at(i); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1558 mSettings.setValue(key, value); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1559 mPreviouslyUnselected << value; |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1560 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1561 mSettings.endGroup(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1562 mSettings.sync(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1563 return mSettings.status() == QSettings::NoError; |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1564 } |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1565 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1566 void MainWindow::toggleInManual(bool state, const Certificate &cert) |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1567 { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1568 if (!mUpdatesManual->contains(cert)) { |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1569 QToolButton* actionBtn = new QToolButton(); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1570 QIcon btnIcon; |
1201
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1571 if (mRemoveList->contains(cert)) { |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1572 btnIcon.addFile(":/img/cert-to-be-removed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
1201
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1573 btnIcon.addFile(":/img/cert-is-installed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1574 actionBtn->setProperty("ToolTip_On", tr("Certificate will be removed.")); |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1575 /* Off should never be possible here |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1576 * As the manual change of removed certificates is disabled */ |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1577 actionBtn->setProperty("ToolTip_Off", tr("Certificate will not be removed.")); |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1578 } else { |
1209
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1579 btnIcon.addFile(":/img/cert-to-be-installed-good-48.png", QSize(48, 48), QIcon::Normal, QIcon::On); |
3815a0d2017b
(issue115) icons, new for cert-to-be* with color.
Bernhard Reiter <bernhard@intevation.de>
parents:
1202
diff
changeset
|
1580 btnIcon.addFile(":/img/cert-to-be-removed-bad-48.png", QSize(48, 48), QIcon::Normal, QIcon::Off); |
1201
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1581 actionBtn->setProperty("ToolTip_On", tr("Certificate will be installed.")); |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1582 actionBtn->setProperty("ToolTip_Off", tr("Certificate will be removed.")); |
9bdce8d6fd43
(issue144) Handle removal certificates differently in manual changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1162
diff
changeset
|
1583 } |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1584 actionBtn->setIcon(btnIcon); |
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1104
diff
changeset
|
1585 mUpdatesManual->addCertificate(cert, state, actionBtn); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1586 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1587 else { |
1107
51d3b361f17a
Revert commit 1102
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
1588 mUpdatesManual->removeCertificate(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1589 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1590 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1591 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1592 void MainWindow::removeFromManual(bool state, const Certificate &cert) |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1593 { |
1107
51d3b361f17a
Revert commit 1102
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
1594 mUpdatesManual->removeCertificate(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1595 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1596 if (cert.isInstallCert()) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1597 mInstallList->setCertState(state, cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1598 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1599 else { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1600 mRemoveList->setCertState(state, cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1601 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1602 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1603 |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1604 void MainWindow::closeApp() |
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1605 { |
782
20ca94680003
Implemented detection of running instance on linux using a lock file.
Sascha Wilde <wilde@intevation.de>
parents:
754
diff
changeset
|
1606 ProcessHelp::cleanUp(); |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1607 qApp->quit(); |
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1608 } |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1609 |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1610 void MainWindow::checkAndInstallCerts() |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1611 { |
1246
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1612 #ifdef WIN32 |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1613 /* Checking before opening the dialog should be cheaper */ |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1614 QList<int> pids = ProcessHelp::getProcessesIdForName("firefox"); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1615 pids.append(ProcessHelp::getProcessesIdForName("thunderbird")); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1616 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1617 if (pids.isEmpty()) { |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1618 installCerts(); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1619 return; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1620 } |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1621 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1622 QStringList pNames; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1623 pNames << "firefox" << "thunderbird"; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1624 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1625 ProcessWaitDialog *waitDialog = new ProcessWaitDialog(this, pNames); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1626 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1627 connect(waitDialog, SIGNAL(accepted()), this, SLOT(installCerts())); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1628 connect(waitDialog, SIGNAL(accepted()), waitDialog, SLOT(deleteLater())); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1629 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1630 waitDialog->exec(); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1631 return; |
1246
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1632 #else |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1633 /* On GNU Linux finding all firefox / thunderbird instances which |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1634 * could be found on the filesystem is more difficult. So |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1635 * for now we just show a generic warning dialog. */ |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1636 QMessageBox* warnMessage = new QMessageBox (QMessageBox::Information, |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1637 tr("Firefox and Thunderbird certificate installation."), |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1638 tr("Please close all running Firefox and Thunderbird instances " |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1639 "before continuing with the installation."), QMessageBox::Ok | QMessageBox::No, |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1640 this); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1641 warnMessage->button(QMessageBox::Ok)->setText(tr("Continue")); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1642 warnMessage->setDefaultButton(QMessageBox::Ok); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1643 warnMessage->button(QMessageBox::No)->setText(tr("Cancel")); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1644 warnMessage->setWindowIcon(windowIcon()); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1645 warnMessage->setIconPixmap(QIcon(":/img/dialog-warning.png").pixmap(QSize(48,48))); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1646 |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1647 connect(warnMessage->button(QMessageBox::Ok), SIGNAL(clicked()), this, SLOT(installCerts())); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1648 warnMessage->exec(); |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1649 return; |
8748223990eb
(issue39) Show generic warning on installation for firefox/thunderbird instances
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1236
diff
changeset
|
1650 #endif |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1651 } |
654
129e611eaf50
Merge branch trustbridge-refactor
Andre Heinecke <andre.heinecke@intevation.de>
diff
changeset
|
1652 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1653 void MainWindow::togglePages(int button) |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1654 { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1655 mUpdatesWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1656 mInstallWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1657 mRemoveWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1658 mInfoWidget->hide(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1659 switch(button) { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1660 case 0: mUpdatesWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1661 case 1: mInstallWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1662 case 2: mRemoveWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1663 case 3: mInfoWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1664 default: mUpdatesWidget->show(); break; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1665 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1666 return; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1667 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1668 |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1669 static void deactivateDetailsButton(QPushButton *btn) { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1670 btn->setToolTip(QObject::tr("Hide details")); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1671 btn->setText(" " + QObject::tr("Less")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1672 btn->setIcon(QIcon(":/img/dialog-information_grey_16px.png")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1673 } |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1674 |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1675 static void activateDetailsButton(QPushButton *btn) { |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1676 btn->setToolTip(QObject::tr("Show details")); |
1104
a7a72353d6d2
(issue111) Wording and German translation.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1103
diff
changeset
|
1677 btn->setText(" " + QObject::tr("Details")); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1678 btn->setIcon(QIcon(":/img/dialog-information_16px.png")); |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1679 } |
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1680 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1681 void MainWindow::toggleUpdatesNew() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1682 if (!mUpdatesNew->isVisible()) { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1683 mUpdatesNew->show(); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1684 deactivateDetailsButton(mUpdatesDetailsNew); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1685 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1686 else { |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1687 mUpdatesNew->hide(); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1688 activateDetailsButton(mUpdatesDetailsNew); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1689 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1690 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1691 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1692 void MainWindow::toggleUpdatesRemove() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1693 if (!mUpdatesRemove->isVisible()) { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1694 mUpdatesRemove->show(); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1695 deactivateDetailsButton(mUpdatesDetailsRemove); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1696 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1697 else { |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1698 mUpdatesRemove->hide(); |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1699 activateDetailsButton(mUpdatesDetailsRemove); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1700 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1701 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1702 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1703 void MainWindow::toggleUpdatesManual() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1704 if (!mUpdatesManual->isVisible()) { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1705 mUpdatesManual->show(); |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1706 mManualDetailsShown = true; |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1707 deactivateDetailsButton(mUpdatesDetailsManual); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1708 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1709 else { |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1710 mUpdatesManual->hide(); |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1107
diff
changeset
|
1711 mManualDetailsShown = false; |
1098
75a5bfe0525e
(issue111) Rework Updates ui
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1097
diff
changeset
|
1712 activateDetailsButton(mUpdatesDetailsManual); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1713 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1714 } |
690
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1715 |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1716 void MainWindow::closeEvent(QCloseEvent *event) |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1717 { |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1718 if (getState() == NewListAvailable) { |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1719 /* Only minimize to tray if there is a new list */ |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1720 QMainWindow::closeEvent(event); |
965
013ca910589a
Open main window in case of error message.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
964
diff
changeset
|
1721 mTrayIcon->show(); |
690
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1722 return; |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1723 } |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1724 return closeApp(); |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1725 } |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1726 |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1727 void MainWindow::updateCheckSuccess() |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1728 { |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1729 if (getState() != TransferError) { |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1730 const QDateTime now = QDateTime::currentDateTime(); |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1731 mSettings.setValue("lastUpdateCheck", now); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1732 mLastUpdateCheckContents->setText(QLocale::system().toString(now, DATETIME_FORMAT)); |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1733 mLastUpdateCheckContents->show(); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1734 mLastUpdateCheck->show(); |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1735 syslog_info_printf(tr("Sucessfully checked for updates.").toUtf8().constData()); |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1736 handleLTE(lteNoConnection, true); /* Reset error state */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1737 handleLTE(lteInvalidCertificate, true); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1738 } |
1042
74951e389cb1
(issue103) Only shut down if the mainwidow is not visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1034
diff
changeset
|
1739 if ((getState() != NewSoftwareAvailable && getState() != NewListAvailable && mTrayMode) |
74951e389cb1
(issue103) Only shut down if the mainwidow is not visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1034
diff
changeset
|
1740 && !isVisible()) { |
962
0a4f7235e759
Close the application if nothing new is available and in tray mode.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
961
diff
changeset
|
1741 qDebug() << "Shutting down as no list or Software is available."; |
0a4f7235e759
Close the application if nothing new is available and in tray mode.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
961
diff
changeset
|
1742 closeApp(); |
0a4f7235e759
Close the application if nothing new is available and in tray mode.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
961
diff
changeset
|
1743 } else { |
0a4f7235e759
Close the application if nothing new is available and in tray mode.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
961
diff
changeset
|
1744 mTrayIcon->show(); |
0a4f7235e759
Close the application if nothing new is available and in tray mode.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
961
diff
changeset
|
1745 } |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1746 } |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1747 |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1748 int MainWindow::changeCount() |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1749 { |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1750 return mChangeCount; |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1751 } |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1752 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1753 void MainWindow::setChangeCount(int cnt) |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1754 { |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1755 if (mChangeCount != cnt) { |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1756 mChangeCount = cnt; |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1757 emit changesChanged(QString("%1").arg(cnt)); |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1758 } |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1759 } |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1760 |
956
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1761 void MainWindow::showProxySettings() |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1762 { |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1763 ProxySettingsDlg *dlg = new ProxySettingsDlg(this); |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1764 dlg->exec(); |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1765 } |
879a634d0a40
(issue41) Add proxy support
Andre Heinecke <andre.heinecke@intevation.de>
parents:
940
diff
changeset
|
1766 |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1767 void MainWindow::showHelp() |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1768 { |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1769 char *inst_dir = get_install_dir(); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1770 if (!inst_dir) { |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1771 qDebug() << "Failed to find install dir"; |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1772 return; |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1773 } |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1774 QString helpPath = QString::fromUtf8(inst_dir); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1775 helpPath += HELP_PATH; |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1776 QFileInfo fiHelp(helpPath); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1777 qDebug() << "Opening help: " << fiHelp.absoluteFilePath(); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1778 if (!fiHelp.exists()) { |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1779 QMessageBox::warning(this, tr("Error!"), tr ("Failed to find the manual")); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1780 return; |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1781 } |
966
9783e32e215f
(issue89) Use platform specific help url.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
965
diff
changeset
|
1782 #ifdef Q_OS_WIN |
9783e32e215f
(issue89) Use platform specific help url.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
965
diff
changeset
|
1783 QDesktopServices::openUrl(QUrl("file:///" + fiHelp.absoluteFilePath())); |
9783e32e215f
(issue89) Use platform specific help url.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
965
diff
changeset
|
1784 #else |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1785 QDesktopServices::openUrl(QUrl(fiHelp.absoluteFilePath())); |
966
9783e32e215f
(issue89) Use platform specific help url.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
965
diff
changeset
|
1786 #endif |
940
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1787 free (inst_dir); |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1788 return; |
7c89c5dc2200
(issue89) Add ui to open help in browser
Andre Heinecke <andre.heinecke@intevation.de>
parents:
932
diff
changeset
|
1789 } |
1061
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
1790 |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
1791 void MainWindow::showErrorMessage(const QString &msg) |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
1792 { |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
1793 QMessageBox::warning(this, tr("TrustBridge error"), msg); |
db831a204a6b
(issue38) Show error message as messagebox if the window is visible
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1056
diff
changeset
|
1794 } |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1795 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1796 void MainWindow::handleLTE(LongTimeErrors lte, bool reset) |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1797 { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1798 QString settingPrefix; |
1230
05b938021a24
(issue38) A bit debug output for LTE handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1227
diff
changeset
|
1799 // qDebug() << "Handle LTE for " << lte << " Reset? : " << reset; |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1800 switch (lte) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1801 case lteInvalidSoftware: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1802 settingPrefix = "LTE/invalidSW"; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1803 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1804 case lteInvalidList: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1805 settingPrefix = "LTE/invalidList"; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1806 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1807 case lteInvalidCertificate: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1808 settingPrefix = "LTE/invalidCertificate"; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1809 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1810 case lteNoConnection: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1811 settingPrefix = "LTE/noConnection"; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1812 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1813 default: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1814 qDebug() << "Unhandled error. " << lte; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1815 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1816 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1817 if (reset) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1818 /* delete all values and be done */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1819 mSettings.remove(settingPrefix + "_lastSaved"); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1820 mSettings.remove(settingPrefix + "_count"); |
1230
05b938021a24
(issue38) A bit debug output for LTE handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1227
diff
changeset
|
1821 mSettings.remove(settingPrefix + "_lastShown"); |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1822 return; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1823 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1824 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1825 QDateTime lastSaved = mSettings.value(settingPrefix + "_lastSaved").toDateTime(); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1826 bool cnt_valid; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1827 int cnt = mSettings.value(settingPrefix + "_count").toInt(&cnt_valid); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1828 if (!cnt_valid) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1829 cnt = 0; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1830 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1831 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1832 if (!lastSaved.isValid() || lastSaved.daysTo(QDateTime::currentDateTime()) >= 1) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1833 /* The error count is increased at most once a day */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1834 mSettings.setValue(settingPrefix + "_lastSaved", QDateTime::currentDateTime()); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1835 mSettings.setValue(settingPrefix + "_count", ++cnt); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1836 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1837 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1838 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1839 if (cnt < 7) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1840 /* We are done */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1841 return; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1842 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1843 /* A week has passed. Start showing the error. */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1844 QDateTime lastShown = mSettings.value(settingPrefix + "_lastShown").toDateTime(); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1845 if (lastShown.isValid() && lastShown.daysTo(QDateTime::currentDateTime()) < 1) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1846 /* Only show the error message once a day */ |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1847 return; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1848 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1849 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1850 mSettings.setValue(settingPrefix + "_lastShown", QDateTime::currentDateTime()); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1851 |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1852 switch (lte) { |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1853 case lteInvalidSoftware: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1854 showErrorMessage(tr("The integrity check for the available software update has " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1855 "failed repeatedly.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1856 tr("Please contact your Support or the publisher of the Software.")); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1857 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1858 case lteInvalidList: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1859 showErrorMessage(tr("The integrity check of the available certificates has " |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1860 "failed repeatedly.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1861 tr("Please contact your Support or the publisher of the Software.")); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1862 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1863 case lteInvalidCertificate: |
1275
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
1864 showErrorMessage(tr("The authentication of the update server has " |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1865 "failed repeatedly.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1866 tr("Please contact your Support or the publisher of the Software.")); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1867 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1868 case lteNoConnection: |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1869 bool useProxy = mSettings.value("UseProxy", false).toBool(); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1870 if (useProxy) { |
1275
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
1871 showErrorMessage(tr("The connection to the update server has " |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1872 "failed repeatedly.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1873 tr("Please check that the Proxy Server \"%1\" is available.").arg( |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1874 mSettings.value("ProxyURL").toString())); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1875 } else { |
1275
be989e9d49a4
Translations updated.
Emanuel Schuetze <emanuel@intevation.de>
parents:
1261
diff
changeset
|
1876 showErrorMessage(tr("The connection to the update server has " |
1227
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1877 "failed repeatedly.") + "\n" + |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1878 tr("Please check your internet connection.")); |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1879 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1880 break; |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1881 } |
a1e990947172
(issue38) Add long time error handling.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1215
diff
changeset
|
1882 } |