Skip to content

Commit 83171c7

Browse files
metsmaiannaska
authored andcommitted
Move signature status to separate line when needed (#362)
IB-5517 Signed-off-by: Raul Metsma <raul@metsma.ee>
1 parent eff43a1 commit 83171c7

File tree

3 files changed

+31
-34
lines changed

3 files changed

+31
-34
lines changed

client/widgets/SignatureItem.cpp

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ using namespace ria::qdigidoc4;
3939
class SignatureItem::Private: public Ui::SignatureItem
4040
{
4141
public:
42-
Private(const DigiDocSignature &s): signature(s) {}
42+
Private(DigiDocSignature s): signature(std::move(s)) {}
4343
DigiDocSignature signature;
4444

4545
bool invalid;
@@ -48,20 +48,16 @@ class SignatureItem::Private: public Ui::SignatureItem
4848
QString serial;
4949
QString statusHtml;
5050
QString roleElided;
51-
std::unique_ptr<QFontMetrics> nameMetrics;
51+
QString status;
5252
};
5353

5454
SignatureItem::SignatureItem(const DigiDocSignature &s, ContainerState /*state*/, bool isSupported, QWidget *parent)
5555
: Item(parent)
5656
, ui(new Private(s))
5757
{
5858
ui->setupUi(this);
59-
60-
QFont nameFont(Styles::font(Styles::Regular, 14, QFont::DemiBold));
61-
ui->nameMetrics.reset(new QFontMetrics(nameFont));
62-
63-
ui->name->setFont(nameFont);
64-
ui->idSignTime->setFont( Styles::font(Styles::Regular, 11) );
59+
ui->name->setFont(Styles::font(Styles::Regular, 14, QFont::DemiBold));
60+
ui->idSignTime->setFont(Styles::font(Styles::Regular, 11));
6561
ui->role->setFont(Styles::font(Styles::Regular, 11));
6662
ui->role->installEventFilter(this);
6763
ui->remove->setIcons(QStringLiteral("/images/icon_remove.svg"), QStringLiteral("/images/icon_remove_hover.svg"),
@@ -81,10 +77,11 @@ void SignatureItem::init()
8177
{
8278
const SslCertificate cert = ui->signature.cert();
8379

84-
QString accessibility, signingInfo, status;
80+
QString accessibility, signingInfo;
8581
ui->nameText.clear();
8682
ui->serial.clear();
8783
ui->statusHtml.clear();
84+
ui->status.clear();
8885
ui->error = ria::qdigidoc4::NoWarning;
8986

9087
QTextStream sa(&accessibility);
@@ -108,13 +105,9 @@ void SignatureItem::init()
108105
ui->icon->setPixmap(QStringLiteral(":/images/icon_ajatempel.svg"));
109106
}
110107
else if(cert.type() & SslCertificate::TempelType)
111-
{
112108
ui->icon->setPixmap(QStringLiteral(":/images/icon_digitempel.svg"));
113-
}
114109
else
115-
{
116110
ui->icon->setPixmap(QStringLiteral(":/images/icon_Allkiri_small.svg"));
117-
}
118111
sa << label << " ";
119112
sc << "<span style=\"font-weight:normal;\">";
120113
switch( signatureValidity )
@@ -153,8 +146,8 @@ void SignatureItem::init()
153146
break;
154147
}
155148
sc << "</span>";
156-
ui->name->setText((ui->invalid ? red(ui->nameText + " - ") : ui->nameText + " - ") + ui->statusHtml);
157-
status = accessibility;
149+
updateNameField();
150+
ui->status = accessibility;
158151

159152
if(!cert.isNull())
160153
{
@@ -184,15 +177,20 @@ void SignatureItem::init()
184177
setAccessibleDescription( accessibility );
185178
}
186179

187-
void SignatureItem::changeEvent(QEvent* event)
180+
bool SignatureItem::event(QEvent *event)
188181
{
189-
if (event->type() == QEvent::LanguageChange)
182+
switch(event->type())
190183
{
184+
case QEvent::LanguageChange:
191185
ui->retranslateUi(this);
192186
init();
187+
break;
188+
case QEvent::Resize:
189+
updateNameField();
190+
break;
191+
default: break;
193192
}
194-
195-
QWidget::changeEvent(event);
193+
return QWidget::event(event);
196194
}
197195

198196
void SignatureItem::details()
@@ -245,13 +243,10 @@ bool SignatureItem::isInvalid() const
245243

246244
bool SignatureItem::isSelfSigned(const QString& cardCode, const QString& mobileCode) const
247245
{
248-
if(ui->serial.isEmpty())
249-
return false;
250-
251-
return ui->serial == cardCode || ui->serial == mobileCode;
246+
return !ui->serial.isEmpty() && (ui->serial == cardCode || ui->serial == mobileCode);
252247
}
253248

254-
void SignatureItem::mouseReleaseEvent(QMouseEvent *)
249+
void SignatureItem::mouseReleaseEvent(QMouseEvent * /*event*/)
255250
{
256251
details();
257252
}
@@ -270,7 +265,14 @@ void SignatureItem::removeSignature()
270265
WarningDialog dlg(msg, qApp->activeWindow());
271266
dlg.setCancelText(tr("CANCEL"));
272267
dlg.addButton(tr("OK"), SignatureRemove);
273-
dlg.exec();
274-
if(dlg.result() == SignatureRemove)
268+
if(dlg.exec() == SignatureRemove)
275269
emit remove(this);
276270
}
271+
272+
void SignatureItem::updateNameField()
273+
{
274+
if(ui->name->fontMetrics().width(ui->nameText + " - " + ui->status) < ui->name->width())
275+
ui->name->setText((ui->invalid ? red(ui->nameText + " - ") : ui->nameText + " - ") + ui->statusHtml);
276+
else
277+
ui->name->setText((ui->invalid ? red(ui->nameText) : ui->nameText) + "<br/>" + ui->statusHtml);
278+
}

client/widgets/SignatureItem.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,15 @@ public slots:
4141
void details() override;
4242

4343
protected:
44-
void changeEvent(QEvent* event) override;
45-
void mouseReleaseEvent(QMouseEvent *event) override;
44+
bool event(QEvent *event) override;
4645
bool eventFilter(QObject *o, QEvent *e) override;
46+
void mouseReleaseEvent(QMouseEvent *event) override;
4747

4848
private:
4949
void init();
5050
QString red(const QString &text);
5151
void removeSignature();
52+
void updateNameField();
5253

5354
class Private;
5455
Private *ui;

client/widgets/SignatureItem.ui

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@ text-decoration: none solid rgb(0, 0, 0);</string>
7777
</property>
7878
<item>
7979
<widget class="QLabel" name="name">
80-
<property name="maximumSize">
81-
<size>
82-
<width>16777215</width>
83-
<height>16</height>
84-
</size>
85-
</property>
8680
<property name="font">
8781
<font>
8882
<family>Roboto</family>

0 commit comments

Comments
 (0)