1 #include "editaddressdialog.h"
2 #include "ui_editaddressdialog.h"
3 #include "addresstablemodel.h"
4 #include "dialogwindowflags.h"
7 #include <QDataWidgetMapper>
10 EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
11 QDialog(parent, DIALOGWINDOWHINTS),
12 ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
16 GUIUtil::setupAddressWidget(ui->addressEdit, this);
20 case NewReceivingAddress:
21 setWindowTitle(tr("New receiving address"));
22 ui->addressEdit->setEnabled(false);
24 case NewSendingAddress:
25 setWindowTitle(tr("New sending address"));
27 case EditReceivingAddress:
28 setWindowTitle(tr("Edit receiving address"));
29 ui->addressEdit->setEnabled(false);
31 case EditSendingAddress:
32 setWindowTitle(tr("Edit sending address"));
36 mapper = new QDataWidgetMapper(this);
37 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
40 EditAddressDialog::~EditAddressDialog()
45 void EditAddressDialog::setModel(AddressTableModel *model)
51 mapper->setModel(model);
52 mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
53 mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
56 void EditAddressDialog::loadRow(int row)
58 mapper->setCurrentIndex(row);
61 bool EditAddressDialog::saveCurrentRow()
68 case NewReceivingAddress:
69 case NewSendingAddress:
70 address = model->addRow(
71 mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
72 ui->labelEdit->text(),
73 ui->addressEdit->text());
75 case EditReceivingAddress:
76 case EditSendingAddress:
79 address = ui->addressEdit->text();
83 return !address.isEmpty();
86 void EditAddressDialog::accept()
93 switch(model->getEditStatus())
95 case AddressTableModel::OK:
96 // Failed with unknown reason. Just reject.
98 case AddressTableModel::NO_CHANGES:
99 // No changes were made during edit operation. Just reject.
101 case AddressTableModel::INVALID_ADDRESS:
102 QMessageBox::warning(this, windowTitle(),
103 tr("The entered address \"%1\" is not a valid NovaCoin address.").arg(ui->addressEdit->text()),
104 QMessageBox::Ok, QMessageBox::Ok);
106 case AddressTableModel::DUPLICATE_ADDRESS:
107 QMessageBox::warning(this, windowTitle(),
108 tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
109 QMessageBox::Ok, QMessageBox::Ok);
111 case AddressTableModel::WALLET_UNLOCK_FAILURE:
112 QMessageBox::critical(this, windowTitle(),
113 tr("Could not unlock wallet."),
114 QMessageBox::Ok, QMessageBox::Ok);
116 case AddressTableModel::KEY_GENERATION_FAILURE:
117 QMessageBox::critical(this, windowTitle(),
118 tr("New key generation failed."),
119 QMessageBox::Ok, QMessageBox::Ok);
128 QString EditAddressDialog::getAddress() const
133 void EditAddressDialog::setAddress(const QString &address)
135 this->address = address;
136 ui->addressEdit->setText(address);