PIVX Core  5.6.99
P2P Digital Currency
editaddressdialog.cpp
Go to the documentation of this file.
1 // Copyright (c) 2011-2014 The Bitcoin developers
2 // Copyright (c) 2014-2015 The Dash developers
3 // Copyright (c) 2015-2017 The PIVX Core developers
4 // Distributed under the MIT/X11 software license, see the accompanying
5 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
6 
7 #include "editaddressdialog.h"
8 #include "ui_editaddressdialog.h"
9 
10 #include "addresstablemodel.h"
11 #include "guiutil.h"
12 
13 #include <QDataWidgetMapper>
14 #include <QMessageBox>
15 
16 EditAddressDialog::EditAddressDialog(Mode mode, QWidget* parent) : QDialog(parent),
17  ui(new Ui::EditAddressDialog),
18  mapper(0),
19  mode(mode),
20  model(0)
21 {
22  ui->setupUi(this);
23 
24  GUIUtil::setupAddressWidget(ui->addressEdit, this);
25 
26  switch (mode) {
28  setWindowTitle(tr("New receiving address"));
29  ui->addressEdit->setEnabled(false);
30  break;
31  case NewSendingAddress:
32  setWindowTitle(tr("New sending address"));
33  break;
35  setWindowTitle(tr("Edit receiving address"));
36  ui->addressEdit->setEnabled(false);
37  break;
38  case EditSendingAddress:
39  setWindowTitle(tr("Edit sending address"));
40  break;
41  }
42 
43  mapper = new QDataWidgetMapper(this);
44  mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
45 }
46 
48 {
49  delete ui;
50 }
51 
53 {
54  this->model = model;
55  if (!model)
56  return;
57 
58  mapper->setModel(model);
59  mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
60  mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
61 }
62 
64 {
65  mapper->setCurrentIndex(row);
66 }
67 
69 {
70  if (!model)
71  return false;
72 
73  switch (mode) {
75  case NewSendingAddress:
76  address = model->addRow(
78  ui->labelEdit->text(),
79  ui->addressEdit->text());
80  break;
82  case EditSendingAddress:
83  if (mapper->submit()) {
84  address = ui->addressEdit->text();
85  }
86  break;
87  }
88  return !address.isEmpty();
89 }
90 
92 {
93  if (!model)
94  return;
95 
96  if (!saveCurrentRow()) {
97  switch (model->getEditStatus()) {
99  // Failed with unknown reason. Just reject.
100  break;
102  // No changes were made during edit operation. Just reject.
103  break;
105  QMessageBox::warning(this, windowTitle(),
106  tr("The entered address \"%1\" is not a valid PIVX address.").arg(ui->addressEdit->text()),
107  QMessageBox::Ok, QMessageBox::Ok);
108  break;
110  QMessageBox::warning(this, windowTitle(),
111  tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
112  QMessageBox::Ok, QMessageBox::Ok);
113  break;
115  QMessageBox::critical(this, windowTitle(),
116  tr("Could not unlock wallet."),
117  QMessageBox::Ok, QMessageBox::Ok);
118  break;
120  QMessageBox::critical(this, windowTitle(),
121  tr("New key generation failed."),
122  QMessageBox::Ok, QMessageBox::Ok);
123  break;
124  }
125  return;
126  }
127  QDialog::accept();
128 }
129 
131 {
132  return address;
133 }
134 
135 void EditAddressDialog::setAddress(const QString& address)
136 {
137  this->address = address;
138  ui->addressEdit->setText(address);
139 }
Qt model of the address book in the core.
EditStatus getEditStatus() const
@ WALLET_UNLOCK_FAILURE
Wallet could not be unlocked to create new receiving address.
@ NO_CHANGES
No changes were made during edit operation.
@ INVALID_ADDRESS
Unparsable address.
@ KEY_GENERATION_FAILURE
Generating a new public key for a receiving address failed.
@ OK
Everything ok.
@ DUPLICATE_ADDRESS
Address already in address book.
@ Address
Bitcoin address.
@ Label
User specified label.
static const QString Send
Specifies send address.
QString addRow(const QString &type, const QString &label, const QString &address)
static const QString Receive
Specifies receive address.
Dialog for editing an address and associated information.
Ui::EditAddressDialog * ui
void setModel(AddressTableModel *model)
EditAddressDialog(Mode mode, QWidget *parent)
QDataWidgetMapper * mapper
AddressTableModel * model
void setAddress(const QString &address)
QString getAddress() const
void setupAddressWidget(QValidatedLineEdit *widget, QWidget *parent)
Definition: guiutil.cpp:129