comparison ui/certificateitemwidget.cpp @ 1288:265583011f24

(issue123) Add possibility to open native certificate dialog This is currently only implemented for windows.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 29 Sep 2014 13:12:58 +0200
parents ad4fc3649ffb
children d2b32c75efcf
comparison
equal deleted inserted replaced
1287:d3d66d43365f 1288:265583011f24
61 61
62 const QString validity = tr("Validity: %1 until %2").arg( 62 const QString validity = tr("Validity: %1 until %2").arg(
63 QLocale::system().toString(mCertificate.validFrom().date(), QLocale::ShortFormat)).arg( 63 QLocale::system().toString(mCertificate.validFrom().date(), QLocale::ShortFormat)).arg(
64 QLocale::system().toString(mCertificate.validTo().date(), QLocale::ShortFormat)); 64 QLocale::system().toString(mCertificate.validTo().date(), QLocale::ShortFormat));
65 const QString fpstring = tr("Fingerprint (SHA1): <code>%1</code>").arg(mCertificate.fingerprint()); 65 const QString fpstring = tr("Fingerprint (SHA1): <code>%1</code>").arg(mCertificate.fingerprint());
66 #ifdef Q_OS_WIN
67 mLabel->setText(QString::fromLatin1("<big><b><a href=showUi>%1</a></b></big><br/>%2<br/>%3<br/>%4").arg
68 (mCertificate.subjectCN()).arg(mCertificate.subjectO()).arg(validity).arg
69 (fpstring));
70 #else
66 mLabel->setText(QString::fromLatin1("<big><b>%1</b></big><br/>%2<br/>%3<br/>%4").arg 71 mLabel->setText(QString::fromLatin1("<big><b>%1</b></big><br/>%2<br/>%3<br/>%4").arg
67 (mCertificate.subjectCN()).arg(mCertificate.subjectO()).arg(validity).arg 72 (mCertificate.subjectCN()).arg(mCertificate.subjectO()).arg(validity).arg
68 (fpstring)); 73 (fpstring));
74 #endif
69 mLabel->setTextFormat(Qt::RichText); 75 mLabel->setTextFormat(Qt::RichText);
70 76
71 mLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); 77 mLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
72 78
73 mLabel->setTextInteractionFlags( 79 mLabel->setTextInteractionFlags(
80 Qt::LinksAccessibleByMouse |
81 Qt::LinksAccessibleByKeyboard |
74 Qt::TextSelectableByMouse | 82 Qt::TextSelectableByMouse |
75 Qt::TextSelectableByKeyboard); 83 Qt::TextSelectableByKeyboard);
84 connect(mLabel, SIGNAL(linkActivated(const QString&)), this, SLOT(showCertDlg()));
76 mButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); 85 mButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
77 connect(mButton, SIGNAL(toggled (bool)), 86 connect(mButton, SIGNAL(toggled (bool)),
78 this, SLOT(currentStateChanged(bool))); 87 this, SLOT(currentStateChanged(bool)));
79 88
80 QHBoxLayout *layout = new QHBoxLayout; 89 QHBoxLayout *layout = new QHBoxLayout;
81 layout->addWidget(mButton); 90 layout->addWidget(mButton);
82 mButton->setFixedSize(64, 64); 91 mButton->setFixedSize(64, 64);
83 mButton->setIconSize(QSize(48, 48)); 92 mButton->setIconSize(QSize(48, 48));
84 layout->addWidget(mLabel); 93 layout->addWidget(mLabel);
85 this->setLayout(layout); 94 this->setLayout(layout);
95 }
96
97 void CertificateItemWidget::showCertDlg()
98 {
99 /* This is a totally evil cast but legitimate on Windows
100 * HANDLES are only 32 bit even on Windows 64 bit */
101 qDebug() << "Showing native ui: " << mCertificate.showNativeUI((void*)effectiveWinId());
102 return;
86 } 103 }
87 104
88 bool CertificateItemWidget::state() 105 bool CertificateItemWidget::state()
89 { 106 {
90 if (!mButton->isEnabled()) { 107 if (!mButton->isEnabled()) {

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