annotate ui/certificateitemwidget.cpp @ 1293:d2b32c75efcf

(issue123) Change layout from link to a button
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 29 Sep 2014 15:20:19 +0200
parents 265583011f24
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 }

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