Skip to content

Commit dd66354

Browse files
metsmamrts
authored andcommitted
Add language selection
WE2-718 Signed-off-by: Raul Metsma <[email protected]>
1 parent b094909 commit dd66354

File tree

15 files changed

+226
-115
lines changed

15 files changed

+226
-115
lines changed

src/controller/application.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,12 @@ bool Application::isDarkTheme() const
103103
void Application::loadTranslations(const QString& lang)
104104
{
105105
QLocale locale;
106-
static const QStringList SUPPORTED_LANGS {"en", "et", "fi", "ru"};
107-
if (SUPPORTED_LANGS.contains(lang)) {
108-
locale = QLocale(lang);
106+
static const QStringList SUPPORTED_LANGS {QStringLiteral("en"), QStringLiteral("et"),
107+
QStringLiteral("fi"), QStringLiteral("hr"),
108+
QStringLiteral("ru")};
109+
QString langSetting = QSettings().value(QStringLiteral("lang"), lang).toString();
110+
if (SUPPORTED_LANGS.contains(langSetting)) {
111+
locale = QLocale(langSetting);
109112
}
110113
void(translator->load(locale, QStringLiteral(":/translations/")));
111114
}

src/ui/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ qt_add_translation(SOURCES
1212
translations/en.ts
1313
translations/et.ts
1414
translations/fi.ts
15+
translations/hr.ts
1516
translations/ru.ts
1617
)
1718
add_library(ui STATIC

src/ui/certificatewidget.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ void CertificateWidgetInfo::drawWarnIcon()
8989

9090
void CertificateWidgetInfo::setCertificateInfo(const CardCertificateAndPinInfo& cardCertPinInfo)
9191
{
92+
warn->setText(CertificateWidget::tr("Pin locked"));
9293
certAndPinInfo = cardCertPinInfo;
9394
const auto certInfo = cardCertPinInfo.certInfo;
9495
QString warning, effectiveDate = certInfo.effectiveDate, expiryDate = certInfo.expiryDate;
@@ -110,6 +111,11 @@ void CertificateWidgetInfo::setCertificateInfo(const CardCertificateAndPinInfo&
110111
}
111112
}
112113

114+
void CertificateWidgetInfo::languageChange()
115+
{
116+
setCertificateInfo(certAndPinInfo);
117+
}
118+
113119
CertificateWidget::CertificateWidget(QWidget* parent) : QWidget(parent), CertificateWidgetInfo(this)
114120
{
115121
info->setFocusPolicy(Qt::TabFocus);
@@ -143,10 +149,6 @@ CertificateButton::CertificateButton(const CardCertificateAndPinInfo& cardCertPi
143149
CertificateWidgetInfo::icon->setAttribute(Qt::WA_TransparentForMouseEvents);
144150
info->setAttribute(Qt::WA_TransparentForMouseEvents);
145151
setCertificateInfo(cardCertPinInfo);
146-
const auto certInfo = cardCertPinInfo.certInfo;
147-
setText(
148-
tr("%1 Issuer: %2 Valid: %3 to %4")
149-
.arg(certInfo.subject, certInfo.issuer, certInfo.effectiveDate, certInfo.expiryDate));
150152
}
151153

152154
bool CertificateButton::eventFilter(QObject* object, QEvent* event)
@@ -158,6 +160,15 @@ bool CertificateButton::eventFilter(QObject* object, QEvent* event)
158160
return QAbstractButton::eventFilter(object, event);
159161
}
160162

163+
void CertificateButton::setCertificateInfo(const CardCertificateAndPinInfo& cardCertPinInfo)
164+
{
165+
CertificateWidgetInfo::setCertificateInfo(cardCertPinInfo);
166+
const auto certInfo = cardCertPinInfo.certInfo;
167+
setText(
168+
tr("%1 Issuer: %2 Valid: %3 to %4")
169+
.arg(certInfo.subject, certInfo.issuer, certInfo.effectiveDate, certInfo.expiryDate));
170+
}
171+
161172
void CertificateButton::paintEvent(QPaintEvent* /*event*/)
162173
{
163174
QPainter p(this);

src/ui/certificatewidget.hpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ class CertificateWidgetInfo
3232
{
3333
public:
3434
CardCertificateAndPinInfo certificateInfo() const;
35-
void setCertificateInfo(const CardCertificateAndPinInfo& cardCertPinInfo);
35+
virtual void setCertificateInfo(const CardCertificateAndPinInfo& cardCertPinInfo);
36+
void languageChange();
3637

3738
protected:
3839
CertificateWidgetInfo(QWidget* self);
@@ -68,5 +69,6 @@ class CertificateButton final : public QAbstractButton, public CertificateWidget
6869

6970
private:
7071
bool eventFilter(QObject* object, QEvent* event) final;
72+
void setCertificateInfo(const CardCertificateAndPinInfo& cardCertPinInfo) final;
7173
void paintEvent(QPaintEvent* event) final;
7274
};

src/ui/dark.qss

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@ QWidget {
22
background-color: #232325;
33
color: white;
44
}
5-
QPushButton {
5+
QPushButton, #langButton {
66
border-color: #4E4E53;
77
background-color: #4E4E53;
88
}
9-
QPushButton::disabled {
9+
QPushButton::disabled, #langButton::disabled {
1010
border-color: #27272A;
1111
background-color: #27272A;
1212
}
13-
QPushButton::hover {
13+
QPushButton::hover, #langButton::hover {
1414
background-color: #76767B;
1515
border-color: #76767B;
1616
}
17-
QPushButton::focus {
17+
QPushButton::focus, #langButton::focus {
1818
background-color: #76767B;
1919
border-color: #DEDEDE;
2020
}
@@ -34,6 +34,13 @@ QPushButton:default::focus {
3434
background-color: #008EEA;
3535
border-color: #DEDEDE;
3636
}
37+
#langButton::menu-indicator {
38+
image: url(:images/down_dark.svg);
39+
}
40+
#langButton > QMenu {
41+
border-color: #4E4E53;
42+
background-color: #4E4E53;
43+
}
3744
CertificateButton, CertificateWidget {
3845
border-color: #4E4E53;
3946
}
@@ -85,3 +92,6 @@ color: white;
8592
#aboutVersion {
8693
color: white;
8794
}
95+
#selectAnotherCertificate {
96+
color: white;
97+
}

src/ui/dialog.ui

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>500</width>
10-
<height>464</height>
10+
<height>495</height>
1111
</rect>
1212
</property>
1313
<property name="minimumSize">
@@ -26,25 +26,25 @@ font-size: 14px;
2626
font-family: &quot;Roboto&quot;;
2727
color: black;
2828
}
29-
QPushButton {
29+
QPushButton, #langButton {
3030
font-size: 17px;
3131
border: 3px solid #EFEFEF;
3232
border-radius: 3px;
3333
height: 39px;
34-
padding-left: 19px;
35-
padding-right: 19px;
34+
padding-left: 17px;
35+
padding-right: 17px;
3636
min-width: 30px;
3737
background-color: #EFEFEF;
3838
}
39-
QPushButton::disabled {
39+
QPushButton::disabled, #langButton::disabled {
4040
background-color: #FAFAFA;
4141
border-color: #FAFAFA;
4242
}
43-
QPushButton::hover {
43+
QPushButton::hover, #langButton::hover {
4444
background-color: #DEDEDE;
4545
border-color: #DEDEDE;
4646
}
47-
QPushButton::focus {
47+
QPushButton::focus, #langButton::focus {
4848
background-color: #DEDEDE;
4949
border-color: #76767B;
5050
}
@@ -65,6 +65,23 @@ QPushButton:default::focus {
6565
background-color: #003168;
6666
border-color: #008EEA;
6767
}
68+
#langButton {
69+
padding-left: 15px;
70+
padding-right: 30px;
71+
height: 36px;
72+
}
73+
#langButton::menu-indicator {
74+
image: url(:images/down.svg);
75+
subcontrol-origin: padding;
76+
subcontrol-position: right center;
77+
left: -8px;
78+
}
79+
#langButton &gt; QMenu {
80+
font-size: 17px;
81+
border: 3px solid #EFEFEF;
82+
border-radius: 3px;
83+
background-color: #EFEFEF;
84+
}
6885
CertificateButton, CertificateWidget {
6986
border: 1px solid rgba(0,49,104,0.1);
7087
border-radius: 4px;
@@ -805,6 +822,9 @@ height: 24px;
805822
</item>
806823
<item>
807824
<layout class="QHBoxLayout" name="buttonLayout">
825+
<property name="spacing">
826+
<number>6</number>
827+
</property>
808828
<item>
809829
<widget class="QPushButton" name="cancelButton">
810830
<property name="cursor">
@@ -818,14 +838,24 @@ height: 24px;
818838
</property>
819839
</widget>
820840
</item>
841+
<item>
842+
<widget class="QToolButton" name="langButton">
843+
<property name="text">
844+
<string notr="true">EN</string>
845+
</property>
846+
<property name="popupMode">
847+
<enum>QToolButton::InstantPopup</enum>
848+
</property>
849+
</widget>
850+
</item>
821851
<item>
822852
<spacer name="buttonSpacer">
823853
<property name="orientation">
824854
<enum>Qt::Horizontal</enum>
825855
</property>
826856
<property name="sizeHint" stdset="0">
827857
<size>
828-
<width>40</width>
858+
<width>0</width>
829859
<height>20</height>
830860
</size>
831861
</property>

src/ui/images/down.svg

Lines changed: 3 additions & 0 deletions
Loading

src/ui/images/down_dark.svg

Lines changed: 3 additions & 0 deletions
Loading

src/ui/translations/fi.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,15 +249,15 @@
249249
</message>
250250
<message>
251251
<source>Select another certificate</source>
252-
<translation type="unfinished">Valitse toinen varmenne</translation>
252+
<translation>Valitse toinen varmenne</translation>
253253
</message>
254254
<message>
255255
<source>Operation failed. Make sure that the driver of the corresponding card reader is used. Read more &lt;a href=&quot;https://www.id.ee/en/article/using-pinpad-card-reader-drivers/&quot;&gt;here&lt;/a&gt;.</source>
256-
<translation type="unfinished">Toimenpide epäonnistui. Varmista, että käytetään vastaavan kortinlukijan ajuria. Lue lisää &lt;a href=&quot;https://www.id.ee/en/article/using-pinpad-card-reader-drivers/&quot;&gt;täältä&lt;/a&gt;.</translation>
256+
<translation>Toimenpide epäonnistui. Varmista, että käytetään vastaavan kortinlukijan ajuria. Lue lisää &lt;a href=&quot;https://www.id.ee/en/article/using-pinpad-card-reader-drivers/&quot;&gt;täältä&lt;/a&gt;.</translation>
257257
</message>
258258
<message>
259259
<source>The certificate of the ID card in the reader does not match the originally submitted certificate. Please insert the original ID card.</source>
260-
<translation type="unfinished">Lukijassa oleva henkilökortin varmenne ei vastaa alun perin lähetettyä varmennetta. Aseta alkuperäinen henkilökortti kortinlukijaan.</translation>
260+
<translation>Lukijassa oleva henkilökortin varmenne ei vastaa alun perin lähetettyä varmennetta. Aseta alkuperäinen henkilökortti kortinlukijaan.</translation>
261261
</message>
262262
</context>
263263
</TS>

src/ui/translations/hr.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!DOCTYPE TS>
33
<TS version="2.1" language="hr">
4-
<context>
5-
<name>Application</name>
6-
<message>
7-
<source>&amp;File</source>
8-
<translation>&amp;Datoteka</translation>
9-
</message>
10-
<message>
11-
<source>&amp;About</source>
12-
<translation>&amp;O programu</translation>
13-
</message>
14-
</context>
154
<context>
165
<name>CertificateButton</name>
176
<message>
@@ -110,7 +99,7 @@
11099
</message>
111100
<message>
112101
<source>https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</source>
113-
<translation>https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</translation>
102+
<translation type="unfinished">https://www.id.ee/en/article/how-to-check-that-your-id-card-reader-is-working/</translation>
114103
</message>
115104
<message>
116105
<source>Time remaining: &lt;b&gt;%1&lt;/b&gt;</source>

0 commit comments

Comments
 (0)