@@ -67,6 +67,10 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
6767 w->setAttribute (Qt::WA_MacShowFocusRect, false );
6868 for (QCheckBox *w: findChildren<QCheckBox*>())
6969 w->setAttribute (Qt::WA_MacShowFocusRect, false );
70+ for (QToolButton *b: findChildren<QToolButton*>())
71+ b->setCursor (Qt::PointingHandCursor);
72+ for (QPushButton *b: findChildren<QPushButton*>())
73+ b->setCursor (Qt::PointingHandCursor);
7074
7175 // pageGeneral
7276 selectLanguage ();
@@ -151,7 +155,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
151155 ui->txtMIDUUID ->setReadOnly (Settings::MID_UUID.isLocked ());
152156 ui->txtMIDUUID ->setVisible (ui->rdMIDUUIDCustom ->isChecked ());
153157 ui->txtMIDUUID ->setText (Settings::MID_UUID);
154- connect (ui->rdMIDUUIDCustom , &QRadioButton::toggled, ui->txtMIDUUID , [= ](bool checked) {
158+ connect (ui->rdMIDUUIDCustom , &QRadioButton::toggled, ui->txtMIDUUID , [this ](bool checked) {
155159 ui->txtMIDUUID ->setVisible (checked);
156160 Settings::MID_UUID_CUSTOM = checked;
157161 Settings::SID_UUID_CUSTOM = checked;
@@ -221,10 +225,11 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
221225 ui->txtCdoc2UUID ->setReadOnly (disabled);
222226 ui->txtCdoc2Fetch ->setReadOnly (disabled);
223227 ui->txtCdoc2Post ->setReadOnly (disabled);
228+ ui->wgtCDoc2Cert ->setHidden (disabled);
224229 };
225230 for (QJsonObject::const_iterator i = list.constBegin (); i != list.constEnd (); ++i)
226231 ui->cmbCdoc2Name ->addItem (i.value ().toObject ().value (QLatin1String (" NAME" )).toString (), i.key ());
227- ui->cmbCdoc2Name ->addItem (tr (" Custom " ), Settings::CDOC2_UUID);
232+ ui->cmbCdoc2Name ->addItem (tr (" Use a manually specified key transfer server for encryption " ), Settings::CDOC2_UUID);
228233 QString cdoc2Service = Settings::CDOC2_DEFAULT_KEYSERVER;
229234 ui->cmbCdoc2Name ->setCurrentIndex (ui->cmbCdoc2Name ->findData (cdoc2Service));
230235 connect (ui->cmbCdoc2Name , qOverload<int >(&QComboBox::currentIndexChanged), this , [this , setCDoc2Values] (int index) {
@@ -234,14 +239,40 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
234239 });
235240 setCDoc2Values (cdoc2Service);
236241 connect (ui->txtCdoc2UUID , &QLineEdit::textEdited, this , Settings::CDOC2_UUID);
237- connect (ui->txtCdoc2Fetch , &QLineEdit::textEdited, this , Settings::CDOC2_GET);
238- connect (ui->txtCdoc2Post , &QLineEdit::textEdited, this , Settings::CDOC2_POST);
242+ connect (ui->txtCdoc2Fetch , &QLineEdit::textEdited, this , [this ](const QString &url) {
243+ Settings::CDOC2_GET = url;
244+ if (url.isEmpty ())
245+ {
246+ Settings::CDOC2_GET_CERT.clear ();
247+ Settings::CDOC2_POST_CERT.clear ();
248+ updateCDoc2Cert (QSslCertificate ());
249+ }
250+ });
251+ connect (ui->txtCdoc2Post , &QLineEdit::textEdited, this , [this ](const QString &url) {
252+ Settings::CDOC2_POST = url;
253+ if (url.isEmpty ())
254+ {
255+ Settings::CDOC2_GET_CERT.clear ();
256+ Settings::CDOC2_POST_CERT.clear ();
257+ updateCDoc2Cert (QSslCertificate ());
258+ }
259+ });
239260#else
240261 ui->cmbCdoc2Name ->addItem (QStringLiteral (" Default" ));
241262 ui->txtCdoc2UUID ->setText (QStringLiteral (" 00000000-0000-0000-0000-000000000000" ));
242263 ui->txtCdoc2Fetch ->setText (QStringLiteral (CDOC2_GET_URL));
243264 ui->txtCdoc2Post ->setText (QStringLiteral (CDOC2_POST_URL));
244265#endif
266+ connect (ui->btInstallCDoc2Cert , &QPushButton::clicked, this , [this ] {
267+ QSslCertificate cert = selectCert (tr (" Select a key transfer server certificate" ),
268+ tr (" Key transfer server SSL certificate" ));
269+ if (cert.isNull ())
270+ return ;
271+ Settings::CDOC2_GET_CERT = cert.toDer ().toBase64 ();
272+ Settings::CDOC2_POST_CERT = cert.toDer ().toBase64 ();
273+ updateCDoc2Cert (cert);
274+ });
275+ updateCDoc2Cert (QSslCertificate (QByteArray::fromBase64 (Settings::CDOC2_GET_CERT), QSsl::Der));
245276
246277 // pageProxy
247278 connect (this , &SettingsDialog::finished, this , &SettingsDialog::saveProxy);
@@ -313,7 +344,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
313344 dlg->open ();
314345 });
315346#ifdef CONFIG_URL
316- connect (qApp->conf (), &Configuration::finished, this , [= ](bool /* update*/ , const QString &error){
347+ connect (qApp->conf (), &Configuration::finished, this , [this ](bool /* update*/ , const QString &error){
317348 if (!error.isEmpty ()) {
318349 WarningDialog::show (this , tr (" Checking updates has failed." ) + " <br />" + tr (" Please try again." ), error);
319350 return ;
@@ -334,10 +365,10 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
334365 Application::updateTSLCache ({});
335366 });
336367 connect (ui->btnNavUseByDefault , &QPushButton::clicked, this , &SettingsDialog::useDefaultSettings);
337- connect (ui->btnNavSaveReport , &QPushButton::clicked, this , [= ]{
368+ connect (ui->btnNavSaveReport , &QPushButton::clicked, this , [this ]{
338369 saveFile (QStringLiteral (" diagnostics.txt" ), ui->txtDiagnostics ->toPlainText ().toUtf8 ());
339370 });
340- connect (ui->btnNavSaveLibdigidocpp , &QPushButton::clicked, this , [= ]{
371+ connect (ui->btnNavSaveLibdigidocpp , &QPushButton::clicked, this , [this ]{
341372 Settings::LIBDIGIDOCPP_DEBUG = false ;
342373 QString log = QStringLiteral (" %1/libdigidocpp.log" ).arg (QDir::tempPath ());
343374 saveFile (QStringLiteral (" libdigidocpp.txt" ), log);
@@ -439,6 +470,11 @@ void SettingsDialog::updateCert(const QSslCertificate &c, QPushButton *btn, Cert
439470 });
440471}
441472
473+ void SettingsDialog::updateCDoc2Cert (const QSslCertificate &c)
474+ {
475+ updateCert (c, ui->btShowCDoc2Cert , ui->txtCDoc2Cert );
476+ }
477+
442478void SettingsDialog::updateSiVaCert (const QSslCertificate &c)
443479{
444480 updateCert (c, ui->btShowSiVaCert , ui->txtSiVaCert );
@@ -469,8 +505,8 @@ void SettingsDialog::selectLanguage()
469505
470506void SettingsDialog::updateVersion ()
471507{
472- ui->txtNavVersion ->setText (tr (" %1 version %2 , released %3 " )
473- .arg (tr ( " DigiDoc4 Client " ), QApplication::applicationVersion (), QStringLiteral (BUILD_DATE)));
508+ ui->txtNavVersion ->setText (tr (" DigiDoc4 version %1 , released %2 " )
509+ .arg (QApplication::applicationVersion (), QStringLiteral (BUILD_DATE)));
474510}
475511
476512void SettingsDialog::saveProxy ()
@@ -519,7 +555,7 @@ void SettingsDialog::updateDiagnostics()
519555 QApplication::setOverrideCursor ( Qt::WaitCursor );
520556 auto *worker = new Diagnostics ();
521557 connect (worker, &Diagnostics::update, ui->txtDiagnostics , &QTextBrowser::insertHtml, Qt::QueuedConnection);
522- connect (worker, &Diagnostics::destroyed, this , [= ]{
558+ connect (worker, &Diagnostics::destroyed, this , [this ]{
523559 ui->txtDiagnostics ->setEnabled (true );
524560 ui->txtDiagnostics ->moveCursor (QTextCursor::Start);
525561 ui->txtDiagnostics ->ensureCursorVisible ();
0 commit comments