@@ -39,7 +39,7 @@ using namespace ria::qdigidoc4;
3939class SignatureItem ::Private: public Ui::SignatureItem
4040{
4141public:
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
5454SignatureItem::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
198196void SignatureItem::details ()
@@ -245,13 +243,10 @@ bool SignatureItem::isInvalid() const
245243
246244bool 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+ }
0 commit comments