Skip to content

Commit 9a85504

Browse files
committed
Remove default folder selection
IB-8762 Signed-off-by: Raul Metsma <[email protected]>
1 parent 42b055a commit 9a85504

File tree

10 files changed

+21
-177
lines changed

10 files changed

+21
-177
lines changed

client/Application.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -416,9 +416,8 @@ Application::Application( int &argc, char **argv )
416416
loadTranslation(Settings::LANGUAGE);
417417

418418
// Clear obsolete registriy settings
419-
Settings::SETTINGS_MIGRATED.clear();
420-
#ifdef Q_OS_DARWIN
421-
Settings::TSL_ONLINE_DIGEST.clear();
419+
#ifndef Q_OS_DARWIN
420+
Settings::DEFAULT_DIR.clear();
422421
#endif
423422

424423
// Actions

client/Settings.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "Application.h"
2323

2424
#include <QtCore/QJsonValue>
25+
#include <QtCore/QStandardPaths>
2526

2627
template<class T, class D = T>
2728
using Option = Settings::Option<T, D>;
@@ -97,9 +98,8 @@ const Option<QString, QString (*)()> Settings::LANGUAGE { QStringLiteral("Langua
9798
if(languages.first().contains(QLatin1String("ru"), Qt::CaseInsensitive)) return QStringLiteral("ru");
9899
return QStringLiteral("en");
99100
}};
100-
const Option<QString> Settings::LAST_PATH { QStringLiteral("lastPath") };
101+
const Option<QString> Settings::LAST_PATH { QStringLiteral("lastPath"), QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) };
101102
Option<bool> Settings::LIBDIGIDOCPP_DEBUG { QStringLiteral("LibdigidocppDebug"), false };
102-
const Option<bool> Settings::SETTINGS_MIGRATED { QStringLiteral("SettingsMigrated"), false };
103103
const Option<bool> Settings::SHOW_INTRO { QStringLiteral("showIntro"), true };
104104
const Option<bool> Settings::SHOW_PRINT_SUMMARY { QStringLiteral("ShowPrintSummary"), false };
105105
const Option<bool> Settings::SHOW_ROLE_ADDRESS_INFO { QStringLiteral("RoleAddressInfo"), false };
@@ -111,5 +111,4 @@ const Option<QString> Settings::PROXY_USER { QStringLiteral("ProxyUser") };
111111
const Option<QString> Settings::PROXY_PASS { QStringLiteral("ProxyPass") };
112112
#ifdef Q_OS_MAC
113113
const Option<QString> Settings::PLUGINS { QStringLiteral("plugins") };
114-
const Option<bool> Settings::TSL_ONLINE_DIGEST { QStringLiteral("TSLOnlineDigest"), true };
115114
#endif

client/Settings.h

Lines changed: 11 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,33 @@
2222
#include <QtCore/QCoreApplication>
2323
#include <QtCore/QSettings>
2424

25-
template<typename T>
26-
using if_QString = std::enable_if_t<std::is_same_v<T,QString>, bool>;
27-
2825
struct Settings
2926
{
3027
template<class T, class D = T>
3128
struct Option
3229
{
3330
operator QVariant() const {
34-
return settings().value(KEY, defaultValue());
31+
if(QSettings s(isLocked() ? QSettings::SystemScope : QSettings::UserScope); s.contains(KEY))
32+
return s.value(KEY);
33+
return defaultValue();
3534
}
3635
operator T() const {
3736
return operator QVariant().template value<T>();
3837
}
39-
template <typename P = T, typename = if_QString<P>>
40-
operator std::string() const {
38+
operator std::string() const requires(std::is_same_v<T,QString>) {
4139
return operator T().toStdString();
4240
}
4341
void operator =(const QVariant &value) const {
44-
setValue(value, defaultValue());
45-
}
46-
void operator =(const T &value) const {
47-
operator =(QVariant(value));
42+
if(value == defaultValue())
43+
clear();
44+
else
45+
QSettings().setValue(KEY, value);
46+
if(f)
47+
f(operator T());
4848
}
4949
void operator() (const T &value) const {
5050
operator =(QVariant(value));
5151
}
52-
template <typename P = T, typename = if_QString<P>>
53-
void operator =(const std::string &value) const {
54-
operator =(QString::fromStdString(value));
55-
}
5652
void clear() const {
5753
QSettings().remove(KEY);
5854
}
@@ -62,18 +58,6 @@ struct Settings
6258
bool isSet() const {
6359
return QSettings().contains(KEY);
6460
}
65-
T value(const QVariant &def) const {
66-
return settings().value(KEY, def).template value<T>();
67-
}
68-
void setValue(const QVariant &value, const QVariant &def = {}) const {
69-
if(bool valueIsNullOrEmpty = value.typeId() == QMetaType::QString ? value.toString().isEmpty() : value.isNull();
70-
value == def || (def.isNull() && valueIsNullOrEmpty))
71-
clear();
72-
else
73-
QSettings().setValue(KEY, value);
74-
if(f)
75-
f(operator T());
76-
}
7761
T defaultValue() const {
7862
if constexpr (std::is_invocable_v<D>)
7963
return DEFAULT();
@@ -85,9 +69,6 @@ struct Settings
8569
{
8670
f = functor;
8771
}
88-
QSettings settings() const {
89-
return QSettings(isLocked() ? QSettings::SystemScope : QSettings::UserScope);
90-
}
9172
const QString KEY;
9273
const D DEFAULT {};
9374
std::function<void (const T &value)> f {};
@@ -134,12 +115,11 @@ struct Settings
134115
static const Option<QString, QString (*)()> LANGUAGE;
135116
static const Option<QString> LAST_PATH;
136117
static Option<bool> LIBDIGIDOCPP_DEBUG;
137-
static const Option<bool> SETTINGS_MIGRATED;
138118
static const Option<bool> SHOW_INTRO;
139119
static const Option<bool> SHOW_PRINT_SUMMARY;
140120
static const Option<bool> SHOW_ROLE_ADDRESS_INFO;
141121

142-
enum ProxyConfig {
122+
enum ProxyConfig: quint8 {
143123
ProxyNone,
144124
ProxySystem,
145125
ProxyManual,
@@ -151,6 +131,5 @@ struct Settings
151131
static const Option<QString> PROXY_PASS;
152132
#ifdef Q_OS_MAC
153133
static const Option<QString> PLUGINS;
154-
static const Option<bool> TSL_ONLINE_DIGEST;
155134
#endif
156135
};

client/dialogs/FileDialog.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
#include <QtCore/QCoreApplication>
2626
#include <QtCore/QRegularExpression>
27-
#include <QtCore/QStandardPaths>
2827
#include <QtCore/QTemporaryFile>
2928
#include <QtWidgets/QMessageBox>
3029

@@ -58,10 +57,8 @@ QString FileDialog::createNewFileName(const QString &file, bool signature, QWidg
5857
Settings::CDOC2_DEFAULT ? QStringLiteral(".cdoc2") : QStringLiteral(".cdoc");
5958
const QString type = signature ? tr("signature container") : tr("crypto container");
6059
QString capitalized = type[0].toUpper() + type.mid(1);
61-
const QString defaultDir = Settings::DEFAULT_DIR;
6260
const QFileInfo f(normalized(file));
63-
QString dir = defaultDir.isEmpty() ? f.absolutePath() : defaultDir;
64-
QString fileName = QDir::toNativeSeparators(dir + QDir::separator() + f.completeBaseName() + extension);
61+
QString fileName = QDir::toNativeSeparators(f.absolutePath() + QDir::separator() + f.completeBaseName() + extension);
6562
#ifndef Q_OS_MACOS
6663
// macOS App Sandbox restricts the rights of the application to write to the filesystem outside of
6764
// app sandbox; user must explicitly give permission to write data to the specific folders.
@@ -162,8 +159,7 @@ QString FileDialog::getDir( const QString &dir )
162159
path.replace('~', QDir::homePath());
163160
return path;
164161
#else
165-
return !dir.isEmpty() ? dir : Settings::LAST_PATH.value(
166-
QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
162+
return !dir.isEmpty() ? dir : Settings::LAST_PATH;
167163
#endif
168164
}
169165

client/dialogs/MobileDialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ MobileDialog::MobileDialog(QWidget *parent)
4343
ui->idCode->setAttribute(Qt::WA_MacShowFocusRect, false);
4444
ui->errorCode->hide();
4545
ui->phoneNo->setValidator(new NumberValidator(ui->phoneNo));
46-
ui->phoneNo->setText(Settings::MOBILEID_NUMBER.value(countryCodes[0]));
46+
ui->phoneNo->setText(Settings::MOBILEID_NUMBER);
4747
ui->phoneNo->setAttribute(Qt::WA_MacShowFocusRect, false);
4848
ui->phoneNo->setFocus();
4949
ui->errorPhone->hide();

client/dialogs/SettingsDialog.cpp

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -91,43 +91,14 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
9191
ui->chkRoleAddressInfo->setChecked(Settings::SHOW_ROLE_ADDRESS_INFO);
9292
connect(ui->chkRoleAddressInfo, &QCheckBox::toggled, this, Settings::SHOW_ROLE_ADDRESS_INFO);
9393

94-
#ifdef Q_OS_MACOS
95-
ui->lblDefaultDirectory->hide();
96-
ui->rdGeneralSameDirectory->hide();
97-
ui->txtGeneralDirectory->hide();
98-
ui->btGeneralChooseDirectory->hide();
99-
ui->rdGeneralSpecifyDirectory->hide();
100-
#else
101-
connect(ui->btGeneralChooseDirectory, &QPushButton::clicked, this, [this]{
102-
QString dir = FileDialog::getExistingDirectory(this, tr("Select folder"), Settings::DEFAULT_DIR);
103-
if(!dir.isEmpty())
104-
{
105-
ui->rdGeneralSpecifyDirectory->setChecked(true);
106-
Settings::DEFAULT_DIR = dir;
107-
ui->txtGeneralDirectory->setText(dir);
108-
}
109-
});
110-
connect(ui->rdGeneralSpecifyDirectory, &QRadioButton::toggled, this, [this](bool enable) {
111-
ui->btGeneralChooseDirectory->setVisible(enable);
112-
ui->txtGeneralDirectory->setVisible(enable);
113-
if(!enable)
114-
ui->txtGeneralDirectory->clear();
115-
});
116-
ui->txtGeneralDirectory->setText(Settings::DEFAULT_DIR);
117-
if(ui->txtGeneralDirectory->text().isEmpty())
118-
ui->rdGeneralSameDirectory->setChecked(true);
119-
connect(ui->txtGeneralDirectory, &QLineEdit::textChanged, this, Settings::DEFAULT_DIR);
120-
#endif
121-
12294
// pageServices - TimeStamp
12395
ui->rdTimeStampDefault->setDisabled(Settings::TSA_URL_CUSTOM.isLocked());
12496
ui->rdTimeStampCustom->setEnabled(ui->rdTimeStampDefault->isEnabled());
12597
ui->rdTimeStampCustom->setChecked(Settings::TSA_URL_CUSTOM);
12698
ui->txtTimeStamp->setReadOnly(Settings::TSA_URL.isLocked());
12799
ui->txtTimeStamp->setVisible(ui->rdTimeStampCustom->isChecked());
128100
ui->txtTimeStamp->setPlaceholderText(Application::confValue(Settings::TSA_URL.KEY).toString());
129-
QString TSA_URL = Settings::TSA_URL.value(Application::confValue(Application::TSAUrl));
130-
ui->txtTimeStamp->setText(ui->txtTimeStamp->placeholderText() == TSA_URL ? QString() : std::move(TSA_URL));
101+
ui->txtTimeStamp->setText(Settings::TSA_URL);
131102
ui->wgtTSACert->setDisabled(Settings::TSA_CERT.isLocked());
132103
ui->wgtTSACert->setVisible(ui->rdTimeStampCustom->isChecked());
133104
connect(ui->rdTimeStampCustom, &QRadioButton::toggled, ui->txtTimeStamp, [this](bool checked) {
@@ -183,8 +154,7 @@ SettingsDialog::SettingsDialog(int page, QWidget *parent)
183154
ui->txtSiVa->setReadOnly(Settings::SIVA_URL.isLocked());
184155
ui->txtSiVa->setVisible(ui->rdSiVaCustom->isChecked());
185156
ui->txtSiVa->setPlaceholderText(Application::confValue(Settings::SIVA_URL.KEY).toString());
186-
QString SIVA_URL = Settings::SIVA_URL.value(Application::confValue(Application::SiVaUrl));
187-
ui->txtSiVa->setText(ui->txtSiVa->placeholderText() == SIVA_URL ? QString() : std::move(SIVA_URL));
157+
ui->txtSiVa->setText(Settings::SIVA_URL);
188158
ui->wgtSiVaCert->setDisabled(Settings::SIVA_CERT.isLocked());
189159
ui->wgtSiVaCert->setVisible(ui->rdSiVaCustom->isChecked());
190160
connect(ui->rdSiVaCustom, &QRadioButton::toggled, ui->txtSiVa, [this](bool checked) {

client/dialogs/SettingsDialog.ui

Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -479,7 +479,7 @@ max-height: 22px;
479479
}</string>
480480
</property>
481481
<property name="currentIndex">
482-
<number>3</number>
482+
<number>0</number>
483483
</property>
484484
<widget class="QWidget" name="pageGeneral">
485485
<layout class="QVBoxLayout" name="pageGeneralLayout">
@@ -568,56 +568,6 @@ max-height: 22px;
568568
</property>
569569
</widget>
570570
</item>
571-
<item>
572-
<widget class="QLabel" name="lblDefaultDirectory">
573-
<property name="focusPolicy">
574-
<enum>Qt::TabFocus</enum>
575-
</property>
576-
<property name="text">
577-
<string>Container default location</string>
578-
</property>
579-
</widget>
580-
</item>
581-
<item>
582-
<layout class="QGridLayout" name="locationBoxLayout">
583-
<property name="spacing">
584-
<number>15</number>
585-
</property>
586-
<item row="0" column="0">
587-
<widget class="QRadioButton" name="rdGeneralSameDirectory">
588-
<property name="text">
589-
<string>Same folder</string>
590-
</property>
591-
<attribute name="buttonGroup">
592-
<string notr="true">pathGroup</string>
593-
</attribute>
594-
</widget>
595-
</item>
596-
<item row="1" column="0">
597-
<widget class="QRadioButton" name="rdGeneralSpecifyDirectory">
598-
<property name="text">
599-
<string>Select the default directory</string>
600-
</property>
601-
<property name="checked">
602-
<bool>true</bool>
603-
</property>
604-
<attribute name="buttonGroup">
605-
<string notr="true">pathGroup</string>
606-
</attribute>
607-
</widget>
608-
</item>
609-
<item row="0" column="1" rowspan="2">
610-
<widget class="QPushButton" name="btGeneralChooseDirectory">
611-
<property name="text">
612-
<string notr="true">...</string>
613-
</property>
614-
</widget>
615-
</item>
616-
<item row="0" column="2" rowspan="2">
617-
<widget class="QLineEdit" name="txtGeneralDirectory"/>
618-
</item>
619-
</layout>
620-
</item>
621571
<item>
622572
<spacer name="pageGeneralSpacer">
623573
<property name="orientation">
@@ -1798,7 +1748,6 @@ p, li { white-space: pre-wrap; margin-top:12px; margin-bottom:12px; margin-left:
17981748
</resources>
17991749
<connections/>
18001750
<buttongroups>
1801-
<buttongroup name="pathGroup"/>
18021751
<buttongroup name="pageGroup"/>
18031752
<buttongroup name="rdSiVa"/>
18041753
<buttongroup name="langGroup"/>

client/translations/en.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,18 +2174,6 @@ ID-Card</translation>
21742174
<source>Language</source>
21752175
<translation>Language</translation>
21762176
</message>
2177-
<message>
2178-
<source>Container default location</source>
2179-
<translation>Container default location</translation>
2180-
</message>
2181-
<message>
2182-
<source>Same folder</source>
2183-
<translation>Same folder</translation>
2184-
</message>
2185-
<message>
2186-
<source>Select the default directory</source>
2187-
<translation>Select the default directory</translation>
2188-
</message>
21892177
<message>
21902178
<source>Show print summary</source>
21912179
<translation>Show print summary</translation>
@@ -2258,10 +2246,6 @@ Additional licenses and components</source>
22582246
In case of questions please contact our support via &lt;a href=&quot;https://www.id.ee/en/id-help/&quot;&gt;id.ee&lt;/a&gt;.&lt;/p&gt;
22592247
Additional licenses and components</translation>
22602248
</message>
2261-
<message>
2262-
<source>Select folder</source>
2263-
<translation>Select folder</translation>
2264-
</message>
22652249
<message>
22662250
<source>Save as</source>
22672251
<translation>Save as</translation>

client/translations/et.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2174,18 +2174,6 @@ ID-kaardiga</translation>
21742174
<source>Language</source>
21752175
<translation>Keel</translation>
21762176
</message>
2177-
<message>
2178-
<source>Container default location</source>
2179-
<translation>Ümbriku loomise vaikekataloog</translation>
2180-
</message>
2181-
<message>
2182-
<source>Same folder</source>
2183-
<translation>Samasse kataloogi</translation>
2184-
</message>
2185-
<message>
2186-
<source>Select the default directory</source>
2187-
<translation>Vali vaikimisi kataloog</translation>
2188-
</message>
21892177
<message>
21902178
<source>Show print summary</source>
21912179
<translation>Näita kinnituslehte</translation>
@@ -2258,10 +2246,6 @@ Additional licenses and components</source>
22582246
Küsimuste korral võta ühendust &lt;a href=&quot;https://www.id.ee/id-abikeskus/&quot;&gt;ID-abikeskusega/a&gt;.&lt;/p&gt;
22592247
Täiendavad litsentsid ja komponendid</translation>
22602248
</message>
2261-
<message>
2262-
<source>Select folder</source>
2263-
<translation>Vali kataloog</translation>
2264-
</message>
22652249
<message>
22662250
<source>Save as</source>
22672251
<translation>Salvesta</translation>

client/translations/ru.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,18 +2175,6 @@ ID-картой</translation>
21752175
<source>Language</source>
21762176
<translation>Язык</translation>
21772177
</message>
2178-
<message>
2179-
<source>Container default location</source>
2180-
<translation>Расположение контейнера по умолчанию</translation>
2181-
</message>
2182-
<message>
2183-
<source>Same folder</source>
2184-
<translation>Та же папка</translation>
2185-
</message>
2186-
<message>
2187-
<source>Select the default directory</source>
2188-
<translation>Выберите каталог</translation>
2189-
</message>
21902178
<message>
21912179
<source>Show print summary</source>
21922180
<translation>Показать подтверждающий лист</translation>
@@ -2259,10 +2247,6 @@ Additional licenses and components</source>
22592247
Если у вас возникнут вопросы, пожалуйста, обратитесь на &lt;a href=&quot;https://www.id.ee/ru/id-pomoshh/&quot;&gt;id.ee&lt;/a&gt;.&lt;/p&gt;
22602248
Дополнительные лицензии и компоненты</translation>
22612249
</message>
2262-
<message>
2263-
<source>Select folder</source>
2264-
<translation>Выбрать каталог</translation>
2265-
</message>
22662250
<message>
22672251
<source>Save as</source>
22682252
<translation>Cохранить</translation>

0 commit comments

Comments
 (0)