Skip to content

Commit 7dd314c

Browse files
authored
Update icons (#1337)
IB-7966, IB-8454 Signed-off-by: Raul Metsma <[email protected]>
1 parent f94e20f commit 7dd314c

40 files changed

+410
-999
lines changed

client/MainWindow.cpp

Lines changed: 53 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@
2828
#include "QPCSC.h"
2929
#include "QSigner.h"
3030
#include "SslCertificate.h"
31-
#include "Styles.h"
3231
#include "TokenData.h"
33-
#include "effects/ButtonHoverFilter.h"
3432
#include "effects/FadeInNotification.h"
3533
#include "effects/Overlay.h"
3634
#include "dialogs/FileDialog.h"
@@ -40,7 +38,6 @@
4038
#include "dialogs/SmartIDProgress.h"
4139
#include "dialogs/WaitDialog.h"
4240
#include "dialogs/WarningDialog.h"
43-
#include "widgets/DropdownButton.h"
4441
#include "widgets/CardPopup.h"
4542
#include "widgets/WarningItem.h"
4643
#include "widgets/WarningList.h"
@@ -49,6 +46,7 @@
4946
#include <QtCore/QStandardPaths>
5047
#include <QtCore/QUrlQuery>
5148
#include <QtGui/QDesktopServices>
49+
#include <QtGui/QDragEnterEvent>
5250
#include <QtNetwork/QSslKey>
5351
#include <QtPrintSupport/QPrinterInfo>
5452
#include <QtPrintSupport/QPrintPreviewDialog>
@@ -65,19 +63,8 @@ MainWindow::MainWindow( QWidget *parent )
6563
setAcceptDrops( true );
6664
ui->setupUi(this);
6765

68-
QFont condensed11 = Styles::font( Styles::Condensed, 11 );
69-
QFont condensed14 = Styles::font( Styles::Condensed, 14 );
70-
QFont regular20 = Styles::font( Styles::Regular, 20 );
71-
ui->signIntroLabel->setFont( regular20 );
72-
ui->signIntroButton->setFont( condensed14 );
7366
ui->signIntroButton->setFocus();
74-
ui->cryptoIntroLabel->setFont( regular20 );
75-
ui->cryptoIntroButton->setFont( condensed14 );
76-
ui->noCardInfo->setFont(condensed14);
77-
ui->noReaderInfoText->setFont(regular20);
7867
ui->noReaderInfoText->setProperty("currenttext", ui->noReaderInfoText->text());
79-
ui->help->setFont( condensed11 );
80-
ui->settings->setFont( condensed11 );
8168

8269
connect(ui->warnings, &WarningList::warningClicked, this, &MainWindow::warningClicked);
8370

@@ -89,10 +76,7 @@ MainWindow::MainWindow( QWidget *parent )
8976
ui->pageButtonGroup->setId(ui->crypto, Pages::CryptoIntro);
9077
ui->pageButtonGroup->setId(ui->myEid, Pages::MyEid);
9178

92-
connect(ui->pageButtonGroup, QOverload<QAbstractButton *, bool>::of(&QButtonGroup::buttonToggled), this, &MainWindow::clearPopups);
9379
connect(ui->pageButtonGroup, &QButtonGroup::idToggled, this, &MainWindow::pageSelected);
94-
ui->help->installEventFilter(new ButtonHoverFilter(QStringLiteral(":/images/icon_Abi.svg"), QStringLiteral(":/images/icon_Abi_hover.svg"), this));
95-
ui->settings->installEventFilter(new ButtonHoverFilter(QStringLiteral(":/images/icon_Seaded.svg"), QStringLiteral(":/images/icon_Seaded_hover.svg"), this));
9680
connect(ui->help, &QToolButton::clicked, qApp, &Application::openHelp);
9781
connect(ui->settings, &QToolButton::clicked, this, [this] { showSettings(SettingsDialog::GeneralSettings); });
9882

@@ -124,11 +108,6 @@ MainWindow::MainWindow( QWidget *parent )
124108

125109
// Refresh card info on "My EID" page
126110
connect(qApp->signer()->smartcard(), &QSmartCard::dataChanged, this, &MainWindow::updateMyEid);
127-
// Show card pop-up menu
128-
connect(ui->selector->selector, &DropdownButton::dropdown, this, &MainWindow::showCardMenu);
129-
130-
connect(this, &MainWindow::clearPopups, ui->signContainerPage, &ContainerPage::clearPopups);
131-
connect(this, &MainWindow::clearPopups, this, [this] { showCardMenu(false); });
132111

133112
connect(ui->signIntroButton, &QPushButton::clicked, this, [this] { openContainer(true); });
134113
connect(ui->cryptoIntroButton, &QPushButton::clicked, this, [this] { openContainer(false); });
@@ -152,7 +131,7 @@ MainWindow::MainWindow( QWidget *parent )
152131
connect(ui->accordion, &Accordion::changePin1Clicked, this, &MainWindow::changePin1Clicked);
153132
connect(ui->accordion, &Accordion::changePin2Clicked, this, &MainWindow::changePin2Clicked);
154133
connect(ui->accordion, &Accordion::changePukClicked, this, &MainWindow::changePukClicked);
155-
connect(ui->cardInfo, &CardWidget::selected, ui->selector->selector, &DropdownButton::press);
134+
connect(ui->cardInfo, &CardWidget::selected, ui->selector, &QToolButton::toggle);
156135

157136
updateSelectorData(qApp->signer()->tokensign());
158137
updateMyEID(qApp->signer()->tokensign());
@@ -199,7 +178,7 @@ void MainWindow::changeEvent(QEvent* event)
199178
ui->noReaderInfoText->setText(tr(ui->noReaderInfoText->property("currenttext").toByteArray()));
200179
ui->version->setText(QStringLiteral("%1%2").arg(tr("Ver. "), Application::applicationVersion()));
201180
setWindowTitle(windowFilePath().isEmpty() ? tr("DigiDoc4 Client") : FileDialog::normalized(QFileInfo(windowFilePath()).fileName()));
202-
showCardMenu(false);
181+
ui->selector->setChecked(false);
203182
}
204183
QWidget::changeEvent(event);
205184
}
@@ -306,15 +285,10 @@ bool MainWindow::encrypt()
306285

307286
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
308287
{
309-
emit clearPopups();
310-
if(ui->logo->underMouse())
311-
{
312-
resetCryptoDoc();
313-
resetDigiDoc();
314-
selectPage(Pages::SignIntro);
315-
}
316-
else
317-
QWidget::mouseReleaseEvent(event);
288+
if(auto *cardPopup = findChild<CardPopup*>())
289+
cardPopup->deleteLater();
290+
ui->signContainerPage->clearPopups();
291+
QWidget::mouseReleaseEvent(event);
318292
}
319293

320294
void MainWindow::navigateToPage( Pages page, const QStringList &files, bool create )
@@ -778,23 +752,6 @@ void MainWindow::selectPage(Pages page)
778752
updateSelector();
779753
}
780754

781-
void MainWindow::showCardMenu(bool show)
782-
{
783-
if(show)
784-
{
785-
if(ui->selector->list.isEmpty())
786-
return;
787-
auto *cardPopup = new CardPopup(ui->selector->list, this);
788-
connect(cardPopup, &CardPopup::activated, qApp->signer(), &QSigner::selectCard, Qt::QueuedConnection);
789-
connect(cardPopup, &CardPopup::activated, this, [this] { showCardMenu(false); }); // .. and hide card popup menu
790-
cardPopup->show();
791-
}
792-
else if(auto *cardPopup = findChild<CardPopup*>()) {
793-
ui->selector->selector->init();
794-
cardPopup->deleteLater();
795-
}
796-
}
797-
798755
void MainWindow::showEvent(QShowEvent * /*event*/)
799756
{
800757
static bool isShown = false;
@@ -1015,38 +972,72 @@ void MainWindow::updateSelector()
1015972

1016973
void MainWindow::updateSelectorData(TokenData data)
1017974
{
975+
enum Filter: uint8_t {
976+
Signing,
977+
Decrypting,
978+
MyEID,
979+
} filter = Signing;
1018980
switch(ui->startScreen->currentIndex())
1019981
{
1020982
case SignIntro:
1021983
case SignDetails:
1022984
if(data.isNull()) data = qApp->signer()->tokensign();
1023-
ui->cardInfo->update(data, ui->selector->list.size() > 1);
1024-
ui->selector->setList(data.card(), IDSelector::Signing);
985+
filter = Signing;
1025986
break;
1026987
case CryptoIntro:
1027988
case CryptoDetails:
1028989
if(data.isNull()) data = qApp->signer()->tokenauth();
1029-
ui->cardInfo->update(data, ui->selector->list.size() > 1);
1030-
ui->selector->setList(data.card(), IDSelector::Decrypting);
990+
filter = Decrypting;
1031991
break;
1032992
case MyEid:
993+
default:
1033994
if(data.isNull()) data = qApp->signer()->smartcard()->tokenData();
1034-
ui->cardInfo->update(data, ui->selector->list.size() > 1);
1035-
ui->selector->setList(data.card(), IDSelector::MyEID);
995+
filter = MyEID;
1036996
break;
1037-
default: break;
1038997
}
1039-
ui->idSelector->setHidden(ui->cardInfo->token().isNull());
1040-
ui->noCardInfo->setVisible(ui->idSelector->isHidden());
998+
QVector<TokenData> list;
999+
for(const TokenData &token: qApp->signer()->cache())
1000+
{
1001+
if(token.card() == data.card())
1002+
continue;
1003+
if(std::any_of(list.cbegin(), list.cend(), [token](const TokenData &item) { return token.card() == item.card(); }))
1004+
continue;
1005+
SslCertificate cert(token.cert());
1006+
if(filter == Signing && !cert.keyUsage().contains(SslCertificate::NonRepudiation))
1007+
continue;
1008+
if(filter == Decrypting && cert.keyUsage().contains(SslCertificate::NonRepudiation))
1009+
continue;
1010+
if(filter == MyEID &&
1011+
!(cert.type() & SslCertificate::EstEidType || cert.type() & SslCertificate::DigiIDType || cert.type() & SslCertificate::TempelType))
1012+
continue;
1013+
list.append(token);
1014+
}
1015+
ui->noCardInfo->setVisible(ui->cardInfo->token().isNull());
1016+
ui->selector->setHidden(list.isEmpty());
1017+
ui->selector->setChecked(false);
1018+
ui->cardInfo->setHidden(ui->noCardInfo->isVisible());
1019+
ui->cardInfo->setCursor(ui->selector->isVisible() ? Qt::PointingHandCursor : Qt::ArrowCursor);
1020+
ui->cardInfo->update(data, list.size() > 1);
10411021
if (!QPCSC::instance().serviceRunning())
10421022
ui->noCardInfo->update(NoCardInfo::NoPCSC);
10431023
else if(QPCSC::instance().readers().isEmpty())
10441024
ui->noCardInfo->update(NoCardInfo::NoReader);
10451025
else
10461026
ui->noCardInfo->update(NoCardInfo::NoCard);
1047-
ui->cardInfo->setCursor(ui->selector->selector->isVisible() ? Qt::PointingHandCursor : Qt::ArrowCursor);
1048-
if(ui->selector->selector->isHidden())
1049-
showCardMenu(false);
1027+
disconnect(ui->selector, &QToolButton::toggled, this, nullptr);
1028+
if(list.isEmpty())
1029+
return;
1030+
connect(ui->selector, &QToolButton::toggled, this, [this, list](bool show) {
1031+
if(show)
1032+
{
1033+
auto *cardPopup = new CardPopup(list, this);
1034+
connect(cardPopup, &CardPopup::activated, qApp->signer(), &QSigner::selectCard, Qt::QueuedConnection);
1035+
connect(cardPopup, &CardPopup::activated, this, [this] { ui->selector->setChecked(false); });
1036+
cardPopup->show();
1037+
}
1038+
else if(auto *cardPopup = findChild<CardPopup*>())
1039+
cardPopup->deleteLater();
1040+
});
10501041
}
10511042

10521043
void MainWindow::containerSummary()

client/MainWindow.h

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,6 @@ class MainWindow final : public QWidget
4646

4747
void showSettings(int page);
4848

49-
signals:
50-
void clearPopups();
51-
52-
private Q_SLOTS:
53-
void changePin1Clicked( bool isForgotPin, bool isBlockedPin );
54-
void changePin2Clicked( bool isForgotPin, bool isBlockedPin );
55-
void changePukClicked();
56-
void open(const QStringList &params, bool crypto, bool sign);
57-
void pageSelected(int page, bool checked = true);
58-
void warningClicked(const QString &link);
59-
6049
protected:
6150
void changeEvent(QEvent* event) final;
6251
void closeEvent(QCloseEvent *event) final;
@@ -68,6 +57,9 @@ private Q_SLOTS:
6857

6958
private:
7059
void adjustDrops();
60+
void changePin1Clicked( bool isForgotPin, bool isBlockedPin );
61+
void changePin2Clicked( bool isForgotPin, bool isBlockedPin );
62+
void changePukClicked();
7163
void convertToBDoc();
7264
void convertToCDoc();
7365
ria::qdigidoc4::ContainerState currentState();
@@ -79,8 +71,10 @@ private Q_SLOTS:
7971
void navigateToPage( ria::qdigidoc4::Pages page, const QStringList &files = QStringList(), bool create = true );
8072
void onCryptoAction(int action, const QString &id, const QString &phone);
8173
void onSignAction(int action, const QString &info1, const QString &info2);
74+
void open(const QStringList &params, bool crypto, bool sign);
8275
void openContainer(bool signature);
8376
void openFiles(const QStringList &files, bool addFile = false, bool forceCreate = false);
77+
void pageSelected(int page, bool checked = true);
8478
void pinUnblock(QSmartCardData::PinType type, bool isForgotPin);
8579
void pinPukChange( QSmartCardData::PinType type );
8680
void resetCryptoDoc(std::unique_ptr<CryptoDoc> &&doc = {});
@@ -92,7 +86,6 @@ private Q_SLOTS:
9286
bool save(bool saveAs = false);
9387
QString selectFile( const QString &title, const QString &filename, bool fixedExt );
9488
void selectPage(ria::qdigidoc4::Pages page);
95-
void showCardMenu( bool show );
9689
template <typename F>
9790
void sign(F &&sign);
9891
void updateCardWarnings(const QSmartCardData &data);
@@ -103,6 +96,7 @@ private Q_SLOTS:
10396
void updateSelectorData(TokenData data);
10497
void updateMyEID(const TokenData &t);
10598
void updateMyEid(const QSmartCardData &data);
99+
void warningClicked(const QString &link);
106100
bool wrap(const QString& wrappedFile, bool enclose);
107101
bool wrapContainer(bool signing);
108102
void containerSummary();

0 commit comments

Comments
 (0)