twisterp2pblockchainnetworkbittorrentmicrobloggingipv6social-networkdhtdecentralizedtwisterarmyp2p-networktwister-servertwister-ipv6twister-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
2.8 KiB
103 lines
2.8 KiB
#include "editaddressdialog.h" |
|
#include "ui_editaddressdialog.h" |
|
#include "addresstablemodel.h" |
|
#include "guiutil.h" |
|
|
|
#include <QDataWidgetMapper> |
|
#include <QMessageBox> |
|
|
|
EditAddressDialog::EditAddressDialog(Mode mode, QWidget *parent) : |
|
QDialog(parent), |
|
ui(new Ui::EditAddressDialog), mapper(0), mode(mode), model(0) |
|
{ |
|
ui->setupUi(this); |
|
|
|
GUIUtil::setupAddressWidget(ui->addressEdit, this); |
|
|
|
switch(mode) |
|
{ |
|
case NewReceivingAddress: |
|
setWindowTitle(tr("New receiving address")); |
|
ui->addressEdit->setEnabled(false); |
|
break; |
|
case NewSendingAddress: |
|
setWindowTitle(tr("New sending address")); |
|
break; |
|
case EditReceivingAddress: |
|
setWindowTitle(tr("Edit receiving address")); |
|
ui->addressEdit->setDisabled(true); |
|
break; |
|
case EditSendingAddress: |
|
setWindowTitle(tr("Edit sending address")); |
|
break; |
|
} |
|
|
|
mapper = new QDataWidgetMapper(this); |
|
mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); |
|
} |
|
|
|
EditAddressDialog::~EditAddressDialog() |
|
{ |
|
delete ui; |
|
} |
|
|
|
void EditAddressDialog::setModel(AddressTableModel *model) |
|
{ |
|
this->model = model; |
|
mapper->setModel(model); |
|
mapper->addMapping(ui->labelEdit, AddressTableModel::Label); |
|
mapper->addMapping(ui->addressEdit, AddressTableModel::Address); |
|
} |
|
|
|
void EditAddressDialog::loadRow(int row) |
|
{ |
|
mapper->setCurrentIndex(row); |
|
} |
|
|
|
QString EditAddressDialog::saveCurrentRow() |
|
{ |
|
QString address; |
|
switch(mode) |
|
{ |
|
case NewReceivingAddress: |
|
case NewSendingAddress: |
|
address = model->addRow( |
|
mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive, |
|
ui->labelEdit->text(), |
|
ui->addressEdit->text()); |
|
break; |
|
case EditReceivingAddress: |
|
case EditSendingAddress: |
|
if(mapper->submit()) |
|
{ |
|
address = ui->addressEdit->text(); |
|
} |
|
break; |
|
} |
|
return address; |
|
} |
|
|
|
void EditAddressDialog::accept() |
|
{ |
|
if(mode == NewSendingAddress || mode == EditSendingAddress) |
|
{ |
|
// For sending addresses, check validity |
|
// Not needed for receiving addresses, as those are generated |
|
if(!model->validateAddress(ui->addressEdit->text())) |
|
{ |
|
QMessageBox::warning(this, windowTitle(), |
|
tr("The entered address \"%1\" is not a valid bitcoin address.").arg(ui->addressEdit->text()), |
|
QMessageBox::Ok, QMessageBox::Ok); |
|
return; |
|
} |
|
} |
|
if(saveCurrentRow().isEmpty()) |
|
{ |
|
QMessageBox::warning(this, windowTitle(), |
|
tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()), |
|
QMessageBox::Ok, QMessageBox::Ok); |
|
return; |
|
} |
|
QDialog::accept(); |
|
} |
|
|
|
|