]> Git Repo - VerusCoin.git/blame - src/qt/editaddressdialog.cpp
Remove references to X11 licence
[VerusCoin.git] / src / qt / editaddressdialog.cpp
CommitLineData
e592d43f 1// Copyright (c) 2011-2013 The Bitcoin developers
78253fcb 2// Distributed under the MIT software license, see the accompanying
e592d43f
WL
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
b8e302eb
WL
5#include "editaddressdialog.h"
6#include "ui_editaddressdialog.h"
32af5266 7
44384a46 8#include "addresstablemodel.h"
e457b021 9#include "guiutil.h"
b8e302eb 10
44384a46 11#include <QDataWidgetMapper>
48208883 12#include <QMessageBox>
44384a46 13
e457b021 14EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) :
b8e302eb 15 QDialog(parent),
6c1bf199
PK
16 ui(new Ui::EditAddressDialog),
17 mapper(0),
18 mode(mode),
19 model(0)
b8e302eb
WL
20{
21 ui->setupUi(this);
e457b021
WL
22
23 GUIUtil::setupAddressWidget(ui->addressEdit, this);
44384a46
WL
24
25 switch(mode)
26 {
27 case NewReceivingAddress:
28 setWindowTitle(tr("New receiving address"));
29 ui->addressEdit->setEnabled(false);
30 break;
31 case NewSendingAddress:
32 setWindowTitle(tr("New sending address"));
33 break;
34 case EditReceivingAddress:
35 setWindowTitle(tr("Edit receiving address"));
e6d23005 36 ui->addressEdit->setEnabled(false);
44384a46
WL
37 break;
38 case EditSendingAddress:
39 setWindowTitle(tr("Edit sending address"));
40 break;
41 }
42
43 mapper = new QDataWidgetMapper(this);
48208883 44 mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit);
b8e302eb
WL
45}
46
47EditAddressDialog::~EditAddressDialog()
48{
49 delete ui;
50}
44384a46
WL
51
52void EditAddressDialog::setModel(AddressTableModel *model)
53{
48208883 54 this->model = model;
e6d23005
PK
55 if(!model)
56 return;
57
44384a46
WL
58 mapper->setModel(model);
59 mapper->addMapping(ui->labelEdit, AddressTableModel::Label);
60 mapper->addMapping(ui->addressEdit, AddressTableModel::Address);
61}
62
63void EditAddressDialog::loadRow(int row)
64{
44384a46
WL
65 mapper->setCurrentIndex(row);
66}
48208883 67
ffccb569 68bool EditAddressDialog::saveCurrentRow()
48208883 69{
dead0ff8
WL
70 if(!model)
71 return false;
e6d23005 72
48208883
WL
73 switch(mode)
74 {
75 case NewReceivingAddress:
76 case NewSendingAddress:
2547f1f7 77 address = model->addRow(
48208883
WL
78 mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
79 ui->labelEdit->text(),
ebff5c40 80 ui->addressEdit->text());
48208883
WL
81 break;
82 case EditReceivingAddress:
83 case EditSendingAddress:
2547f1f7
WL
84 if(mapper->submit())
85 {
86 address = ui->addressEdit->text();
87 }
48208883
WL
88 break;
89 }
ffccb569 90 return !address.isEmpty();
48208883 91}
669b0a58
WL
92
93void EditAddressDialog::accept()
94{
dead0ff8
WL
95 if(!model)
96 return;
e6d23005 97
ffccb569 98 if(!saveCurrentRow())
669b0a58 99 {
a5e6d723 100 switch(model->getEditStatus())
669b0a58 101 {
e6d23005
PK
102 case AddressTableModel::OK:
103 // Failed with unknown reason. Just reject.
104 break;
105 case AddressTableModel::NO_CHANGES:
106 // No changes were made during edit operation. Just reject.
a5e6d723
WL
107 break;
108 case AddressTableModel::INVALID_ADDRESS:
669b0a58 109 QMessageBox::warning(this, windowTitle(),
ff0ee876 110 tr("The entered address \"%1\" is not a valid Bitcoin address.").arg(ui->addressEdit->text()),
669b0a58 111 QMessageBox::Ok, QMessageBox::Ok);
e6d23005
PK
112 break;
113 case AddressTableModel::DUPLICATE_ADDRESS:
114 QMessageBox::warning(this, windowTitle(),
115 tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
116 QMessageBox::Ok, QMessageBox::Ok);
117 break;
b7bcaf94
WL
118 case AddressTableModel::WALLET_UNLOCK_FAILURE:
119 QMessageBox::critical(this, windowTitle(),
120 tr("Could not unlock wallet."),
121 QMessageBox::Ok, QMessageBox::Ok);
e6d23005 122 break;
c5aa1b13
WL
123 case AddressTableModel::KEY_GENERATION_FAILURE:
124 QMessageBox::critical(this, windowTitle(),
125 tr("New key generation failed."),
126 QMessageBox::Ok, QMessageBox::Ok);
76d8170c 127 break;
a5e6d723 128
e6d23005 129 }
669b0a58
WL
130 return;
131 }
132 QDialog::accept();
133}
134
ffccb569
WL
135QString EditAddressDialog::getAddress() const
136{
137 return address;
138}
9bc9593d
WL
139
140void EditAddressDialog::setAddress(const QString &address)
141{
142 this->address = address;
143 ui->addressEdit->setText(address);
144}
This page took 0.183695 seconds and 4 git commands to generate.