Mercurial > trustbridge
annotate ui/certificateitemwidget.cpp @ 1295:a984296d2c00
Added new icon for certificate preview (document-preview).
author | Emanuel Schuetze <emanuel@intevation.de> |
---|---|
date | Mon, 29 Sep 2014 16:08:38 +0200 |
parents | d2b32c75efcf |
children | c2fd36cd4093 |
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> |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
16 |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
17 void CheckLessToolBtn::paintEvent(QPaintEvent * pe) { |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
18 |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
19 /* 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
|
20 * not checked. */ |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
21 bool oldchecked = isChecked(); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
22 QIcon oldIcon = icon(); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
23 QIcon tmpIcon; |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
24 if (isEnabled()) |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
25 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
|
26 else { |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
27 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
|
28 } |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
29 QSignalBlocker blk(this); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
30 setChecked(false); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
31 setIcon(tmpIcon); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
32 QToolButton::paintEvent(pe); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
33 setIcon(oldIcon); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
34 setChecked(oldchecked); |
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
35 } |
582
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 |
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
|
37 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
|
38 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
|
39 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
|
40 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
|
41 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
|
42 mButton(btn) |
582
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 { |
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 mCertificate = cert; |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
45 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
|
46 btn->setCheckable(true); |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
47 /* btn->setStyleSheet("QToolButton:Checked{" |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
48 "border: 1px solid #8f8f91;" |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
49 "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
|
50 "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
|
51 "}" |
1234
ad4fc3649ffb
(issue146) Always draw certificate item buttons as unchecked
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1109
diff
changeset
|
52 );*/ |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
53 setState(state); |
582
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 setupGUI(); |
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 } |
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 void CertificateItemWidget::setupGUI() |
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 { |
786
4eff77851e76
Use minimum size for certificates to avoid scaling in small lists.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
780
diff
changeset
|
59 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
|
60 |
842
bd33c6585cd0
UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents:
839
diff
changeset
|
61 const QString validity = tr("Validity: %1 until %2").arg( |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
710
diff
changeset
|
62 QLocale::system().toString(mCertificate.validFrom().date(), QLocale::ShortFormat)).arg( |
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
710
diff
changeset
|
63 QLocale::system().toString(mCertificate.validTo().date(), QLocale::ShortFormat)); |
842
bd33c6585cd0
UI improvements (issue18, 60)
Emanuel Schuetze <emanuel@intevation.de>
parents:
839
diff
changeset
|
64 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
|
65 |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
66 QVBoxLayout *labelLayout = new QVBoxLayout; |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
67 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
|
68 (mCertificate.subjectCN())); |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
69 |
1288
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
70 #ifdef Q_OS_WIN |
1293
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; |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
74 detailsBtn->setIcon(QIcon(":/img/preferences-network_16.png")); // TODO |
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); |
1288
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
81 #else |
1293
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
82 labelLayout->addWidget(firstLabel); |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
83 #endif |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
84 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
|
85 (mCertificate.subjectO()).arg(validity).arg |
743
a467204a35f5
Rework User Interface.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
710
diff
changeset
|
86 (fpstring)); |
701
31c3d2bc9880
(Issue22) Fix painting problems with fixed size in windows style.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
687
diff
changeset
|
87 |
1293
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
88 labelLayout->addWidget(secondLabel); |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
89 secondLabel->setTextFormat(Qt::RichText); |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
90 secondLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); |
780
9f13c00a2647
Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents:
744
diff
changeset
|
91 |
1293
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
92 secondLabel->setTextInteractionFlags( |
780
9f13c00a2647
Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents:
744
diff
changeset
|
93 Qt::TextSelectableByMouse | |
9f13c00a2647
Make certificate text selectable
Andre Heinecke <andre.heinecke@intevation.de>
parents:
744
diff
changeset
|
94 Qt::TextSelectableByKeyboard); |
1293
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
95 firstLabel->setTextFormat(Qt::RichText); |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
96 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
|
97 |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
98 firstLabel->setTextInteractionFlags( |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
99 Qt::TextSelectableByMouse | |
d2b32c75efcf
(issue123) Change layout from link to a button
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1288
diff
changeset
|
100 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
|
101 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
|
102 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
|
103 this, SLOT(currentStateChanged(bool))); |
582
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
104 |
638
9d806f140bd5
Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents:
627
diff
changeset
|
105 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
|
106 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
|
107 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
|
108 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
|
109 layout->addLayout(labelLayout); |
582
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
110 this->setLayout(layout); |
88c9bdc74175
New widgets to display certificates in lists.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
111 } |
627
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
112 |
1288
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
113 void CertificateItemWidget::showCertDlg() |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
114 { |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
115 /* 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
|
116 * HANDLES are only 32 bit even on Windows 64 bit */ |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
117 qDebug() << "Showing native ui: " << mCertificate.showNativeUI((void*)effectiveWinId()); |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
118 return; |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
119 } |
265583011f24
(issue123) Add possibility to open native certificate dialog
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1234
diff
changeset
|
120 |
627
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
121 bool CertificateItemWidget::state() |
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
122 { |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1101
diff
changeset
|
123 if (!mButton->isEnabled()) { |
685
248d4f24e618
(Issue 29) Uneditable items are always selected
Andre Heinecke <andre.heinecke@intevation.de>
parents:
659
diff
changeset
|
124 return true; |
248d4f24e618
(Issue 29) Uneditable items are always selected
Andre Heinecke <andre.heinecke@intevation.de>
parents:
659
diff
changeset
|
125 } |
701
31c3d2bc9880
(Issue22) Fix painting problems with fixed size in windows style.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
687
diff
changeset
|
126 |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
127 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
|
128 } |
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
129 |
638
9d806f140bd5
Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents:
627
diff
changeset
|
130 void CertificateItemWidget::setState(bool state) |
9d806f140bd5
Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents:
627
diff
changeset
|
131 { |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
132 /* 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
|
133 * 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
|
134 * 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
|
135 * unselected have the enabled button. */ |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
136 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
|
137 mButton->setChecked(!state); |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
138 mButton->blockSignals(false); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
139 if (mButton->isEnabled()) { |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
140 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
|
141 "ToolTip_Off").toString()); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
142 } |
638
9d806f140bd5
Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents:
627
diff
changeset
|
143 } |
9d806f140bd5
Added state and editable flag to certificate list items.
Raimund Renkert <rrenkert@intevation.de>
parents:
627
diff
changeset
|
144 |
1108
9bb9932bb819
Revert commit 1101 the inactive manual changes were a bad idea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
145 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
|
146 { |
1108
9bb9932bb819
Revert commit 1101 the inactive manual changes were a bad idea
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1106
diff
changeset
|
147 return mCertificate; |
627
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
148 } |
566ee111e331
Added state to certificate list item and updated certificate list widget.
Raimund Renkert <rrenkert@intevation.de>
parents:
582
diff
changeset
|
149 |
1106
6f7b7d88f048
(issue115) Rework CertificateListWidgets to have a ToolButton instead of a combobox
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1101
diff
changeset
|
150 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
|
151 { |
1109
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
152 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
|
153 "ToolTip_Off").toString()); |
6594e8e63a25
(issue115) Add tooltips and fix manual changes handling
Andre Heinecke <andre.heinecke@intevation.de>
parents:
1108
diff
changeset
|
154 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
|
155 } |