1 #include "sendcoinsdialog.h"
2 #include "ui_sendcoinsdialog.h"
3 #include "clientmodel.h"
6 #include "addressbookdialog.h"
7 #include "optionsmodel.h"
9 #include <QApplication>
11 #include <QMessageBox>
15 SendCoinsDialog::SendCoinsDialog(QWidget *parent, const QString &address) :
17 ui(new Ui::SendCoinsDialog),
22 GUIUtil::setupAddressWidget(ui->payTo, this);
24 // Set initial send-to address if provided
25 if(!address.isEmpty())
27 ui->payTo->setText(address);
28 ui->payAmount->setFocus();
32 void SendCoinsDialog::setModel(ClientModel *model)
37 SendCoinsDialog::~SendCoinsDialog()
42 void SendCoinsDialog::on_sendButton_clicked()
45 QString payAmount = ui->payAmount->text();
47 qint64 payAmountParsed;
49 valid = GUIUtil::parseMoney(payAmount, &payAmountParsed);
53 QMessageBox::warning(this, tr("Send Coins"),
54 tr("The amount to pay must be a valid number."),
55 QMessageBox::Ok, QMessageBox::Ok);
59 if(ui->addToAddressBook->isChecked())
61 // Add address to address book under label, if specified
62 label = ui->addAsLabel->text();
65 switch(model->sendCoins(ui->payTo->text(), payAmountParsed, label))
67 case ClientModel::InvalidAddress:
68 QMessageBox::warning(this, tr("Send Coins"),
69 tr("The recepient address is not valid, please recheck."),
70 QMessageBox::Ok, QMessageBox::Ok);
71 ui->payTo->setFocus();
73 case ClientModel::InvalidAmount:
74 QMessageBox::warning(this, tr("Send Coins"),
75 tr("The amount to pay must be larger than 0."),
76 QMessageBox::Ok, QMessageBox::Ok);
77 ui->payAmount->setFocus();
79 case ClientModel::AmountExceedsBalance:
80 QMessageBox::warning(this, tr("Send Coins"),
81 tr("Amount exceeds your balance"),
82 QMessageBox::Ok, QMessageBox::Ok);
83 ui->payAmount->setFocus();
85 case ClientModel::AmountWithFeeExceedsBalance:
86 QMessageBox::warning(this, tr("Send Coins"),
87 tr("Total exceeds your balance when the %1 transaction fee is included").
88 arg(GUIUtil::formatMoney(model->getOptionsModel()->getTransactionFee())),
89 QMessageBox::Ok, QMessageBox::Ok);
90 ui->payAmount->setFocus();
98 void SendCoinsDialog::on_pasteButton_clicked()
100 // Paste text from clipboard into recipient field
101 ui->payTo->setText(QApplication::clipboard()->text());
104 void SendCoinsDialog::on_addressBookButton_clicked()
106 AddressBookDialog dlg(AddressBookDialog::ForSending);
107 dlg.setModel(model->getAddressTableModel());
108 dlg.setTab(AddressBookDialog::SendingTab);
110 ui->payTo->setText(dlg.getReturnValue());
113 void SendCoinsDialog::on_buttonBox_rejected()
118 void SendCoinsDialog::on_addToAddressBook_toggled(bool checked)
120 ui->addAsLabel->setEnabled(checked);