1 #include "editaddressdialog.h"
2 #include "ui_editaddressdialog.h"
3 #include "addresstablemodel.h"
6 #include <QDataWidgetMapper>
9 EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
11 ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
15 GUIUtil::setupAddressWidget(ui->addressEdit, this);
19 case NewReceivingAddress:
20 setWindowTitle(tr("New receiving address"));
21 ui->addressEdit->setEnabled(false);
23 case NewSendingAddress:
24 setWindowTitle(tr("New sending address"));
26 case EditReceivingAddress:
27 setWindowTitle(tr("Edit receiving address"));
28 ui->addressEdit->setEnabled(false);
30 case EditSendingAddress:
31 setWindowTitle(tr("Edit sending address"));
35 mapper = new QDataWidgetMapper(this);
36 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
39 EditAddressDialog::~EditAddressDialog()
44 void EditAddressDialog::setModel(AddressTableModel *model)
50 mapper->setModel(model);
51 mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
52 mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
55 void EditAddressDialog::loadRow(int row)
57 mapper->setCurrentIndex(row);
60 bool EditAddressDialog::saveCurrentRow()
67 case NewReceivingAddress:
68 case NewSendingAddress:
69 address = model->addRow(
70 mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
71 ui->labelEdit->text(),
72 ui->addressEdit->text());
74 case EditReceivingAddress:
75 case EditSendingAddress:
78 address = ui->addressEdit->text();
82 return !address.isEmpty();
85 void EditAddressDialog::accept()
92 switch(model->getEditStatus())
94 case AddressTableModel::OK:
95 // Failed with unknown reason. Just reject.
97 case AddressTableModel::NO_CHANGES:
98 // No changes were made during edit operation. Just reject.
100 case AddressTableModel::INVALID_ADDRESS:
101 QMessageBox::warning(this, windowTitle(),
102 tr("The entered address \"%1\" is not a valid NovaCoin address.").arg(ui->addressEdit->text()),
103 QMessageBox::Ok, QMessageBox::Ok);
105 case AddressTableModel::DUPLICATE_ADDRESS:
106 QMessageBox::warning(this, windowTitle(),
107 tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
108 QMessageBox::Ok, QMessageBox::Ok);
110 case AddressTableModel::WALLET_UNLOCK_FAILURE:
111 QMessageBox::critical(this, windowTitle(),
112 tr("Could not unlock wallet."),
113 QMessageBox::Ok, QMessageBox::Ok);
115 case AddressTableModel::KEY_GENERATION_FAILURE:
116 QMessageBox::critical(this, windowTitle(),
117 tr("New key generation failed."),
118 QMessageBox::Ok, QMessageBox::Ok);
127 QString EditAddressDialog::getAddress() const
132 void EditAddressDialog::setAddress(const QString &address)
134 this->address = address;
135 ui->addressEdit->setText(address);