Feathercoin  0.5.0
P2P Digital Currency
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
editaddressdialog.cpp
Go to the documentation of this file.
1 #include "editaddressdialog.h"
2 #include "ui_editaddressdialog.h"
3 
4 #include "addresstablemodel.h"
5 #include "guiutil.h"
6 
7 #include <QDataWidgetMapper>
8 #include <QMessageBox>
9 
11  QDialog(parent),
12  ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0)
13 {
14  ui->setupUi(this);
15 
16  GUIUtil::setupAddressWidget(ui->addressEdit, this);
17 
18  switch(mode)
19  {
21  setWindowTitle(tr("New receiving address"));
22  ui->addressEdit->setEnabled(false);
23  break;
24  case NewSendingAddress:
25  setWindowTitle(tr("New sending address"));
26  break;
28  setWindowTitle(tr("Edit receiving address"));
29  ui->addressEdit->setEnabled(false);
30  break;
31  case EditSendingAddress:
32  setWindowTitle(tr("Edit sending address"));
33  break;
34  }
35 
36  mapper = new QDataWidgetMapper(this);
37  mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
38 }
39 
41 {
42  delete ui;
43 }
44 
46 {
47  this->model = model;
48  if(!model)
49  return;
50 
51  mapper->setModel(model);
52  mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
53  mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
54 }
55 
57 {
58  mapper->setCurrentIndex(row);
59 }
60 
62 {
63  if(!model)
64  return false;
65 
66  switch(mode)
67  {
69  case NewSendingAddress:
70  address = model->addRow(
72  ui->labelEdit->text(),
73  ui->addressEdit->text());
74  break;
76  case EditSendingAddress:
77  if(mapper->submit())
78  {
79  address = ui->addressEdit->text();
80  }
81  break;
82  }
83  return !address.isEmpty();
84 }
85 
87 {
88  if(!model)
89  return;
90 
91  if(!saveCurrentRow())
92  {
93  switch(model->getEditStatus())
94  {
96  // Failed with unknown reason. Just reject.
97  break;
99  // No changes were made during edit operation. Just reject.
100  break;
102  QMessageBox::warning(this, windowTitle(),
103  tr("The entered address \"%1\" is not a valid Feathercoin address.").arg(ui->addressEdit->text()),
104  QMessageBox::Ok, QMessageBox::Ok);
105  break;
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);
110  break;
112  QMessageBox::critical(this, windowTitle(),
113  tr("Could not unlock wallet."),
114  QMessageBox::Ok, QMessageBox::Ok);
115  break;
117  QMessageBox::critical(this, windowTitle(),
118  tr("New key generation failed."),
119  QMessageBox::Ok, QMessageBox::Ok);
120  break;
121 
122  }
123  return;
124  }
125  QDialog::accept();
126 }
127 
129 {
130  return address;
131 }
132 
133 void EditAddressDialog::setAddress(const QString &address)
134 {
135  this->address = address;
136  ui->addressEdit->setText(address);
137 }
Generating a new public key for a receiving address failed.
QString getAddress() const
Definition: aboutdialog.h:6
EditAddressDialog(Mode mode, QWidget *parent=0)
Address already in address book.
void setupAddressWidget(QLineEdit *widget, QWidget *parent)
Definition: guiutil.cpp:68
static const QString Send
Specifies send address.
void setModel(AddressTableModel *model)
Wallet could not be unlocked to create new receiving address.
QDataWidgetMapper * mapper
Qt model of the address book in the core.
AddressTableModel * model
EditStatus getEditStatus() const
QString addRow(const QString &type, const QString &label, const QString &address)
void setAddress(const QString &address)
static const QString Receive
Specifies receive address.
Dialog for editing an address and associated information.
No changes were made during edit operation.
Ui::EditAddressDialog * ui
User specified label.
void * arg
Definition: env_posix.cc:716