annotate ui/certificateitemwidget.cpp @ 1369:948f03bb5254

Add signature time extraction for Linux and test for it in binverifytest
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 24 Nov 2014 14:43:10 +0100
parents 9017c524e762
children
rev   line source
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 *
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=2)
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY!
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 * See LICENSE.txt for details.
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 */
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 #include "certificateitemwidget.h"
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 #include <QHBoxLayout>
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 #include <QDebug>
701
31c3d2bc9880 (Issue22) Fix painting problems with fixed size in windows style.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 687
diff changeset
12 #include <QStyleFactory>
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
13 #include <QToolButton>
1234
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
14 #include <QSignalBlocker>
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
15 #include <QPushButton>
1297
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
16 #include <QMessageBox>
1234
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
17
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
18 void CheckLessToolBtn::paintEvent(QPaintEvent * pe) {
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
19
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
20 /* Hack to always paint the button as if it were
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
21 * not checked. */
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
22 bool oldchecked = isChecked();
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
23 QIcon oldIcon = icon();
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
24 QIcon tmpIcon;
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
25 if (isEnabled())
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
26 tmpIcon = QIcon(oldIcon.pixmap(QSize(48, 48), QIcon::Normal, oldchecked ? QIcon::On : QIcon::Off));
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
27 else {
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
28 tmpIcon = QIcon(oldIcon.pixmap(QSize(48, 48), QIcon::Disabled, oldchecked ? QIcon::On : QIcon::Off));
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
29 }
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
30 QSignalBlocker blk(this);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
31 setChecked(false);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
32 setIcon(tmpIcon);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
33 QToolButton::paintEvent(pe);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
34 setIcon(oldIcon);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
35 setChecked(oldchecked);
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
36 }
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37
687
973a7ce19658 (issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents: 685
diff changeset
38 CertificateItemWidget::CertificateItemWidget(QWidget *parent,
973a7ce19658 (issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents: 685
diff changeset
39 const Certificate &cert,
973a7ce19658 (issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents: 685
diff changeset
40 bool state,
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
41 QToolButton *btn) :
687
973a7ce19658 (issue24) Let the string for install / remove be set for each item individually
Andre Heinecke <andre.heinecke@intevation.de>
parents: 685
diff changeset
42 QWidget(parent),
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
43 mButton(btn)
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 {
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 mCertificate = cert;
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
46 mOriginalState = state;
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
47 btn->setCheckable(true);
1234
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
48 /* btn->setStyleSheet("QToolButton:Checked{"
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
49 "border: 1px solid #8f8f91;"
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
50 "background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,"
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
51 "stop: 0 #f6f7fa, stop: 1 #dadbde);"
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
52 "}"
1234
ad4fc3649ffb (issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1109
diff changeset
53 );*/
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
54 setState(state);
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 setupGUI();
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 }
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 void CertificateItemWidget::setupGUI()
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 {
786
4eff77851e76 Use minimum size for certificates to avoid scaling in small lists.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 780
diff changeset
60 setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
4eff77851e76 Use minimum size for certificates to avoid scaling in small lists.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 780
diff changeset
61
842
bd33c6585cd0 UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents: 839
diff changeset
62 const QString validity = tr("Validity: %1 until %2").arg(
743
a467204a35f5 Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 710
diff changeset
63 QLocale::system().toString(mCertificate.validFrom().date(), QLocale::ShortFormat)).arg(
a467204a35f5 Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 710
diff changeset
64 QLocale::system().toString(mCertificate.validTo().date(), QLocale::ShortFormat));
842
bd33c6585cd0 UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents: 839
diff changeset
65 const QString fpstring = tr("Fingerprint (SHA1): <code>%1</code>").arg(mCertificate.fingerprint());
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
66
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
67 QVBoxLayout *labelLayout = new QVBoxLayout;
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
68 QLabel *firstLabel = new QLabel(QString::fromLatin1("<big><b>%1</b></big> ").arg
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
69 (mCertificate.subjectCN()));
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
70
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
71 QHBoxLayout *firstLabelButtonLayout = new QHBoxLayout;
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
72 firstLabelButtonLayout->addWidget(firstLabel);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
73 QPushButton *detailsBtn = new QPushButton;
1298
9017c524e762 (issue123) Use document preview icon
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1297
diff changeset
74 detailsBtn->setIcon(QIcon(":/img/document-preview.png"));
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
75 detailsBtn->setToolTip(tr("Open the Windows certificate information dialog."));
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
76
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
77 firstLabelButtonLayout->addWidget(detailsBtn);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
78 firstLabelButtonLayout->addStretch(-1);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
79 connect(detailsBtn, SIGNAL(clicked()), this, SLOT(showCertDlg()));
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
80 labelLayout->addLayout(firstLabelButtonLayout);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
81 QLabel *secondLabel = new QLabel(QString::fromLatin1("%2<br/>%3<br/>%4").arg
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
82 (mCertificate.subjectO()).arg(validity).arg
743
a467204a35f5 Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 710
diff changeset
83 (fpstring));
701
31c3d2bc9880 (Issue22) Fix painting problems with fixed size in windows style.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 687
diff changeset
84
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
85 labelLayout->addWidget(secondLabel);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
86 secondLabel->setTextFormat(Qt::RichText);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
87 secondLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
780
9f13c00a2647 Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents: 744
diff changeset
88
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
89 secondLabel->setTextInteractionFlags(
780
9f13c00a2647 Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents: 744
diff changeset
90 Qt::TextSelectableByMouse |
9f13c00a2647 Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents: 744
diff changeset
91 Qt::TextSelectableByKeyboard);
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
92 firstLabel->setTextFormat(Qt::RichText);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
93 firstLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
94
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
95 firstLabel->setTextInteractionFlags(
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
96 Qt::TextSelectableByMouse |
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
97 Qt::TextSelectableByKeyboard);
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
98 mButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
99 connect(mButton, SIGNAL(toggled (bool)),
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
100 this, SLOT(currentStateChanged(bool)));
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
101
638
9d806f140bd5 Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents: 627
diff changeset
102 QHBoxLayout *layout = new QHBoxLayout;
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
103 layout->addWidget(mButton);
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
104 mButton->setFixedSize(64, 64);
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
105 mButton->setIconSize(QSize(48, 48));
1293
d2b32c75efcf (issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1288
diff changeset
106 layout->addLayout(labelLayout);
582
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
107 this->setLayout(layout);
88c9bdc74175 New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
108 }
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
109
1288
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
110 void CertificateItemWidget::showCertDlg()
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
111 {
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
112 /* This is a totally evil cast but legitimate on Windows
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
113 * HANDLES are only 32 bit even on Windows 64 bit */
1297
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
114 if (!mCertificate.showNativeUI((void*)effectiveWinId())) {
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
115 qDebug() << "Failed to show native dialog";
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
116 #ifdef WIN32
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
117 // maybe old windows version
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
118 QMessageBox::warning(this, tr("TrustBridge error"), tr("Failed to open native viewer."));
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
119 #else
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
120 QMessageBox::warning(this, tr("TrustBridge error"), tr("Failed to open 'gcr-viewer'.") + "\n" +
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
121 tr("TrustBridge uses 'gcr-viewer' to show certificate details. Please ensure that 'gcr-viewer' is installed."));
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
122 #endif
c2fd36cd4093 (issue123) Use gcr-viewer to view certificate details on Linux
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1293
diff changeset
123 }
1288
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
124 return;
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
125 }
265583011f24 (issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1234
diff changeset
126
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
127 bool CertificateItemWidget::state()
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
128 {
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
129 if (!mButton->isEnabled()) {
685
248d4f24e618 (Issue 29) Uneditable items are always selected
Andre Heinecke <andre.heinecke@intevation.de>
parents: 659
diff changeset
130 return true;
248d4f24e618 (Issue 29) Uneditable items are always selected
Andre Heinecke <andre.heinecke@intevation.de>
parents: 659
diff changeset
131 }
701
31c3d2bc9880 (Issue22) Fix painting problems with fixed size in windows style.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 687
diff changeset
132
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
133 return !mButton->isChecked();
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
134 }
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
135
638
9d806f140bd5 Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents: 627
diff changeset
136 void CertificateItemWidget::setState(bool state)
9d806f140bd5 Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents: 627
diff changeset
137 {
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
138 /* The internal state we get here is inverted for Ui reasons the logic
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
139 * is if a certificate is selected for installation the button
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
140 * is disabled (as this is the default) Only those that are
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
141 * unselected have the enabled button. */
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
142 mButton->blockSignals(true); // code did this and not the user
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
143 mButton->setChecked(!state);
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
144 mButton->blockSignals(false);
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
145 if (mButton->isEnabled()) {
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
146 mButton->setToolTip(mButton->property(!state ? "ToolTip_On" :
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
147 "ToolTip_Off").toString());
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
148 }
638
9d806f140bd5 Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents: 627
diff changeset
149 }
9d806f140bd5 Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents: 627
diff changeset
150
1108
9bb9932bb819 Revert commit 1101 the inactive manual changes were a bad idea
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1106
diff changeset
151 Certificate CertificateItemWidget::certificate()
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
152 {
1108
9bb9932bb819 Revert commit 1101 the inactive manual changes were a bad idea
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1106
diff changeset
153 return mCertificate;
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
154 }
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
155
1106
6f7b7d88f048 (issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1101
diff changeset
156 void CertificateItemWidget::currentStateChanged(bool state)
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
157 {
1109
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
158 mButton->setToolTip(mButton->property(state ? "ToolTip_On" :
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
159 "ToolTip_Off").toString());
6594e8e63a25 (issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1108
diff changeset
160 emit stateChanged(state, mCertificate);
627
566ee111e331 Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents: 582
diff changeset
161 }

http://wald.intevation.org/projects/trustbridge/