@@ -67,6 +67,13 @@ 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+ {
74+ b->setCursor (Qt::PointingHandCursor);
75+ b->setAutoDefault (false );
76+ }
7077
7178 // pageGeneral
7279 selectLanguage ();
@@ -151,7 +158,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
151158 ui->txtMIDUUID ->setReadOnly (Settings::MID_UUID.isLocked ());
152159 ui->txtMIDUUID ->setVisible (ui->rdMIDUUIDCustom ->isChecked ());
153160 ui->txtMIDUUID ->setText (Settings::MID_UUID);
154- connect (ui->rdMIDUUIDCustom , &QRadioButton::toggled, ui->txtMIDUUID , [= ](bool checked) {
161+ connect (ui->rdMIDUUIDCustom , &QRadioButton::toggled, ui->txtMIDUUID , [this ](bool checked) {
155162 ui->txtMIDUUID ->setVisible (checked);
156163 Settings::MID_UUID_CUSTOM = checked;
157164 Settings::SID_UUID_CUSTOM = checked;
@@ -218,13 +225,17 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
218225 ui->txtCdoc2Fetch ->setText (data.value (QLatin1String (" FETCH" )).toString (Settings::CDOC2_GET));
219226 ui->txtCdoc2Post ->setText (data.value (QLatin1String (" POST" )).toString (Settings::CDOC2_POST));
220227 bool disabled = ui->cmbCdoc2Name ->currentIndex () < ui->cmbCdoc2Name ->count () - 1 ;
221- ui->txtCdoc2UUID ->setReadOnly (disabled);
222- ui->txtCdoc2Fetch ->setReadOnly (disabled);
223- ui->txtCdoc2Post ->setReadOnly (disabled);
228+ ui->txtCdoc2UUID ->setDisabled (disabled);
229+ ui->txtCdoc2Fetch ->setDisabled (disabled);
230+ ui->txtCdoc2Post ->setDisabled (disabled);
231+ ui->txtCdoc2UUID ->setClearButtonEnabled (!disabled);
232+ ui->txtCdoc2Fetch ->setClearButtonEnabled (!disabled);
233+ ui->txtCdoc2Post ->setClearButtonEnabled (!disabled);
234+ ui->wgtCDoc2Cert ->setHidden (disabled);
224235 };
225236 for (QJsonObject::const_iterator i = list.constBegin (); i != list.constEnd (); ++i)
226237 ui->cmbCdoc2Name ->addItem (i.value ().toObject ().value (QLatin1String (" NAME" )).toString (), i.key ());
227- ui->cmbCdoc2Name ->addItem (tr (" Custom " ), Settings::CDOC2_UUID);
238+ ui->cmbCdoc2Name ->addItem (tr (" Use a manually specified key transfer server for encryption " ), Settings::CDOC2_UUID);
228239 QString cdoc2Service = Settings::CDOC2_DEFAULT_KEYSERVER;
229240 ui->cmbCdoc2Name ->setCurrentIndex (ui->cmbCdoc2Name ->findData (cdoc2Service));
230241 connect (ui->cmbCdoc2Name , qOverload<int >(&QComboBox::currentIndexChanged), this , [this , setCDoc2Values] (int index) {
@@ -234,14 +245,40 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
234245 });
235246 setCDoc2Values (cdoc2Service);
236247 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);
248+ connect (ui->txtCdoc2Fetch , &QLineEdit::textEdited, this , [this ](const QString &url) {
249+ Settings::CDOC2_GET = url;
250+ if (url.isEmpty ())
251+ {
252+ Settings::CDOC2_GET_CERT.clear ();
253+ Settings::CDOC2_POST_CERT.clear ();
254+ updateCDoc2Cert (QSslCertificate ());
255+ }
256+ });
257+ connect (ui->txtCdoc2Post , &QLineEdit::textEdited, this , [this ](const QString &url) {
258+ Settings::CDOC2_POST = url;
259+ if (url.isEmpty ())
260+ {
261+ Settings::CDOC2_GET_CERT.clear ();
262+ Settings::CDOC2_POST_CERT.clear ();
263+ updateCDoc2Cert (QSslCertificate ());
264+ }
265+ });
239266#else
240267 ui->cmbCdoc2Name ->addItem (QStringLiteral (" Default" ));
241268 ui->txtCdoc2UUID ->setText (QStringLiteral (" 00000000-0000-0000-0000-000000000000" ));
242269 ui->txtCdoc2Fetch ->setText (QStringLiteral (CDOC2_GET_URL));
243270 ui->txtCdoc2Post ->setText (QStringLiteral (CDOC2_POST_URL));
244271#endif
272+ connect (ui->btInstallCDoc2Cert , &QPushButton::clicked, this , [this ] {
273+ QSslCertificate cert = selectCert (tr (" Select a key transfer server certificate" ),
274+ tr (" Key transfer server SSL certificate" ));
275+ if (cert.isNull ())
276+ return ;
277+ Settings::CDOC2_GET_CERT = cert.toDer ().toBase64 ();
278+ Settings::CDOC2_POST_CERT = cert.toDer ().toBase64 ();
279+ updateCDoc2Cert (cert);
280+ });
281+ updateCDoc2Cert (QSslCertificate (QByteArray::fromBase64 (Settings::CDOC2_GET_CERT), QSsl::Der));
245282
246283 // pageProxy
247284 connect (this , &SettingsDialog::finished, this , &SettingsDialog::saveProxy);
@@ -313,7 +350,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
313350 dlg->open ();
314351 });
315352#ifdef CONFIG_URL
316- connect (qApp->conf (), &Configuration::finished, this , [= ](bool /* update*/ , const QString &error){
353+ connect (qApp->conf (), &Configuration::finished, this , [this ](bool /* update*/ , const QString &error){
317354 if (!error.isEmpty ()) {
318355 WarningDialog::show (this , tr (" Checking updates has failed." ) + " <br />" + tr (" Please try again." ), error);
319356 return ;
@@ -334,10 +371,10 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
334371 Application::updateTSLCache ({});
335372 });
336373 connect (ui->btnNavUseByDefault , &QPushButton::clicked, this , &SettingsDialog::useDefaultSettings);
337- connect (ui->btnNavSaveReport , &QPushButton::clicked, this , [= ]{
374+ connect (ui->btnNavSaveReport , &QPushButton::clicked, this , [this ]{
338375 saveFile (QStringLiteral (" diagnostics.txt" ), ui->txtDiagnostics ->toPlainText ().toUtf8 ());
339376 });
340- connect (ui->btnNavSaveLibdigidocpp , &QPushButton::clicked, this , [= ]{
377+ connect (ui->btnNavSaveLibdigidocpp , &QPushButton::clicked, this , [this ]{
341378 Settings::LIBDIGIDOCPP_DEBUG = false ;
342379 QString log = QStringLiteral (" %1/libdigidocpp.log" ).arg (QDir::tempPath ());
343380 saveFile (QStringLiteral (" libdigidocpp.txt" ), log);
@@ -424,6 +461,8 @@ void SettingsDialog::retranslate(const QString& lang)
424461 ui->retranslateUi (this );
425462 updateVersion ();
426463 updateDiagnostics ();
464+ ui->cmbCdoc2Name ->setItemText (ui->cmbCdoc2Name ->count () - 1 ,
465+ tr (" Use a manually specified key transfer server for encryption" ));
427466}
428467
429468void SettingsDialog::updateCert (const QSslCertificate &c, QPushButton *btn, CertLabel *lbl)
@@ -439,6 +478,11 @@ void SettingsDialog::updateCert(const QSslCertificate &c, QPushButton *btn, Cert
439478 });
440479}
441480
481+ void SettingsDialog::updateCDoc2Cert (const QSslCertificate &c)
482+ {
483+ updateCert (c, ui->btShowCDoc2Cert , ui->txtCDoc2Cert );
484+ }
485+
442486void SettingsDialog::updateSiVaCert (const QSslCertificate &c)
443487{
444488 updateCert (c, ui->btShowSiVaCert , ui->txtSiVaCert );
@@ -469,8 +513,8 @@ void SettingsDialog::selectLanguage()
469513
470514void SettingsDialog::updateVersion ()
471515{
472- ui->txtNavVersion ->setText (tr (" %1 version %2 , released %3 " )
473- .arg (tr ( " DigiDoc4 Client " ), QApplication::applicationVersion (), QStringLiteral (BUILD_DATE)));
516+ ui->txtNavVersion ->setText (tr (" DigiDoc4 version %1 , released %2 " )
517+ .arg (QApplication::applicationVersion (), QStringLiteral (BUILD_DATE)));
474518}
475519
476520void SettingsDialog::saveProxy ()
@@ -519,7 +563,7 @@ void SettingsDialog::updateDiagnostics()
519563 QApplication::setOverrideCursor ( Qt::WaitCursor );
520564 auto *worker = new Diagnostics ();
521565 connect (worker, &Diagnostics::update, ui->txtDiagnostics , &QTextBrowser::insertHtml, Qt::QueuedConnection);
522- connect (worker, &Diagnostics::destroyed, this , [= ]{
566+ connect (worker, &Diagnostics::destroyed, this , [this ]{
523567 ui->txtDiagnostics ->setEnabled (true );
524568 ui->txtDiagnostics ->moveCursor (QTextCursor::Start);
525569 ui->txtDiagnostics ->ensureCursorVisible ();
0 commit comments