File indexing completed on 2024-05-05 04:41:02
0001 /* 0002 SPDX-FileCopyrightText: 2007 Dukju Ahn <dukjuahn@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "svnssldialog.h" 0008 0009 #include <QDialogButtonBox> 0010 #include <QPushButton> 0011 0012 #include <KLocalizedString> 0013 0014 #include "ui_ssltrustdialog.h" 0015 0016 class SvnSSLTrustDialogPrivate 0017 { 0018 public: 0019 Ui::SvnSSLTrustDialog ui; 0020 bool temporarily; 0021 }; 0022 0023 SvnSSLTrustDialog::SvnSSLTrustDialog( QWidget *parent ) 0024 : QDialog( parent ), d( new SvnSSLTrustDialogPrivate ) 0025 { 0026 d->ui.setupUi( this ); 0027 d->temporarily = true; 0028 setWindowTitle(i18nc("@title:window", "SSL Server Certificate")); 0029 buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel); 0030 buttonBox->addButton(i18nc("@action:button", "Trust Permanently"), QDialogButtonBox::YesRole); 0031 buttonBox->addButton(i18nc("@action:button", "Trust Temporarily"), QDialogButtonBox::AcceptRole)->setDefault(true); 0032 auto layout = new QVBoxLayout(); 0033 setLayout(layout); 0034 layout->addWidget(buttonBox); 0035 connect(buttonBox, &QDialogButtonBox::clicked, this, &SvnSSLTrustDialog::buttonClicked); 0036 } 0037 SvnSSLTrustDialog::~SvnSSLTrustDialog() 0038 { 0039 delete d; 0040 } 0041 0042 void SvnSSLTrustDialog::setCertInfos( const QString& hostname, 0043 const QString& fingerPrint, 0044 const QString& validfrom, 0045 const QString& validuntil, 0046 const QString& issuerName, 0047 const QString& realm, 0048 const QStringList& failures ) 0049 { 0050 if (!failures.isEmpty()) { 0051 const QString txt = QLatin1String("<ul><li>") + 0052 failures.join(QLatin1String("</li><li>")) + 0053 QLatin1String("</li></ul>"); 0054 d->ui.reasons->setHtml( txt ); 0055 } 0056 0057 d->ui.hostname->setText( hostname ); 0058 d->ui.fingerprint->setText( fingerPrint ); 0059 d->ui.validUntil->setText( validuntil ); 0060 d->ui.validFrom->setText( validfrom ); 0061 d->ui.issuer->setText( issuerName ); 0062 setWindowTitle(i18nc("@title:window", "SSL Server Certificate: %1", realm)); 0063 0064 } 0065 0066 bool SvnSSLTrustDialog::useTemporarily() 0067 { 0068 return d->temporarily; 0069 } 0070 0071 void SvnSSLTrustDialog::buttonClicked(QAbstractButton *button) 0072 { 0073 if (buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole) 0074 { 0075 d->temporarily = true; 0076 } else 0077 { 0078 d->temporarily = false; 0079 } 0080 accept(); 0081 } 0082 0083 #include "moc_svnssldialog.cpp"