1 #include "editaddressdialog.h"
2 #include "ui_editaddressdialog.h"
3 #include "addresstablemodel.h"
4 #include "dialogwindowflags.h"
5 #include "guiconstants.h"
8 #include <QDataWidgetMapper>
11 EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
12 QDialog(parent, DIALOGWINDOWHINTS),
13 ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
17 GUIUtil::setupAddressWidget(ui->addressEdit, this);
21 case NewReceivingAddress:
22 setWindowTitle(tr("New receiving address"));
23 ui->addressEdit->setEnabled(false);
25 case NewSendingAddress:
26 setWindowTitle(tr("New sending address"));
28 case EditReceivingAddress:
29 setWindowTitle(tr("Edit receiving address"));
30 ui->addressEdit->setEnabled(false);
32 case EditSendingAddress:
33 setWindowTitle(tr("Edit sending address"));
37 mapper = new QDataWidgetMapper(this);
38 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
41 EditAddressDialog::~EditAddressDialog()
46 void EditAddressDialog::setModel(AddressTableModel *model)
52 mapper->setModel(model);
53 mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
54 mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
57 void EditAddressDialog::loadRow(int row)
59 mapper->setCurrentIndex(row);
62 bool EditAddressDialog::saveCurrentRow()
69 case NewReceivingAddress:
70 case NewSendingAddress:
71 address = model->addRow(
72 mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
73 ui->labelEdit->text(),
74 ui->addressEdit->text());
76 case EditReceivingAddress:
77 case EditSendingAddress:
80 address = ui->addressEdit->text();
84 return !address.isEmpty();
87 void EditAddressDialog::accept()
94 switch(model->getEditStatus())
96 case AddressTableModel::OK:
97 // Failed with unknown reason. Just reject.
99 case AddressTableModel::NO_CHANGES:
100 // No changes were made during edit operation. Just reject.
102 case AddressTableModel::INVALID_ADDRESS:
103 QMessageBox::warning(this, windowTitle(),
104 tr("The entered address \"%1\" is not a valid NovaCoin address.").arg(ui->addressEdit->text()),
105 QMessageBox::Ok, QMessageBox::Ok);
107 case AddressTableModel::DUPLICATE_ADDRESS:
108 QMessageBox::warning(this, windowTitle(),
109 tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
110 QMessageBox::Ok, QMessageBox::Ok);
112 case AddressTableModel::WALLET_UNLOCK_FAILURE:
113 QMessageBox::critical(this, windowTitle(),
114 tr("Could not unlock wallet."),
115 QMessageBox::Ok, QMessageBox::Ok);
117 case AddressTableModel::KEY_GENERATION_FAILURE:
118 QMessageBox::critical(this, windowTitle(),
119 tr("New key generation failed."),
120 QMessageBox::Ok, QMessageBox::Ok);
129 QString EditAddressDialog::getAddress() const
134 void EditAddressDialog::setAddress(const QString &address)
136 this->address = address;
137 ui->addressEdit->setText(address);