Skip to content

Commit

Permalink
Update dialogs to new UI guidlines
Browse files Browse the repository at this point in the history
* AddRecipients
* CertificateDetails
* CertificateHistory
* KeyDialog

IB-7969

Signed-off-by: Raul Metsma <raul@metsma.ee>
  • Loading branch information
metsma committed Dec 28, 2024
1 parent d7f4bd8 commit 9c4e6c4
Show file tree
Hide file tree
Showing 22 changed files with 714 additions and 1,156 deletions.
2 changes: 1 addition & 1 deletion client/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ if( APPLE )
target_sources(${PROJECT_NAME} PRIVATE ${RESOURCE_FILES} Application_mac.mm MacMenuBar.cpp MacMenuBar.h dialogs/CertificateDetails_mac.mm Diagnostics_unix.cpp)
set_source_files_properties( Application_mac.mm dialogs/CertificateDetails_mac.mm PROPERTIES COMPILE_FLAGS "-fobjc-arc" )
set_source_files_properties( LdapSearch.cpp PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations" )
target_link_libraries(${PROJECT_NAME} "-framework Quartz" "-fobjc-arc")
target_link_libraries(${PROJECT_NAME} "-framework QuickLookUI" "-fobjc-arc")
find_library(PKCS11_MODULE NAMES opensc-pkcs11.so HINTS /Library/OpenSC/lib)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND cp -a ${PKCS11_MODULE} $<TARGET_FILE_DIR:${PROJECT_NAME}>
Expand Down
79 changes: 30 additions & 49 deletions client/dialogs/AddRecipients.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,11 @@
#include "LdapSearch.h"
#include "QSigner.h"
#include "Settings.h"
#include "Styles.h"
#include "TokenData.h"
#include "dialogs/WarningDialog.h"
#include "effects/Overlay.h"

#include <QtCore/QDateTime>
#include <QtCore/QDebug>
#include <QtCore/QJsonArray>
#include <QtCore/QJsonObject>
#include <QtNetwork/QSslConfiguration>
Expand All @@ -56,18 +54,8 @@ AddRecipients::AddRecipients(ItemList* itemList, QWidget *parent)
new Overlay(this);

ui->leftPane->init(ria::qdigidoc4::ToAddAdresses, QT_TRANSLATE_NOOP("ItemList", "Add recipients"));
ui->leftPane->setFont(Styles::font(Styles::Regular, 20));
ui->rightPane->init(ria::qdigidoc4::AddedAdresses, QT_TRANSLATE_NOOP("ItemList", "Added recipients"));
ui->rightPane->setFont(Styles::font(Styles::Regular, 20));

ui->fromCard->setFont(Styles::font(Styles::Condensed, 12));
ui->fromFile->setFont(Styles::font(Styles::Condensed, 12));
ui->fromHistory->setFont(Styles::font(Styles::Condensed, 12));

ui->cancel->setFont(Styles::font(Styles::Condensed, 14));
ui->confirm->setFont(Styles::font(Styles::Condensed, 14));

ui->confirm->setDisabled(rightList.isEmpty());
connect(ui->confirm, &QPushButton::clicked, this, &AddRecipients::accept);
connect(ui->cancel, &QPushButton::clicked, this, &AddRecipients::reject);
connect(ui->leftPane, &ItemList::search, this, [&](const QString &term) {
Expand Down Expand Up @@ -106,19 +94,15 @@ void AddRecipients::addAllRecipientToRightPane()
QList<SslCertificate> history;
for(AddressItem *value: leftList)
{
if(rightList.contains(value->getKey()))
continue;
addRecipientToRightPane(value);
history.append(value->getKey().cert);
if(addRecipientToRightPane(value, true))
history.append(value->getKey().cert);
}
ui->confirm->setDisabled(rightList.isEmpty());
historyCertData.addAndSave(history);
}

void AddRecipients::addRecipientFromCard()
{
if(auto *item = addRecipientToLeftPane(qApp->signer()->tokenauth().cert()))
addRecipientToRightPane(item, true);
addRecipient(qApp->signer()->tokenauth().cert(), true);
}

void AddRecipients::addRecipientFromFile()
Expand Down Expand Up @@ -150,10 +134,8 @@ void AddRecipients::addRecipientFromFile()
{
WarningDialog::show(this, tr("This certificate cannot be used for encryption"));
}
else if(auto *item = addRecipientToLeftPane(cert))
{
addRecipientToRightPane(item, true);
}
else
addRecipient(cert, true);
}

void AddRecipients::addRecipientFromHistory()
Expand All @@ -163,27 +145,28 @@ void AddRecipients::addRecipientFromHistory()
dlg->open();
}

AddressItem * AddRecipients::addRecipientToLeftPane(const QSslCertificate& cert)
void AddRecipients::addRecipient(const QSslCertificate& cert, bool updateRight)
{
AddressItem *leftItem = leftList.value(cert);
if(leftItem)
return leftItem;

leftItem = new AddressItem(CKey(cert), ui->leftPane);
leftList.insert(cert, leftItem);
ui->leftPane->addWidget(leftItem);
bool contains = rightList.contains(cert);
leftItem->setDisabled(contains);
leftItem->showButton(contains ? AddressItem::Added : AddressItem::Add);

connect(leftItem, &AddressItem::add, this, [this](Item *item) {
addRecipientToRightPane(qobject_cast<AddressItem*>(item), true);
});

if(auto *add = ui->leftPane->findChild<QWidget*>(QStringLiteral("add")))
add->setVisible(true);
if(!leftItem)
{
leftItem = new AddressItem(CKey(cert), ui->leftPane);
leftList.insert(cert, leftItem);
ui->leftPane->addWidget(leftItem);
bool contains = rightList.contains(cert);
leftItem->setDisabled(contains);
leftItem->showButton(contains ? AddressItem::Added : AddressItem::Add);

connect(leftItem, &AddressItem::add, this, [this](Item *item) {
addRecipientToRightPane(qobject_cast<AddressItem*>(item), true);
});

if(auto *add = ui->leftPane->findChild<QWidget*>(QStringLiteral("add")))
add->setVisible(true);
}

return leftItem;
if(updateRight)
addRecipientToRightPane(leftItem, true);
}

bool AddRecipients::addRecipientToRightPane(const CKey &key, bool update)
Expand Down Expand Up @@ -234,12 +217,14 @@ bool AddRecipients::addRecipientToRightPane(const CKey &key, bool update)
return true;
}

void AddRecipients::addRecipientToRightPane(AddressItem *leftItem, bool update)
bool AddRecipients::addRecipientToRightPane(AddressItem *leftItem, bool update)
{
if(addRecipientToRightPane(leftItem->getKey(), update)) {
auto result = addRecipientToRightPane(leftItem->getKey(), update);
if(result) {
leftItem->setDisabled(true);
leftItem->showButton(AddressItem::Added);
}
return result;
}

void AddRecipients::addSelectedCerts(const QList<HistoryCertData>& selectedCertData)
Expand Down Expand Up @@ -297,8 +282,6 @@ void AddRecipients::removeRecipientFromRightPane(Item *toRemove)
void AddRecipients::search(const QString &term, bool select, const QString &type)
{
QApplication::setOverrideCursor(Qt::WaitCursor);
ui->confirm->setDefault(false);
ui->confirm->setAutoDefault(false);

QVariantMap userData {
{QStringLiteral("type"), type},
Expand Down Expand Up @@ -359,10 +342,8 @@ void AddRecipients::showResult(const QList<QSslCertificate> &result, int resultC
c.type() != SslCertificate::MobileIDType)
{
isEmpty = false;
AddressItem *item = addRecipientToLeftPane(k);
if(userData.value(QStringLiteral("select"), false).toBool() &&
(userData.value(QStringLiteral("type")).isNull() || HistoryCertData::toType(SslCertificate(k)) == userData[QStringLiteral("type")]))
addRecipientToRightPane(item, true);
addRecipient(k, userData.value(QStringLiteral("select"), false).toBool() &&
(userData.value(QStringLiteral("type")).isNull() || HistoryCertData::toType(SslCertificate(k)) == userData[QStringLiteral("type")]));
}
}
if(resultCount >= 50)
Expand Down
6 changes: 3 additions & 3 deletions client/dialogs/AddRecipients.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ class AddRecipients final : public QDialog
void addRecipientFromCard();
void addRecipientFromFile();
void addRecipientFromHistory();
AddressItem * addRecipientToLeftPane(const QSslCertificate& cert);
bool addRecipientToRightPane(const CKey &key, bool update = true);
void addRecipientToRightPane(AddressItem *leftItem, bool update = true);
void addRecipient(const QSslCertificate& cert, bool updateRight);
bool addRecipientToRightPane(const CKey &key, bool update);
bool addRecipientToRightPane(AddressItem *leftItem, bool update);
void addSelectedCerts(const QList<HistoryCertData>& selectedCertData);
void enableRecipientFromCard();
void removeRecipientFromRightPane(Item *toRemove);
Expand Down
Loading

0 comments on commit 9c4e6c4

Please sign in to comment.