Skip to content

Commit b9b3a96

Browse files
metsmaRaul Metsma
andauthored
Disable signing button on some cases (#824)
IB-6637 Signed-off-by: Raul Metsma <38207162766@eesti.ee> Co-authored-by: Raul Metsma <38207162766@eesti.ee>
1 parent 5fbb738 commit b9b3a96

File tree

4 files changed

+15
-16
lines changed

4 files changed

+15
-16
lines changed

client/widgets/ContainerPage.cpp

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ void ContainerPage::clear()
152152
{
153153
ui->leftPane->clear();
154154
ui->rightPane->clear();
155-
canDecrypt = false;
155+
isSupported = false;
156156
}
157157

158158
void ContainerPage::clearPopups()
@@ -305,7 +305,9 @@ void ContainerPage::showMainAction(const QList<Actions> &actions)
305305

306306
void ContainerPage::showSigningButton()
307307
{
308-
if(cardInReader.isEmpty())
308+
if(!isSupported)
309+
hideMainAction();
310+
else if(cardInReader.isEmpty())
309311
showMainAction({ SignatureMobile, SignatureSmartID });
310312
else if(isSeal)
311313
showMainAction({ SignatureToken, SignatureMobile, SignatureSmartID });
@@ -316,7 +318,7 @@ void ContainerPage::showSigningButton()
316318
void ContainerPage::transition(CryptoDoc* container, bool canDecrypt)
317319
{
318320
clear();
319-
this->canDecrypt = canDecrypt;
321+
isSupported = canDecrypt;
320322
ContainerState state = container->state();
321323
ui->leftPane->stateChange(state);
322324
ui->rightPane->stateChange(state);
@@ -348,17 +350,16 @@ void ContainerPage::transition(DigiDoc* container)
348350

349351
for(const DigiDocSignature &c: container->timestamps())
350352
{
351-
SignatureItem *item = new SignatureItem(c, state, false, ui->rightPane);
353+
SignatureItem *item = new SignatureItem(c, state, ui->rightPane);
352354
if(item->isInvalid())
353355
addError(item, errors);
354356
ui->rightPane->addHeaderWidget(item);
355357
}
356358
}
357359

358-
bool enableSigning = container->isSupported();
359360
for(const DigiDocSignature &c: container->signatures())
360361
{
361-
SignatureItem *item = new SignatureItem(c, state, enableSigning, ui->rightPane);
362+
SignatureItem *item = new SignatureItem(c, state, ui->rightPane);
362363
if(item->isInvalid())
363364
addError(item, errors);
364365
ui->rightPane->addWidget(item);
@@ -373,18 +374,16 @@ void ContainerPage::transition(DigiDoc* container)
373374
if(container->fileName().endsWith(QStringLiteral("ddoc"), Qt::CaseInsensitive))
374375
emit warning(UnsupportedDDocWarning);
375376

376-
if(enableSigning || container->isService())
377-
showSigningButton();
378-
else
379-
hideMainAction();
377+
isSupported = container->isSupported() || container->isService();
378+
showSigningButton();
380379

381380
ui->leftPane->setModel(container->documentModel());
382381
updatePanes(state);
383382
}
384383

385384
void ContainerPage::update(bool canDecrypt, CryptoDoc* container)
386385
{
387-
this->canDecrypt = canDecrypt;
386+
isSupported = canDecrypt;
388387
if(ui->leftPane->getState() & EncryptedContainer)
389388
updateDecryptionButton();
390389

@@ -400,7 +399,7 @@ void ContainerPage::update(bool canDecrypt, CryptoDoc* container)
400399

401400
void ContainerPage::updateDecryptionButton()
402401
{
403-
if(!canDecrypt || cardInReader.isEmpty())
402+
if(!isSupported || cardInReader.isEmpty())
404403
hideMainAction();
405404
else if(isSeal)
406405
showMainAction({ DecryptToken });

client/widgets/ContainerPage.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public slots:
9595

9696
const char *cancelText = "CANCEL";
9797
const char *convertText = "ENCRYPT";
98-
bool canDecrypt = false;
98+
bool isSupported = false;
9999
bool isSeal = false;
100100
bool isExpired = false;
101101
bool isBlocked = false;

client/widgets/SignatureItem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class SignatureItem::Private: public Ui::SignatureItem
5252
QString status;
5353
};
5454

55-
SignatureItem::SignatureItem(DigiDocSignature s, ContainerState /*state*/, bool isSupported, QWidget *parent)
55+
SignatureItem::SignatureItem(DigiDocSignature s, ContainerState /*state*/, QWidget *parent)
5656
: Item(parent)
5757
, ui(new Private(std::move(s)))
5858
{
@@ -67,7 +67,7 @@ SignatureItem::SignatureItem(DigiDocSignature s, ContainerState /*state*/, bool
6767
ui->remove->setIcons(QStringLiteral("/images/icon_remove.svg"), QStringLiteral("/images/icon_remove_hover.svg"),
6868
QStringLiteral("/images/icon_remove_pressed.svg"), 17, 17);
6969
ui->remove->init(LabelButton::White, QString(), 0);
70-
ui->remove->setVisible(isSupported);
70+
ui->remove->setVisible(s.parent()->isSupported());
7171
connect(ui->remove, &LabelButton::clicked, this, &SignatureItem::removeSignature);
7272
init();
7373
}

client/widgets/SignatureItem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class SignatureItem : public Item
2929
Q_OBJECT
3030

3131
public:
32-
explicit SignatureItem(DigiDocSignature s, ria::qdigidoc4::ContainerState state, bool isSupported, QWidget *parent = nullptr);
32+
explicit SignatureItem(DigiDocSignature s, ria::qdigidoc4::ContainerState state, QWidget *parent = nullptr);
3333
~SignatureItem() override;
3434

3535
ria::qdigidoc4::WarningType getError() const;

0 commit comments

Comments
 (0)