PIVX Core  5.6.99
P2P Digital Currency
backupwallet.cpp
Go to the documentation of this file.
1 // Copyright (c) 2019-2020 The PIVX Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
6 #include "qt/settings/forms/ui_backupwallet.h"
7 
8 #include "guiinterface.h"
9 #include "guiutil.h"
10 #include "qtutils.h"
11 
12 #include <QGraphicsDropShadowEffect>
13 
15  PWidget(_window, parent),
16  ui(new Ui::SettingsBackupWallet)
17 {
18  ui->setupUi(this);
19 
20  this->setStyleSheet(parent->styleSheet());
21 
22  /* Containers */
23  ui->left->setProperty("cssClass", "container");
24  ui->left->setContentsMargins(10,10,10,10);
25 
26  // Title
27  ui->labelTitle->setProperty("cssClass", "text-title-screen");
28  ui->labelTitle_2->setProperty("cssClass", "text-title-screen");
29  ui->labelDivider->setProperty("cssClass", "container-divider");
30 
31  // Subtitles
32  setCssProperty({ui->labelSubtitle1, ui->labelSubtitle_2}, "text-subtitle");
33 
34  // Location
35  ui->labelSubtitleLocation->setProperty("cssClass", "text-title");
36  ui->pushButtonDocuments->setProperty("cssClass", "btn-edit-primary-folder");
37  setShadow(ui->pushButtonDocuments);
38 
39  // Buttons
40  setCssBtnPrimary(ui->pushButtonSave_2);
41 
42  connect(ui->pushButtonDocuments, &QPushButton::clicked, this, &SettingsBackupWallet::selectFileOutput);
43  connect(ui->pushButtonSave_2, &QPushButton::clicked, this, &SettingsBackupWallet::changePassphrase);
44 }
45 
47 {
48  QString filename = GUIUtil::getSaveFileName(this,
49  tr("Backup Wallet"), QString(),
50  tr("Wallet Data (*.dat)"), nullptr);
51 
52  if (!filename.isEmpty() && walletModel) {
53  ui->pushButtonDocuments->setText(filename);
54  inform(walletModel->backupWallet(filename) ? tr("Backup created") : tr("Backup creation failed"));
55  } else {
56  ui->pushButtonDocuments->setText(tr("Select folder..."));
57  inform(tr("Please select a folder to export the backup first."));
58  }
59 }
60 
62 {
63  showHideOp(true);
64  AskPassphraseDialog *dlg = nullptr;
68  } else {
71  }
72  dlg->adjustSize();
73  Q_EMIT execDialog(dlg);
74  dlg->deleteLater();
75 }
76 
78 {
79  delete ui;
80 }
Multifunctional dialog to ask for passphrases.
@ ChangePass
Toggle wallet lock state.
@ Encrypt
Wallet needs to be fully unlocked.
@ ChangePass
Ask old passphrase + new passphrase twice.
@ Encrypt
Ask passphrase twice and encrypt.
PIVX GUI main class.
Definition: pivxgui.h:46
PIVXGUI * window
Definition: pwidget.h:59
void inform(const QString &message)
Definition: pwidget.cpp:45
WalletModel * walletModel
Definition: pwidget.h:61
bool execDialog(QDialog *dialog, int xDiv=3, int yDiv=5)
void showHideOp(bool show)
Definition: pwidget.cpp:40
SettingsBackupWallet(PIVXGUI *_window, QWidget *parent=nullptr)
Ui::SettingsBackupWallet * ui
Definition: backupwallet.h:28
bool backupWallet(const QString &filename)
EncryptionStatus getEncryptionStatus() const
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedSuffixOut)
Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix when ...
Definition: guiutil.cpp:291
void setShadow(QWidget *edit)
Definition: qtutils.cpp:292
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
Definition: qtutils.cpp:334
void setCssBtnPrimary(QPushButton *btn, bool forceUpdate)
Definition: qtutils.cpp:302