Mercurial > trustbridge
annotate ui/mainwindow.cpp @ 858:4dfb6f543a05
Only uninstall a list if it has been installed
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 04 Aug 2014 15:06:33 +0200 |
parents | 9bab4fc3a1fe |
children | 4efd6378c001 |
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 <QSystemTrayIcon> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 #include <QAction> |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 #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
|
17 #include <QDir> |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 #include <QMenu> |
2 | 19 #include <QApplication> |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
20 #include <QFile> |
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> |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
33 |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
34 #include "certificatelist.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
35 #include "downloader.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
36 #include "helpdialog.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
37 #include "aboutdialog.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
38 #include "separatoritemdelegate.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
39 #include "installwrapper.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
40 #include "util.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
41 #include "logging.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
42 #include "binverify.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
43 #include "processhelp.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
44 #include "processwaitdialog.h" |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
45 |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
46 // 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
|
47 // something to say |
548
c84dc8f6d017
Increase nag interval to 70 minutes
Andre Heinecke <aheinecke@intevation.de>
parents:
531
diff
changeset
|
48 #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
|
49 |
714
57bd73145e48
(Issue25) Fix typos change order and add better date formating
Andre Heinecke <andre.heinecke@intevation.de>
parents:
713
diff
changeset
|
50 #define DATETIME_FORMAT "dddd, d.MMMM yyyy HH:mm:ss" |
57bd73145e48
(Issue25) Fix typos change order and add better date formating
Andre Heinecke <andre.heinecke@intevation.de>
parents:
713
diff
changeset
|
51 |
409
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
52 #ifndef APPNAME |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
53 #define APPNAME "TrustBridge" |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
54 #endif |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
55 |
09bb19e5e369
Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents:
407
diff
changeset
|
56 #define SERVER_URL "https://files.intevation.de:443" |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
57 |
838
78c8ce22d9f4
Revert back to the difference between release / test build
Andre Heinecke <andre.heinecke@intevation.de>
parents:
819
diff
changeset
|
58 #ifdef RELEASE_BUILD |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
59 # define LIST_RESOURCE "/users/aheinecke/zertifikatsliste.txt" |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
60 # ifdef Q_OS_WIN |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
61 # define SW_RESOURCE_VERSION "/users/aheinecke/TrustBridge-%1.exe" |
664
911b94a475e0
Fix SW_Resource defines for linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
663
diff
changeset
|
62 # define SW_RESOURCE "/users/aheinecke/TrustBridge.exe" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
63 # else |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
64 # define SW_RESOURCE_VERSION "/users/aheinecke/TrustBridge-%1.sh" |
664
911b94a475e0
Fix SW_Resource defines for linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
663
diff
changeset
|
65 # define SW_RESOURCE "/users/aheinecke/TrustBridge.sh" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
66 # endif |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
67 #else // RELEASE_BUILD |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
68 # define LIST_RESOURCE "/users/aheinecke/development/zertifikatsliste.txt" |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
69 # ifdef Q_OS_WIN |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
70 # define SW_RESOURCE_VERSION "/users/aheinecke/development/TrustBridge-development.exe" |
664
911b94a475e0
Fix SW_Resource defines for linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
663
diff
changeset
|
71 # define SW_RESOURCE "/users/aheinecke/development/TrustBridge.exe" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
72 # else |
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
73 # define SW_RESOURCE_VERSION "/users/aheinecke/development/TrustBridge-development.sh" |
664
911b94a475e0
Fix SW_Resource defines for linux
Andre Heinecke <andre.heinecke@intevation.de>
parents:
663
diff
changeset
|
74 # define SW_RESOURCE "/users/aheinecke/development/TrustBridge.sh" |
607
e83589f1fd7f
Use different URI's for development
Andre Heinecke <andre.heinecke@intevation.de>
parents:
594
diff
changeset
|
75 # endif |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
76 #endif |
7
992c0ec57660
Add unit tests make CertificateList work.
Andre Heinecke <aheinecke@intevation.de>
parents:
2
diff
changeset
|
77 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
78 MainWindow::MainWindow(bool trayMode): |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
79 mTrayMode(trayMode) |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
80 { |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
81 createActions(); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
82 createTrayIcon(); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
83 setupGUI(); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
84 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
|
85 setMinimumWidth(760); |
45
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
86 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
|
87 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
|
88 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 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
|
90 this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason))); |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
91 |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
92 mMessageTimer = new QTimer(this); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
93 connect(mMessageTimer, SIGNAL(timeout()), this, SLOT(showMessage())); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
94 mMessageTimer->setInterval(NAG_INTERVAL_MINUTES * 60 * 1000); |
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
95 mMessageTimer->start(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
96 checkUpdates(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
97 loadUnselectedCertificates(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
98 loadCertificateList(); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
99 if (!trayMode) { |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
100 show(); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
101 } |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
102 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
103 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
104 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
|
105 { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
106 switch (reason) { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
107 case QSystemTrayIcon::Trigger: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
108 case QSystemTrayIcon::MiddleClick: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
109 showMessage(); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
110 break; |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
111 case QSystemTrayIcon::DoubleClick: |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
112 show(); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
113 break; |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 default: |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 ; |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
116 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
117 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
118 |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
119 void MainWindow::messageClicked() |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
120 { |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
121 if (mCurState == NewListAvailable) { |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
122 show(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
123 } |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
124 |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
125 if (mCurState == NewSoftwareAvailable) { |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
126 verifySWData(); |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
127 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
|
128 if (swFileName.isEmpty()) { |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
129 checkUpdates(true); |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
130 mCurState = DownloadingSW; |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
131 return; |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
132 } |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
133 installNewSW(swFileName, |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
134 mSettings.value("Software/availableDate").toDateTime()); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
135 } |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
136 } |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
137 |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
138 void MainWindow::showMessage() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
139 { |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
140 if (mCurMessage.isEmpty()) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
141 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
142 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
143 if (mCurState == NewSoftwareAvailable || !isVisible()) { |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
144 mTrayIcon->showMessage(QApplication::applicationName(), mCurMessage, |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
145 QSystemTrayIcon::Information, 10000); |
19
9af6198deb8e
Add timed trigger for the message
Andre Heinecke <aheinecke@intevation.de>
parents:
17
diff
changeset
|
146 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
|
147 } |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
148 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
149 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
150 void MainWindow::verifyListData() |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
151 { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
152 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
|
153 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
|
154 if (!availableFileName.isEmpty()) { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
155 mListToInstall.readList(availableFileName.toLocal8Bit().constData()); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
156 if (!mListToInstall.isValid()) { |
82
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
157 mCurState = TransferError; |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
158 // Probably a bug when Qt fileName is encoded and cFileName |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
159 // fails because of this. This needs a unit test! |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
160 // Maybe check that the file is in our data directory |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
161 QFile::remove(availableFileName); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
162 mSettings.remove("List/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
163 mSettings.remove("List/availableDate"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
164 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
165 } else { |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
166 // 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
|
167 mSettings.remove("List/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
168 mSettings.remove("List/availableDate"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
169 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
170 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
171 if (!installedFileName.isEmpty()) { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
172 mInstalledList.readList(installedFileName.toLocal8Bit().constData()); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
173 if (!mInstalledList.isValid()) { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
174 // 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
|
175 // 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
|
176 // 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
|
177 QFile::remove(installedFileName); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
178 mSettings.remove("List/installed"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
179 mSettings.remove("List/installedDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
180 } |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
181 } else { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
182 mSettings.remove("List/installed"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
183 mSettings.remove("List/installedDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
184 } |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
185 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
186 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
187 void MainWindow::verifySWData() |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
188 { |
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
189 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
|
190 |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
191 if (swFileName.isEmpty()) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
192 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
193 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
194 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
195 |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
196 QFileInfo fi(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
197 if (!fi.exists()) { |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
198 mSettings.remove("Software/available"); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
199 mSettings.remove("Software/availableDate"); |
591
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
200 qDebug() << "Software does not yet exist."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
201 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
202 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
203 if (!fi.isExecutable()) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
204 qWarning() << "Downloaded file: " << swFileName << " is not executable."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
205 QFile::remove(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
206 mSettings.remove("Software/available"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
207 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
208 return; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
209 } |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
210 bin_verify_result verifyResult = verify_binary(swFileName.toUtf8().constData(), |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
211 swFileName.toUtf8().size()); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
212 qDebug() << "Binary verify result: " << verifyResult; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
213 if (verifyResult != VerifyValid) { |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
214 qDebug() << "Failed to verify downloaded data."; |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
215 QFile::remove(swFileName); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
216 mSettings.remove("Software/available"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
217 mSettings.remove("Software/availableDate"); |
26a18e3c3db4
Cleanups and coding style.
Andre Heinecke <aheinecke@intevation.de>
parents:
587
diff
changeset
|
218 return; |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
219 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
220 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
221 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
222 void MainWindow::handleNewList(const QString& fileName, const QDateTime& modDate) { |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
223 qDebug() << "new list available"; |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
224 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
|
225 mSettings.setValue("List/availableDate", modDate); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
226 |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
227 verifyListData(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
228 if (!mListToInstall.isValid()) { |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
229 /* 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
|
230 /* TODO: Error count. Error handling. Otherwise |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
231 * we can go into an endless loop here */ |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
232 |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
233 /* 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
|
234 QTimer::singleShot(600000 + (qrand() % 60000), this, SLOT(checkUpdates())); |
82
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
235 } else { |
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
236 mCurMessage = tr("An updated certificate list is available. Click here to install."); |
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
237 setState(NewListAvailable); |
1f27d6db5ee3
Polarssl based certificate handling
Andre Heinecke <aheinecke@intevation.de>
parents:
72
diff
changeset
|
238 showMessage(); |
189
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
239 loadCertificateList(); |
71
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
240 } |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
241 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
242 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
243 void MainWindow::handleNewSW(const QString& fileName, const QDateTime& modDate) { |
555
4cc378f335f5
Use native path to execute software update on windows
Andre Heinecke <aheinecke@intevation.de>
parents:
554
diff
changeset
|
244 mCurMessage = tr("An update for %1 is available.\n" |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
245 "Click here to download and install the update.").arg( |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
246 QApplication::applicationName()); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
247 setState(NewSoftwareAvailable); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
248 mSettings.setValue("Software/available", fileName); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
249 mSettings.setValue("Software/availableDate", modDate); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
250 |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
251 mSettings.sync(); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
252 showMessage(); |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
253 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
254 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
255 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
|
256 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
|
257 QString filePath = QDir::toNativeSeparators(instProcInfo.absoluteFilePath()); |
592
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
258 |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
259 if (verify_binary(filePath.toUtf8().constData(), |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
260 filePath.toUtf8().size()) != VerifyValid) { |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
261 qDebug() << "Invalid software. Not installing"; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
262 return; |
592
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
263 } |
778f74d0706f
Verify the binary directly without relying on settings (which might differ)
Andre Heinecke <aheinecke@intevation.de>
parents:
591
diff
changeset
|
264 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
|
265 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
|
266 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
267 #ifdef WIN32 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
268 QString parameters = QString::fromLatin1("/S /UPDATE=1 /D=") + |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
269 installDir.path().replace("/", "\\") + ""; |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
270 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
271 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
|
272 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
|
273 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
|
274 |
aee3eb10bbba
Add unit test for sw update execution and fix shell execute params
Andre Heinecke <aheinecke@intevation.de>
parents:
555
diff
changeset
|
275 shExecInfo.lpFile = reinterpret_cast<LPCWSTR> (filePath.utf16()); |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
276 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
|
277 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
278 // shExecInfo.fMask = SEE_MASK_NOASYNC; |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
279 shExecInfo.nShow = SW_SHOWDEFAULT; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
280 |
841
216a65d7fc4b
(issue66) Implement is_system_install and use it
Andre Heinecke <andre.heinecke@intevation.de>
parents:
838
diff
changeset
|
281 if (!is_system_install() || !is_admin()) { |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
282 shExecInfo.lpVerb = L"open"; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
283 } else { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
284 shExecInfo.lpVerb = L"runas"; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
285 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
286 |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
287 qDebug() << "Starting process: " << filePath |
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
288 << " with arguments: " << parameters; |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
289 |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
290 if (!ShellExecuteExW(&shExecInfo)) { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
291 /* 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
|
292 char* errmsg = getLastErrorMsg(); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
293 QString qerrmsg = QString::fromUtf8(errmsg); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
294 free(errmsg); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
295 qDebug() << "Failed to start process: " << qerrmsg; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
296 setState(NewSoftwareAvailable); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
297 return; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
298 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
299 #else /* WIN32 */ |
594
c944de9900de
Add installation parameters with correct quoting
Andre Heinecke <aheinecke@intevation.de>
parents:
592
diff
changeset
|
300 QStringList parameters; |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
301 parameters << "--prefix" << installDir.path(); |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
302 bool sudo_started = false; |
841
216a65d7fc4b
(issue66) Implement is_system_install and use it
Andre Heinecke <andre.heinecke@intevation.de>
parents:
838
diff
changeset
|
303 bool use_sudo = is_admin() && is_system_install(); |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
304 if (use_sudo) { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
305 QStringList sudoPrograms; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
306 sudoPrograms << "gksudo" << "kdesudo" << "sudo"; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
307 QStringList sudoParams; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
308 sudoParams << filePath + " " + parameters.join(" "); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
309 |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
310 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
|
311 qDebug() << "Starting process " << sProg <<" params: " << sudoParams; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
312 if (!QProcess::startDetached(sProg, sudoParams)) { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
313 continue; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
314 } else { |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
315 sudo_started = true; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
316 break; |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
317 } |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
318 } |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
319 } |
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
320 if (!sudo_started && !QProcess::startDetached(filePath, parameters)) { |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
321 qDebug() << "Failed to start process."; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
322 return; |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
323 } |
810
ee75e236843c
Use sudo to install software in case of is_admin
Andre Heinecke <andre.heinecke@intevation.de>
parents:
807
diff
changeset
|
324 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
325 #endif |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
326 /* Installer process should now be running. We exit */ |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
327 |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
328 closeApp(); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
329 } |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
330 |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
331 void MainWindow::checkUpdates(bool downloadSW) |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
332 { |
587
02a89710a7cd
Split up list and software verification and use it
Andre Heinecke <aheinecke@intevation.de>
parents:
563
diff
changeset
|
333 verifyListData(); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
334 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
335 if (!mSettings.contains("Software/installedDate") || |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
336 mSettings.value("Software/installedVersion").toString() != QApplication::applicationVersion()) { |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
337 /* 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
|
338 * been installed */ |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
339 getLastModForCurrentVersion(); |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
340 return; |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
341 } |
17
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
342 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
|
343 QDateTime swInstalledLastMod = mSettings.value("Software/installedDate").toDateTime(); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
344 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
345 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
|
346 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
|
347 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
348 #ifndef RELEASE_BUILD |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
349 /* 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
|
350 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
|
351 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
|
352 #endif |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
353 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
354 |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
355 Downloader* downloader = new Downloader(this, |
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
356 QString::fromLatin1(SERVER_URL), |
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
357 QByteArray(), |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
358 swInstalledLastMod, |
72
7e304573ebd1
Add some testing hacks for interactive testing
Andre Heinecke <aheinecke@intevation.de>
parents:
71
diff
changeset
|
359 listInstalledLastMod, |
437
4b486a14252f
Acutally use the values that can be taken from the config
Andre Heinecke <aheinecke@intevation.de>
parents:
434
diff
changeset
|
360 swResource, |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
361 listResource, |
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
362 downloadSW); |
17
c12825a651ed
Read out content-length and use this to skip existing files
Andre Heinecke <aheinecke@intevation.de>
parents:
16
diff
changeset
|
363 |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
364 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
|
365 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
|
366 if (!downloadSW) { |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
367 setState(BeforeDownload); |
461
1ce835c40eb7
Ask the user if software updates should be installed.
Raimund Renkert <rrenkert@intevation.de>
parents:
456
diff
changeset
|
368 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
|
369 this, SLOT(handleNewSW(const QString&, const QDateTime&))); |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
370 } else { |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
371 setState(DownloadingSW); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
372 connect(downloader, SIGNAL(newSoftwareAvailable(const QString&, const QDateTime&)), |
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
373 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
|
374 } |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
375 |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
376 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
|
377 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
|
378 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
|
379 this, SLOT(downloaderError(const QString &, SSLConnection::ErrorCode))); |
10
fe39d93f1261
Start on Downloader component
Andre Heinecke <aheinecke@intevation.de>
parents:
7
diff
changeset
|
380 downloader->start(); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
381 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
382 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
383 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
|
384 { |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
385 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
|
386 QApplication::applicationVersion()); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
387 qDebug() << softwareVersion; |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
388 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
|
389 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
|
390 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
|
391 QByteArray(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
392 QDateTime::currentDateTime(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
393 QDateTime::currentDateTime(), |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
394 softwareVersion, |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
395 listResource, |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
396 false); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
397 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
|
398 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
|
399 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
|
400 connect(downloader, SIGNAL(lastModifiedDate(const QDateTime&)), |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
401 this, SLOT(setLastModifiedSWDate(const QDateTime&))); |
486
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
402 |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
403 downloader->start(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
404 } |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
405 |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
406 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
|
407 { |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
408 mSettings.beginGroup("Software"); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
409 mSettings.setValue("installedDate", date); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
410 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
|
411 mSettings.endGroup(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
412 checkUpdates(); |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
413 } |
fa56a9403939
Lookup the last modified date for software installer after first installation.
Raimund Renkert <rrenkert@intevation.de>
parents:
481
diff
changeset
|
414 |
45
c6125d73faf4
Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents:
31
diff
changeset
|
415 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
|
416 { |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
417 /* TODO logging and handle error according to a plan */ |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
418 syslog_error_printf ("Failed to check for updates: %s", message.toUtf8().constData()); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
419 mCurMessage = message; |
27
62cd56cea09b
Start on polarssl Downloader.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
19
diff
changeset
|
420 showMessage(); |
551
15121735805e
Start implementation of software update installation
Andre Heinecke <aheinecke@intevation.de>
parents:
548
diff
changeset
|
421 setState(TransferError); |
16
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
422 } |
225a5ec20dad
Use QSettings and manage downloader from mainwindow.
Andre Heinecke <aheinecke@intevation.de>
parents:
11
diff
changeset
|
423 |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
424 void MainWindow::createActions() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
425 { |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
426 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
|
427 connect(mCheckUpdates, SIGNAL(triggered()), this, SLOT(checkUpdates())); |
2 | 428 mQuitAction = new QAction(tr("Quit"), this); |
429 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
|
430 } |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
431 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
432 void MainWindow::createTrayIcon() |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
433 { |
11
7e2f14c7aba2
Split up downloader component and further implement it
Andre Heinecke <aheinecke@intevation.de>
parents:
10
diff
changeset
|
434 QIcon trayImg(":/img/tray_22.png"); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
435 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
436 mTrayMenu = new QMenu(this); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
437 mTrayMenu->addAction(mCheckUpdates); |
2 | 438 mTrayMenu->addAction(mQuitAction); |
0
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
439 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
440 mTrayIcon = new QSystemTrayIcon(this); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
441 mTrayIcon->setContextMenu(mTrayMenu); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
442 |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
443 mTrayIcon->setIcon(trayImg); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
444 setWindowIcon(trayImg); |
cb0cde2c5eb9
Initial commit. Basically a Hello World with a Tray Icon.
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
445 mTrayIcon->show(); |
407
af53c40e74b1
Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents:
404
diff
changeset
|
446 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
|
447 |
f22a99f7cb69
Add certificatelist to install as member. Look for updates on startup
Andre Heinecke <aheinecke@intevation.de>
parents:
45
diff
changeset
|
448 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
|
449 } |
155
c0fdb8d336cf
Added menubar/menu and method stubs to mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
82
diff
changeset
|
450 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
451 QWidget * MainWindow::createInfoWidget() |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
452 { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
453 QWidget *theWidget = new QWidget; |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
454 QVBoxLayout *infoPanelLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
455 QHBoxLayout *infoHeaderLayout = new QHBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
456 QVBoxLayout *infoHeaderTextLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
457 QVBoxLayout *infoCenterLayout = new QVBoxLayout; |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
458 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
459 QString infoVersion = tr("Version: "); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
460 infoVersion.append(QApplication::applicationVersion()); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
461 QLabel *appVersion = new QLabel(infoVersion); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
462 appVersion->setTextInteractionFlags( |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
463 Qt::TextSelectableByMouse | |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
464 Qt::TextSelectableByKeyboard); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
465 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
466 QFrame *infoHeaderSeparator = new QFrame(); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
467 infoHeaderSeparator->setFrameShape(QFrame::HLine); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
468 infoHeaderSeparator->setFrameShadow(QFrame::Sunken); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
469 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
470 infoHeaderTextLayout->addWidget(appVersion); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
471 infoHeaderLayout->addLayout(infoHeaderTextLayout); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
472 infoHeaderLayout->insertStretch(2, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
473 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
474 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
|
475 " 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
|
476 tr("The root certificate lists are managed" |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
477 " 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
|
478 "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
|
479 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
|
480 " <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
|
481 " <a href=\"http://www.dn-systems.de\">DN-Systems GmbH</a>, <br>" |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
482 " contracted by the German Federal Office for Information Security (BSI).<br/><br/>") + |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
483 tr("TrustBridge is Free Software licensed" |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
484 " under GNU GPL v2+.<br/><br/>Copyright (C) 2014 by Bundesamt für Sicherheit" |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
485 " in der Informationstechnik")); |
807
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
486 textDesc->setTextFormat(Qt::RichText); |
1e18d4c1932a
Unify about dialog labels and Remove Trustbridge header
Andre Heinecke <andre.heinecke@intevation.de>
parents:
805
diff
changeset
|
487 textDesc->setTextInteractionFlags( |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
488 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
|
489 Qt::TextSelectableByKeyboard | |
fa68e5aeeaac
Make links clickable and also change the about info in mainwindow.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
842
diff
changeset
|
490 Qt::LinksAccessibleByMouse); |
fa68e5aeeaac
Make links clickable and also change the about info in mainwindow.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
842
diff
changeset
|
491 textDesc->setOpenExternalLinks(true); |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
492 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
493 infoCenterLayout->addWidget(infoHeaderSeparator); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
494 infoCenterLayout->addWidget(textDesc); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
495 infoCenterLayout->insertSpacing(2, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
496 infoCenterLayout->insertSpacing(4, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
497 infoCenterLayout->insertSpacing(6, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
498 infoCenterLayout->insertStretch(8, 10); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
499 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
500 infoPanelLayout->addLayout(infoHeaderLayout); |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
501 infoPanelLayout->addLayout(infoCenterLayout); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
502 theWidget->setLayout(infoPanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
503 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
504 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
505 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
506 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
507 QWidget * MainWindow::createUpdatesWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
508 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
509 QWidget * theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
510 QVBoxLayout *updatesMainLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
511 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
512 /* The header */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
513 QGridLayout *updatesHeaderLayout = new QGridLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
514 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
515 /* Header 1: Update date and search button */ |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
516 QHBoxLayout *updateDateAndSearchButton = new QHBoxLayout; |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
517 mUpdatesHeader = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
518 new QLabel("<h2>" + tr("Certificates unchanged")+ "</h2>"); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
519 mLastCertUpdate = |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
520 new QLabel(tr("Installed certificates from:")); |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
521 mLastCertUpdateContents = new QLabel(QString()); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
522 mLastCertUpdate->hide(); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
523 mLastCertUpdateContents->hide(); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
524 mSoftwareVersionLabel = |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
525 new QLabel(tr("TrustBridge Version:")); |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
526 mSoftwareVersionContents = new QLabel(QApplication::applicationVersion()); |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
527 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
528 const QDateTime lastCheck = mSettings.value("lastUpdateCheck").toDateTime().toLocalTime(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
529 if (lastCheck.isValid()) { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
530 const QString lastUpdateCheck = QLocale::system().toString(lastCheck, DATETIME_FORMAT); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
531 mLastUpdateCheck = |
781
60d3f59f0803
Fix typos in translatable strings.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
754
diff
changeset
|
532 new QLabel(tr("Last successful update check:")); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
533 mLastUpdateCheckContents = new QLabel(lastUpdateCheck); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
534 } else { |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
535 mLastUpdateCheck = new QLabel(tr("Last successful update check:")); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
536 mLastUpdateCheckContents = new QLabel(tr("No connection with the updateserver.")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
537 } |
842
bd33c6585cd0
UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents:
841
diff
changeset
|
538 QPushButton *searchUpdates = new QPushButton(" " + tr("Update")); |
bd33c6585cd0
UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents:
841
diff
changeset
|
539 searchUpdates->setFixedHeight(22); |
802 | 540 searchUpdates->setToolTip(tr("Check for Updates")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
541 searchUpdates->setStyleSheet("font-size: 10px;"); |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
542 searchUpdates->setIcon(QIcon(":/img/update-list.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
543 connect(searchUpdates, SIGNAL(clicked()), this, SLOT(checkUpdates())); |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
544 updateDateAndSearchButton->addWidget(mLastUpdateCheckContents); |
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
545 updateDateAndSearchButton->addWidget(searchUpdates); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
546 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
547 // addWidget(*Widget, row, column, rowspan, colspan, [Qt::Alignment]) |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
548 updatesHeaderLayout->addWidget(mUpdatesHeader, 0, 0, 1, 2); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
549 updatesHeaderLayout->addWidget(mSoftwareVersionLabel, 1, 0, 1, 1); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
550 updatesHeaderLayout->addWidget(mSoftwareVersionContents, 1, 1, 1, 1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
551 updatesHeaderLayout->addWidget(mLastUpdateCheck, 2, 0, 1, 1); |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
552 updatesHeaderLayout->addLayout(updateDateAndSearchButton, 2, 1, 1, 1); |
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
553 // updatesHeaderLayout->addWidget(mLastUpdateCheckContents, 2, 1, 1, 1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
554 updatesHeaderLayout->addWidget(mLastCertUpdate, 3, 0, 1, 1); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
555 updatesHeaderLayout->addWidget(mLastCertUpdateContents, 3, 1, 1, 1); |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
556 updatesHeaderLayout->setColumnStretch(3, 1); |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
557 |
787
07cc0aabf782
(issue60) Make update list button less prominent and icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
783
diff
changeset
|
558 // updatesHeaderLayout->addWidget(searchUpdates, 1, 4, 1, 2, Qt::AlignRight); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
559 updatesHeaderLayout->setRowMinimumHeight(4, 15); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
560 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
561 /* Header 2: Action text and buttons */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
562 mUpdatesTip = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
563 new QLabel(tr("There are currently no changes for your certificate stores.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
564 mUpdatesTip->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
565 QHBoxLayout *updatesHeaderActionButtonLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
566 mQuitButton = new QPushButton(" " + tr("Quit without saving")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
567 mQuitButton->setIcon(QIcon(":/img/application-exit.png")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
568 mQuitButton->setFixedHeight(30); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
569 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
570 mInstallButton = new QPushButton(" " + tr("Install certificates again")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
571 mInstallButton->setFixedHeight(30); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
572 #ifdef Q_OS_WIN |
841
216a65d7fc4b
(issue66) Implement is_system_install and use it
Andre Heinecke <andre.heinecke@intevation.de>
parents:
838
diff
changeset
|
573 if (is_admin() && is_system_install()) { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
574 QIcon uacShield = QApplication::style()->standardIcon(QStyle::SP_VistaShield); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
575 mInstallButton->setIcon(uacShield); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
576 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
577 #else |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
578 mInstallButton->setIcon(QIcon(":/img/view-refresh_16px.png")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
579 #endif |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
580 connect(mQuitButton, SIGNAL(clicked()), this, SLOT(closeApp())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
581 connect(mInstallButton, SIGNAL(clicked()), this, SLOT(checkAndInstallCerts())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
582 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
583 // addWidget(*Widget, row, column, rowspan, colspan) |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
584 updatesHeaderLayout->addWidget(mUpdatesTip, 5, 0, 1, 4); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
585 updatesHeaderActionButtonLayout->addWidget(mInstallButton); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
586 updatesHeaderActionButtonLayout->addWidget(mQuitButton); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
587 updatesHeaderLayout->addLayout(updatesHeaderActionButtonLayout, 6, 0, 1, -1, Qt::AlignRight); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
588 updatesHeaderLayout->setRowMinimumHeight(7, 10); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
589 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
590 /* The central panels. */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
591 QScrollArea *centralScrollArea = new QScrollArea; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
592 QVBoxLayout *updatesCenterLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
593 QHBoxLayout *updatesNewLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
594 QHBoxLayout *updatesRemoveLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
595 QHBoxLayout *updatesManualLayout = new QHBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
596 mUpdatesNewCertificates = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
597 new QLabel("<h3>" + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
598 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
|
599 "</h3>"); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
600 mUpdatesDetailsNew = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
601 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
|
602 mUpdatesDetailsNew->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
603 mUpdatesDetailsNew->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
604 mUpdatesDetailsNew->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
605 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
606 connect(mUpdatesDetailsNew, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
607 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
608 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
609 SLOT(toggleUpdatesNew())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
610 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
|
611 updatesNewLayout->addWidget(mUpdatesDetailsNew); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
612 updatesNewLayout->addStretch(1); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
613 mUpdatesNew = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
614 connect(mUpdatesNew, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
615 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
616 mUpdatesNew->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
617 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
618 mUpdatesRemoveCertificates = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
619 new QLabel("<h3>" + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
620 tr("Remove revoked certificates (%1/%2)").arg(0).arg(0) + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
621 "</h3>"); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
622 mUpdatesDetailsRemove = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
623 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
|
624 mUpdatesDetailsRemove->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
625 mUpdatesDetailsRemove->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
626 mUpdatesDetailsRemove->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
627 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
628 connect(mUpdatesDetailsRemove, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
629 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
630 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
631 SLOT(toggleUpdatesRemove())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
632 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
|
633 updatesRemoveLayout->addWidget(mUpdatesDetailsRemove); |
746
d73f4e58d117
Add strecht also between remove button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
743
diff
changeset
|
634 updatesRemoveLayout->addStretch(1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
635 mUpdatesRemove = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
636 connect(mUpdatesRemove, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
637 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
638 mUpdatesRemove->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
639 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
640 mUpdatesManualCertificates = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
641 new QLabel("<h3>" + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
642 tr("Manually changed certificates (%1)").arg(0) + |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
643 "</h3>"); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
644 mUpdatesDetailsManual = new QPushButton(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
645 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
|
646 mUpdatesDetailsManual->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
647 mUpdatesDetailsManual->setStyleSheet("font-size: 10px;"); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
648 mUpdatesDetailsManual->setFixedHeight(22); |
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
649 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png")); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
650 connect(mUpdatesDetailsManual, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
651 SIGNAL(clicked()), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
652 this, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
653 SLOT(toggleUpdatesManual())); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
654 mUpdatesDetailsManual->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
655 mUpdatesManualCertificates->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
656 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
|
657 updatesManualLayout->addWidget(mUpdatesDetailsManual); |
747
b959304d6ecf
Also space away the manual details button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
746
diff
changeset
|
658 updatesManualLayout->addStretch(1); |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
659 mUpdatesManual = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
660 mUpdatesManual->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
661 connect(mUpdatesManual, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
662 this, SLOT(removeFromManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
663 connect(mUpdatesManual, SIGNAL(certListChanged(int)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
664 this, SLOT(listChanged(int))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
665 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
666 updatesNewLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
667 updatesRemoveLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
668 updatesManualLayout->setAlignment(Qt::AlignTop); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
669 updatesCenterLayout->addLayout(updatesNewLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
670 updatesCenterLayout->addWidget(mUpdatesNew); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
671 updatesCenterLayout->addLayout(updatesRemoveLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
672 updatesCenterLayout->addWidget(mUpdatesRemove); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
673 updatesCenterLayout->addLayout(updatesManualLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
674 updatesCenterLayout->addWidget(mUpdatesManual); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
675 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
676 QWidget *dummyWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
677 dummyWidget->setLayout(updatesCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
678 centralScrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
679 centralScrollArea->setWidget(dummyWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
680 centralScrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
681 centralScrollArea->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
682 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
683 updatesMainLayout->addLayout(updatesHeaderLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
684 updatesMainLayout->addWidget(centralScrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
685 updatesCenterLayout->addSpacerItem(new QSpacerItem(0, 0, |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
686 QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding)); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
687 theWidget->setLayout(updatesMainLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
688 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
689 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
690 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
691 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
692 QWidget *MainWindow::createInstallWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
693 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
694 QWidget *theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
695 QScrollArea *scrollArea = new QScrollArea; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
696 QVBoxLayout *installPanelLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
697 QVBoxLayout *installHeaderLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
698 QVBoxLayout *installCenterLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
699 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
700 QLabel *installHeaderLabel = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
701 new QLabel("<h2>" + tr("Trusted certificates") + "</h2>"); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
702 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
|
703 " 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
|
704 " authenticity, security and actuality of these certificates.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
705 installHeaderText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
706 installHeaderLayout->addWidget(installHeaderLabel); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
707 installHeaderLayout->addWidget(installHeaderText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
708 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
709 QLabel *installCenterText = new QLabel(tr("Please choose the certificates" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
710 " 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
|
711 " secure communication for email and internet.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
712 installCenterText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
713 installCenterLayout->addWidget(installCenterText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
714 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
715 installPanelLayout->addLayout(installHeaderLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
716 installPanelLayout->addLayout(installCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
717 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
718 mInstallList = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
719 connect(mInstallList, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
720 this, SLOT(toggleInManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
721 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
722 scrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
723 scrollArea->setWidget(mInstallList); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
724 scrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
725 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
726 installPanelLayout->addWidget(scrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
727 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
728 theWidget->setLayout(installPanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
729 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
730 return theWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
731 } |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
732 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
733 QWidget *MainWindow::createRemoveWidget() |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
734 { |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
735 QWidget * theWidget = new QWidget; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
736 QScrollArea *scrollArea = new QScrollArea; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
737 QVBoxLayout *removePanelLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
738 QVBoxLayout *removeHeaderLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
739 QVBoxLayout *removeCenterLayout = new QVBoxLayout; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
740 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
741 QLabel *removeHeaderLabel = |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
742 new QLabel("<h2>" + tr("Revoked certificates") + "</h2>"); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
743 QLabel *removeHeaderText = new QLabel(tr("Certificates can be corrupted" |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
744 " 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
|
745 " to remove all revoked certificates from your system.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
746 removeHeaderText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
747 removeHeaderLayout->addWidget(removeHeaderLabel); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
748 removeHeaderLayout->addWidget(removeHeaderText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
749 |
805 | 750 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
|
751 " revoked by the BSI. Already uninstalled certificates cannot be reinstalled." |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
752 " 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
|
753 " have revoked certificates installed.")); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
754 removeCenterText->setWordWrap(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
755 removeCenterLayout->addWidget(removeCenterText); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
756 mRemoveList = new CertificateListWidget(this); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
757 connect(mRemoveList, SIGNAL(certChanged(bool, const Certificate&)), |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
758 this, SLOT(toggleInManual(bool, const Certificate&))); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
759 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
760 removePanelLayout->addLayout(removeHeaderLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
761 removePanelLayout->addLayout(removeCenterLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
762 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
763 scrollArea->setWidgetResizable(true); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
764 scrollArea->setWidget(mRemoveList); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
765 scrollArea->setFrameShape(QFrame::NoFrame); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
766 removePanelLayout->addWidget(scrollArea); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
767 theWidget->setLayout(removePanelLayout); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
768 |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
769 return theWidget; |
739
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
770 } |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
771 |
5f0fca113ff4
Factor out Info Panel creation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
732
diff
changeset
|
772 void MainWindow::setupGUI() |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
773 { |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
774 // Create a central widget containing the main layout. |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
775 QWidget *base = new QWidget; |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
776 |
250
1e112cf41e92
Updated the mainwindow layout.
Raimund Renkert <rrenkert@intevation.de>
parents:
249
diff
changeset
|
777 // Layouts and Container |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
778 QVBoxLayout *mainLayout = new QVBoxLayout; |
205
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
779 QHBoxLayout *headerLayout = new QHBoxLayout; |
a3f542bf38f7
Added header for mainwindow.
Raimund Renkert <rrenkert@intevation.de>
parents:
200
diff
changeset
|
780 QVBoxLayout *headerTextLayout = new QVBoxLayout; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
781 QHBoxLayout *centerLayout = new QHBoxLayout; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
782 QVBoxLayout *buttonBarLayout = new QVBoxLayout; |
271
1ae15ea73850
Some GUI desing and layout changes.
Raimund Renkert <rrenkert@intevation.de>
parents:
267
diff
changeset
|
783 QHBoxLayout *bottomLayout = new QHBoxLayout; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
784 QHBoxLayout *containerLayout = new QHBoxLayout; |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
785 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
786 // The header (icon, about text) |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
787 QImage *logoImage = new QImage(":/img/logo.png"); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
788 QLabel *logo = new QLabel; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
789 logo->setBackgroundRole(QPalette::Base); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
790 logo->setPixmap(QPixmap::fromImage(*logoImage)); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
791 QLabel *title = new QLabel("<h1>" + QString::fromLatin1(APPNAME) + "</h1>"); |
689
6df31cb47d54
Updated translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
687
diff
changeset
|
792 QLabel *subTitle = new QLabel(tr("Trust in your digital communication")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
793 headerTextLayout->addWidget(title); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
794 headerTextLayout->addWidget(subTitle); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
795 headerLayout->addWidget(logo); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
796 headerLayout->addLayout(headerTextLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
797 headerLayout->setStretch(0, 0); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
798 headerLayout->setStretch(1, 10); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
799 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
800 /*********************************** |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
801 * The Buttonbar on the left side. |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
802 ***********************************/ |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
803 mButtonGroup = new QButtonGroup; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
804 |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
805 TextOverlayButton *updatesButton = new TextOverlayButton; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
806 updatesButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
807 updatesButton->setIcon(QIcon(":/img/view-refresh.png")); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
808 updatesButton->setIconSize(QSize(48, 48)); |
713
cdf8a924e480
(UI) Increase apply/quit button height. Updated translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
709
diff
changeset
|
809 updatesButton->setText(tr("Updates")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
810 updatesButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
811 updatesButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
812 updatesButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
813 updatesButton->setChecked(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
814 |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
815 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
|
816 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
|
817 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
818 QToolButton *allInstallButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
819 allInstallButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
820 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
|
821 allInstallButton->setIconSize(QSize(48, 48)); |
659
c7405d526ead
(UI) Updated English strings.
Emanuel Schuetze <emanuel@intevation.de>
parents:
657
diff
changeset
|
822 allInstallButton->setText(tr("Trusted\ncertificates")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
823 allInstallButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
824 allInstallButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
825 allInstallButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
826 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
827 QToolButton *allRemoveButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
828 allRemoveButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
673
e8bc1215904e
(UI) Changed some icons.
Emanuel Schuetze <emanuel@intevation.de>
parents:
669
diff
changeset
|
829 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
|
830 allRemoveButton->setIconSize(QSize(48, 48)); |
661
320a64d58e62
(UI) Updated English strings. Removed Issuer fields.
Emanuel Schuetze <emanuel@intevation.de>
parents:
659
diff
changeset
|
831 allRemoveButton->setText(tr("Revoked\ncertificates")); |
663
b00c26fbc695
(UI) linebreak and bigger buttons for German translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
661
diff
changeset
|
832 allRemoveButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
833 allRemoveButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
834 allRemoveButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
835 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
836 QToolButton *infoButton = new QToolButton; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
837 infoButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
838 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
|
839 infoButton->setIconSize(QSize(48, 48)); |
659
c7405d526ead
(UI) Updated English strings.
Emanuel Schuetze <emanuel@intevation.de>
parents:
657
diff
changeset
|
840 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
|
841 infoButton->setFixedWidth(120); |
732
d39b5b65366e
(UI) Updated png icons in correct sizes.
Emanuel Schuetze <emanuel@intevation.de>
parents:
722
diff
changeset
|
842 infoButton->setFixedHeight(90); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
843 infoButton->setCheckable(true); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
844 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
845 mButtonGroup->addButton(updatesButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
846 mButtonGroup->addButton(allInstallButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
847 mButtonGroup->addButton(allRemoveButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
848 mButtonGroup->addButton(infoButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
849 mButtonGroup->setId(updatesButton, 0); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
850 mButtonGroup->setId(allInstallButton, 1); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
851 mButtonGroup->setId(allRemoveButton, 2); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
852 mButtonGroup->setId(infoButton, 3); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
853 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
854 connect(mButtonGroup, SIGNAL(buttonClicked(int)), |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
855 this, SLOT(togglePages(int))); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
856 buttonBarLayout->addWidget(updatesButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
857 buttonBarLayout->addWidget(allInstallButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
858 buttonBarLayout->addWidget(allRemoveButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
859 buttonBarLayout->insertStretch(3, 10); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
860 buttonBarLayout->addWidget(infoButton); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
861 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
862 /* The main pages.*/ |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
863 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
864 /* The updates page. */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
865 mUpdatesWidget = createUpdatesWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
866 |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
867 /* Install (trusted certs) Page */ |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
868 mInstallWidget = createInstallWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
869 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
870 /********************************** |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
871 * Page for certificates to be removed. |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
872 **********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
873 mRemoveWidget = createRemoveWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
874 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
875 /********************************** |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
876 * The info page. |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
877 **********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
878 mInfoWidget = createInfoWidget(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
879 |
652
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
880 /******************************** |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
881 * The main layout for pages. |
f65503c1833b
Updated mainwindow layout and removed obsolete code.
Raimund Renkert <rrenkert@intevation.de>
parents:
643
diff
changeset
|
882 ********************************/ |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
883 mInstallWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
884 mRemoveWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
885 mInfoWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
886 containerLayout->addWidget(mUpdatesWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
887 containerLayout->addWidget(mInstallWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
888 containerLayout->addWidget(mRemoveWidget); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
889 containerLayout->addWidget(mInfoWidget); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
890 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
891 centerLayout->addLayout(buttonBarLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
892 centerLayout->addLayout(containerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
893 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
894 mainLayout->addLayout(headerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
895 mainLayout->addLayout(centerLayout); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
896 mainLayout->addLayout(bottomLayout); |
187
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
897 base->setLayout(mainLayout); |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
898 setCentralWidget(base); |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
899 } |
0c06a608e15f
Create the mainwindow content.
Raimund Renkert <rrenkert@intevation.de>
parents:
155
diff
changeset
|
900 |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
901 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
|
902 { |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
903 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
|
904 setChangeCount(mUpdatesRemove->selectedCertCount() + |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
905 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
|
906 |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
907 /* 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
|
908 * changes available */ |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
909 if (changeCount() && !mUpdatesManual->certificates().size()) { |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
910 mUpdatesTip->setText( |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
911 tr("You should apply the following, recommended changes to your certificate stores.")); |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
912 } else if (changeCount()) { |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
913 mUpdatesTip->setText( |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
914 tr("You can apply the following, changes to your certificate stores.")); |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
915 } else { |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
916 mUpdatesTip->setText( |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
917 tr("There are currently no changes for your certificate stores.")); |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
918 } |
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
919 |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
920 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
|
921 /* No changes */ |
702
9dea3d895f53
(Issue22) Add a space between button icon and text.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
696
diff
changeset
|
922 mQuitButton->setText(" " + tr("Quit")); |
696
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
923 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
|
924 "</h2>"); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
925 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
|
926 } else { |
702
9dea3d895f53
(Issue22) Add a space between button icon and text.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
696
diff
changeset
|
927 mQuitButton->setText(" " + tr("Quit without saving")); |
713
cdf8a924e480
(UI) Increase apply/quit button height. Updated translations.
Emanuel Schuetze <emanuel@intevation.de>
parents:
709
diff
changeset
|
928 mUpdatesHeader->setText("<h2>" + tr("Changes to certificate stores (%1)") |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
929 .arg(changeCount()) + |
696
55f78c4166fb
(Issue32) Change Updates to Changes and track changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
694
diff
changeset
|
930 "</h2>"); |
718
e7a070e64b80
(Issue26) Make updates tip and install button depend on changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
717
diff
changeset
|
931 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
|
932 } |
0fc1a20adaff
(Issue 27) Change Quit button text depending on changes or no changes.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
692
diff
changeset
|
933 |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
934 if (mUpdatesManual->certificates().size()) { |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
935 mUpdatesDetailsManual->show(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
936 mUpdatesDetailsManual->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
|
937 mUpdatesDetailsManual->setToolTip(tr("Show details")); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
938 mUpdatesManualCertificates->show(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
939 } else { |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
940 mUpdatesDetailsManual->hide(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
941 mUpdatesManualCertificates->hide(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
942 mUpdatesManual->hide(); |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
943 } |
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
944 |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
945 if (mUpdatesNew->certificates().size()) { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
946 mUpdatesNewCertificates->setText("<h3>" + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
947 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
|
948 .arg(mUpdatesNew->selectedCertCount()) |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
949 .arg(mUpdatesNew->certificates().size()) + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
950 "</h3>"); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
951 mUpdatesDetailsNew->show(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
952 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
|
953 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
|
954 mUpdatesNewCertificates->show(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
955 } else { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
956 mUpdatesDetailsNew->hide(); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
957 mUpdatesNew->hide(); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
958 mUpdatesNewCertificates->hide(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
959 } |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
960 |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
961 if (mUpdatesRemove->certificates().size()) { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
962 mUpdatesRemoveCertificates->setText("<h3>" + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
963 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
|
964 .arg(mUpdatesRemove->selectedCertCount()) |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
965 .arg(mUpdatesRemove->certificates().size()) + |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
966 "</h3>"); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
967 mUpdatesRemoveCertificates->show(); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
968 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
|
969 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
|
970 mUpdatesDetailsRemove->show(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
971 } else { |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
972 mUpdatesRemoveCertificates->hide(); |
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
973 mUpdatesDetailsRemove->hide(); |
719
49bf73b5c7de
(Issue34) Show / hide details area depending on available changes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
718
diff
changeset
|
974 mUpdatesRemove->hide(); |
717
77c9c2dfc8ac
(Issue26) Hide update lists if no updates are available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
716
diff
changeset
|
975 } |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
976 } |
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
977 |
189
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
978 void MainWindow::loadCertificateList() |
5f0d45ca9de4
Show certificates in the list view and details in the textfield.
Raimund Renkert <rrenkert@intevation.de>
parents:
187
diff
changeset
|
979 { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
980 /* TODO: if nothing is available (neither old nor new) add some progress |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
981 * indication */ |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
982 mInstallList->clear(); |
684
69def231f5ac
(issue28) clear manual updates after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
673
diff
changeset
|
983 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
|
984 mUpdatesNew->clear(); |
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
985 mUpdatesRemove->clear(); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
986 QList<Certificate> newInstallCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
987 QList<Certificate> newRemoveCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
988 QList<Certificate> oldInstallCerts; |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
989 QList<Certificate> oldRemoveCerts; |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
990 |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
991 if (mListToInstall.getCertificates().isEmpty()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
992 // 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
|
993 foreach (const Certificate &cert, mInstalledList.getCertificates()) { |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
994 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
|
995 if (cert.isInstallCert()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
996 oldInstallCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
997 mInstallList->addCertificate(cert, state); |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
998 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
999 else { |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1000 oldRemoveCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1001 mRemoveList->addCertificate(cert, state, !state); |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1002 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1003 } |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1004 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1005 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1006 // 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
|
1007 foreach (const Certificate &cert, mListToInstall.getCertificates()) { |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1008 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
|
1009 if (cert.isInstallCert()) { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1010 // Certificate with status "install". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1011 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
|
1012 // 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
|
1013 oldInstallCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1014 mInstallList->addCertificate(cert, state); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1015 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1016 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1017 // 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
|
1018 newInstallCerts.append(cert); |
687
973a7ce19658
(issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents:
684
diff
changeset
|
1019 mUpdatesNew->addCertificate(cert, state, true, |
973a7ce19658
(issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents:
684
diff
changeset
|
1020 tr("install"), tr("ignore")); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1021 } |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1022 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1023 else { |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1024 // Certificate with status "remove". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1025 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
|
1026 // 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
|
1027 oldRemoveCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1028 // Is removed, so set editable to false. |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1029 mRemoveList->addCertificate(cert, state, !state); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1030 } |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1031 else { |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1032 // 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
|
1033 // status "remove". |
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1034 newRemoveCerts.append(cert); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1035 mUpdatesRemove->addCertificate(cert, state); |
445
b3721ded6f5b
Sort and filter the certificate list, changed certificate item roles.
Raimund Renkert <rrenkert@intevation.de>
parents:
437
diff
changeset
|
1036 } |
267
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1037 } |
89e8783866f8
Use the certificate item delegate in the mainwind list view.
Raimund Renkert <rrenkert@intevation.de>
parents:
265
diff
changeset
|
1038 } |
691
315103410002
(Issue 32) Move updates header text generation out of update avialable block
Andre Heinecke <andre.heinecke@intevation.de>
parents:
690
diff
changeset
|
1039 } |
692
3791a277f00b
Remove code duplication and calculate headers only in listchanged
Andre Heinecke <andre.heinecke@intevation.de>
parents:
691
diff
changeset
|
1040 |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1041 if (mInstalledList.date().isValid()) { |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1042 mLastCertUpdateContents->setText(QLocale::system().toString(mInstalledList.date().toLocalTime(), |
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1043 DATETIME_FORMAT)); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1044 mLastCertUpdate->show(); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1045 mLastCertUpdateContents->show(); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1046 } |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1047 mUpdatesManualCertificates->setText("<h3>" + |
659
c7405d526ead
(UI) Updated English strings.
Emanuel Schuetze <emanuel@intevation.de>
parents:
657
diff
changeset
|
1048 tr("Manually changed certificates (%1)").arg(0) + |
628
3a9c0f38bbad
Made certificate lists member of mainwindow and added some temporary debug msgs.
Raimund Renkert <rrenkert@intevation.de>
parents:
584
diff
changeset
|
1049 "</h3>"); |
692
3791a277f00b
Remove code duplication and calculate headers only in listchanged
Andre Heinecke <andre.heinecke@intevation.de>
parents:
691
diff
changeset
|
1050 listChanged(0); |
271
1ae15ea73850
Some GUI desing and layout changes.
Raimund Renkert <rrenkert@intevation.de>
parents:
267
diff
changeset
|
1051 } |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1052 |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1053 void MainWindow::installerError(const QString& errMsg) { |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1054 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
|
1055 } |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1056 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1057 void MainWindow::installerSuccess() { |
819
a2e891b13e68
(issue67) also register list installation if software update is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
812
diff
changeset
|
1058 if (mCurState == NewListAvailable || mCurState == NewSoftwareAvailable) { |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1059 mCurState = NothingChanged; |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1060 mCurMessage = QString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1061 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1062 QString listFileName = mSettings.value("List/available").toString(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1063 QDateTime listFileDate = mSettings.value("List/availableDate").toDateTime(); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1064 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1065 mSettings.remove("List/available"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1066 mSettings.remove("List/availableDate"); |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1067 |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1068 if (listFileName.isEmpty() || !listFileDate.isValid()) { |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1069 qWarning() << "Error accessing settings"; |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1070 return; /* Try again with next check */ |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1071 } |
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
|
1072 /* 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
|
1073 * 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
|
1074 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
|
1075 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
|
1076 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
|
1077 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
|
1078 /* 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
|
1079 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
|
1080 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
|
1081 } |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1082 |
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
|
1083 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
|
1084 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
|
1085 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
|
1086 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
|
1087 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
|
1088 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
|
1089 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1090 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1091 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
|
1092 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
|
1093 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
|
1094 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
|
1095 } |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1096 |
9bab4fc3a1fe
Delete old lists and rename the currently installed list to list-installed.txt
Andre Heinecke <andre.heinecke@intevation.de>
parents:
845
diff
changeset
|
1097 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
|
1098 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
|
1099 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
|
1100 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
|
1101 /* 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
|
1102 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
|
1103 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
|
1104 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
|
1105 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
|
1106 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
|
1107 } |
480
242f2bf5417e
Update the certificate list after installing certificates.
Raimund Renkert <rrenkert@intevation.de>
parents:
479
diff
changeset
|
1108 mListToInstall = CertificateList(); |
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
|
1109 |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1110 } |
684
69def231f5ac
(issue28) clear manual updates after installation.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
673
diff
changeset
|
1111 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
|
1112 loadCertificateList(); |
389
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1113 } |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1114 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1115 void MainWindow::installCerts() { |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1116 QStringList choices; |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1117 QStringList unselected; |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1118 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1119 choices << mUpdatesNew->selectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1120 choices << mUpdatesRemove->selectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1121 |
669
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1122 choices << mUpdatesManual->selectedCertificates(); |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1123 |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1124 /* 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
|
1125 choices << mInstallList->selectedCertificates(); |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1126 choices << mRemoveList->selectedCertificates(); |
7147550ee15d
Always include previous certificates in choices for the installer
Andre Heinecke <andre.heinecke@intevation.de>
parents:
664
diff
changeset
|
1127 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1128 QStringList unselectedManuals = mUpdatesManual->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1129 for(int i = 0; i < unselectedManuals.size(); i++) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1130 if (unselectedManuals.at(i).startsWith("I:")) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1131 QString certLine = unselectedManuals.at(i); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1132 certLine[0] = 'R'; |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1133 choices << certLine; |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1134 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1135 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1136 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1137 unselected << mUpdatesNew->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1138 unselected << mUpdatesRemove->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1139 unselected << mInstallList->unselectedCertificates(); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1140 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
|
1141 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1142 QProgressDialog *progress = new QProgressDialog(this); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1143 progress->setWindowModality(Qt::WindowModal); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1144 progress->setLabelText(tr("Installing certificates...")); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1145 progress->setCancelButton(0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1146 progress->setRange(0,0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1147 progress->setMinimumDuration(0); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1148 progress->show(); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1149 |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1150 InstallWrapper *instWrap = new InstallWrapper(this, |
393
ae2ef965a41b
Provide installer with old list in case there are no news
Andre Heinecke <andre.heinecke@intevation.de>
parents:
389
diff
changeset
|
1151 mListToInstall.isValid() ? |
ae2ef965a41b
Provide installer with old list in case there are no news
Andre Heinecke <andre.heinecke@intevation.de>
parents:
389
diff
changeset
|
1152 mListToInstall.fileName() : |
ae2ef965a41b
Provide installer with old list in case there are no news
Andre Heinecke <andre.heinecke@intevation.de>
parents:
389
diff
changeset
|
1153 mInstalledList.fileName(), |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1154 choices); |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1155 /* Clean up object and progress dialog */ |
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1156 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
|
1157 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
|
1158 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
|
1159 connect(instWrap, SIGNAL(installationSuccessful()), |
3be838c3e4d8
Handle installation success. Save / load last installed list.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
375
diff
changeset
|
1160 this, SLOT(installerSuccess())); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1161 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
|
1162 this, SLOT(installerError(const QString &))); |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1163 instWrap->start(); |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1164 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1165 if (!saveUnselectedCertificates(unselected)) { |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1166 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
|
1167 } |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1168 |
365
75f7288ad67b
Switch from listupdatedialog to installwrapper. Minor UI improvements
Andre Heinecke <aheinecke@intevation.de>
parents:
274
diff
changeset
|
1169 } |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1170 |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1171 void MainWindow::loadUnselectedCertificates() |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1172 { |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1173 mPreviouslyUnselected.clear(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1174 mSettings.beginGroup("unselected"); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1175 QStringList keys = mSettings.allKeys(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1176 foreach (const QString &key, keys) { |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1177 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
|
1178 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1179 mSettings.endGroup(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1180 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1181 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1182 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
|
1183 { |
479
a8d56a2846a8
Fill the internal list of previously unselcted certificates when saving in settings.
Raimund Renkert <rrenkert@intevation.de>
parents:
461
diff
changeset
|
1184 mPreviouslyUnselected.clear(); |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1185 mSettings.beginGroup("unselected"); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1186 mSettings.remove(""); /* Clears old choices */ |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1187 for (int i = 0; i < unselected.size(); i++) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1188 QString key = QString::fromLatin1("cert%1").arg(i); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1189 QString value = unselected.at(i); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1190 mSettings.setValue(key, value); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1191 mPreviouslyUnselected << value; |
372
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1192 } |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1193 mSettings.endGroup(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1194 mSettings.sync(); |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1195 return mSettings.status() == QSettings::NoError; |
6cc124e79066
Add save/load unselected and add role enumerator
Andre Heinecke <andre.heinecke@intevation.de>
parents:
365
diff
changeset
|
1196 } |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1197 |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1198 void MainWindow::toggleInManual(bool state, const Certificate &cert) |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1199 { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1200 if (!mUpdatesManual->contains(cert)) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1201 mUpdatesManual->addCertificate(cert, state); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1202 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1203 else { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1204 mUpdatesManual->removeCertificate(cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1205 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1206 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1207 mUpdatesManualCertificates->setText("<h3>" + |
661
320a64d58e62
(UI) Updated English strings. Removed Issuer fields.
Emanuel Schuetze <emanuel@intevation.de>
parents:
659
diff
changeset
|
1208 tr("Manually changed certificates (%1)") |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1209 .arg(mUpdatesManual->certificates().size()) + |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1210 "</h3>"); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1211 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1212 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1213 void MainWindow::removeFromManual(bool state, const Certificate &cert) |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1214 { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1215 mUpdatesManual->removeCertificate(cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1216 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1217 mUpdatesManualCertificates->setText("<h3>" + |
661
320a64d58e62
(UI) Updated English strings. Removed Issuer fields.
Emanuel Schuetze <emanuel@intevation.de>
parents:
659
diff
changeset
|
1218 tr("Manually changed certificates (%1)") |
640
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1219 .arg(mUpdatesManual->certificates().size()) + |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1220 "</h3>"); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1221 |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1222 if (cert.isInstallCert()) { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1223 mInstallList->setCertState(state, cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1224 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1225 else { |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1226 mRemoveList->setCertState(state, cert); |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1227 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1228 } |
626507197360
Updated mainwindow and handle certificate lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
628
diff
changeset
|
1229 |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1230 void MainWindow::closeApp() |
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1231 { |
782
20ca94680003
Implemented detection of running instance on linux using a lock file.
Sascha Wilde <wilde@intevation.de>
parents:
754
diff
changeset
|
1232 ProcessHelp::cleanUp(); |
447
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1233 qApp->quit(); |
b1b14daf2116
Save the select state of certificate items when closing the app.
Raimund Renkert <rrenkert@intevation.de>
parents:
446
diff
changeset
|
1234 } |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1235 |
609
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1236 void MainWindow::checkAndInstallCerts() |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1237 { |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1238 /* 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
|
1239 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
|
1240 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
|
1241 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1242 if (pids.isEmpty()) { |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1243 installCerts(); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1244 return; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1245 } |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1246 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1247 QStringList pNames; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1248 pNames << "firefox" << "thunderbird"; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1249 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1250 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
|
1251 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1252 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
|
1253 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
|
1254 |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1255 waitDialog->exec(); |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1256 return; |
292c590ba9cb
Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents:
607
diff
changeset
|
1257 } |
654
129e611eaf50
Merge branch trustbridge-refactor
Andre Heinecke <andre.heinecke@intevation.de>
diff
changeset
|
1258 |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1259 void MainWindow::togglePages(int button) |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1260 { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1261 mUpdatesWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1262 mInstallWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1263 mRemoveWidget->hide(); |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1264 mInfoWidget->hide(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1265 switch(button) { |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1266 case 0: mUpdatesWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1267 case 1: mInstallWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1268 case 2: mRemoveWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1269 case 3: mInfoWidget->show(); break; |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
740
diff
changeset
|
1270 default: mUpdatesWidget->show(); break; |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1271 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1272 return; |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1273 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1274 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1275 void MainWindow::toggleUpdatesNew() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1276 if (!mUpdatesNew->isVisible()) { |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1277 mUpdatesDetailsNew->setToolTip(tr("Hide details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1278 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_grey_16px.png")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1279 mUpdatesNew->show(); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1280 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1281 else { |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1282 mUpdatesNew->hide(); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1283 mUpdatesDetailsNew->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1284 mUpdatesDetailsNew->setIcon(QIcon(":/img/dialog-information_16px.png")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1285 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1286 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1287 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1288 void MainWindow::toggleUpdatesRemove() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1289 if (!mUpdatesRemove->isVisible()) { |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1290 mUpdatesDetailsRemove->setToolTip(tr("Hide details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1291 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_grey_16px.png")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1292 mUpdatesRemove->show(); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1293 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1294 else { |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1295 mUpdatesRemove->hide(); |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1296 mUpdatesDetailsRemove->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1297 mUpdatesDetailsRemove->setIcon(QIcon(":/img/dialog-information_16px.png")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1298 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1299 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1300 |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1301 void MainWindow::toggleUpdatesManual() { |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1302 if (!mUpdatesManual->isVisible()) { |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1303 mUpdatesDetailsManual->setToolTip(tr("Hide details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1304 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_grey_16px.png")); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1305 mUpdatesManual->show(); |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1306 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1307 else { |
790
399bc0df073d
(issue60) Make windows smaller and change details buttons to icon only
Andre Heinecke <andre.heinecke@intevation.de>
parents:
787
diff
changeset
|
1308 mUpdatesDetailsManual->setToolTip(tr("Show details")); |
845
d33834129d2a
(issue59) Improve details button.
Emanuel Schuetze <emanuel@intevation.de>
parents:
844
diff
changeset
|
1309 mUpdatesDetailsManual->setIcon(QIcon(":/img/dialog-information_16px.png")); |
653
39f03316f675
Change button text when toggling details and select the first list item.
Raimund Renkert <rrenkert@intevation.de>
parents:
652
diff
changeset
|
1310 mUpdatesManual->hide(); |
584
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1311 } |
ebfe1128ee97
Started trustbridge mainwindow refactoring.
Raimund Renkert <rrenkert@intevation.de>
parents:
563
diff
changeset
|
1312 } |
690
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1313 |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1314 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
|
1315 { |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1316 if (getState() == NewListAvailable) { |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1317 /* 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
|
1318 QMainWindow::closeEvent(event); |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1319 return; |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1320 } |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1321 return closeApp(); |
e4abb41484a0
(issue 27)Only close if no new list is available
Andre Heinecke <andre.heinecke@intevation.de>
parents:
689
diff
changeset
|
1322 } |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1323 |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1324 void MainWindow::updateCheckSuccess() |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1325 { |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1326 if (getState() != TransferError) { |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1327 const QDateTime now = QDateTime::currentDateTime(); |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1328 mSettings.setValue("lastUpdateCheck", now); |
754
27043d74dc90
(Issue25) Align header contents in their own column.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
748
diff
changeset
|
1329 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
|
1330 mLastUpdateCheckContents->show(); |
708
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1331 mLastUpdateCheck->show(); |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1332 syslog_info_printf(tr("Sucessfully checked for updates.").toUtf8().constData()); |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1333 } |
bd48fae793b6
(Issue25) Log update check success, change header labels.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
703
diff
changeset
|
1334 } |
716
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1335 |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1336 int MainWindow::changeCount() |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1337 { |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1338 return mChangeCount; |
929c3db85eb7
Add central place to obtain current change count.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
714
diff
changeset
|
1339 } |
722
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1340 |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1341 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
|
1342 { |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1343 if (mChangeCount != cnt) { |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1344 mChangeCount = cnt; |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1345 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
|
1346 } |
b0929968562a
(Issue31) Add textoverlaybutton to show a text in the button.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
719
diff
changeset
|
1347 } |