1 #include "sendcoinsdialog.h"
2 #include "ui_sendcoinsdialog.h"
3 #include "walletmodel.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),
21 #if QT_VERSION >= 0x040700
22 ui->addAsLabel->setPlaceholderText(tr("Enter a label for this address to add it to your address book"));
24 GUIUtil::setupAddressWidget(ui->payTo, this);
26 // Set initial send-to address if provided
27 if(!address.isEmpty())
29 ui->payTo->setText(address);
30 ui->payAmount->setFocus();
34 void SendCoinsDialog::setModel(WalletModel *model)
39 SendCoinsDialog::~SendCoinsDialog()
44 void SendCoinsDialog::on_sendButton_clicked()
47 QString payAmount = ui->payAmount->text();
49 qint64 payAmountParsed;
51 valid = GUIUtil::parseMoney(payAmount, &payAmountParsed);
53 if(!valid || payAmount.isEmpty())
55 QMessageBox::warning(this, tr("Send Coins"),
56 tr("Must fill in an amount to pay."),
57 QMessageBox::Ok, QMessageBox::Ok);
61 // Add address to address book under label, if specified
62 label = ui->addAsLabel->text();
64 switch(model->sendCoins(ui->payTo->text(), payAmountParsed, label))
66 case WalletModel::InvalidAddress:
67 QMessageBox::warning(this, tr("Send Coins"),
68 tr("The recepient address is not valid, please recheck."),
69 QMessageBox::Ok, QMessageBox::Ok);
70 ui->payTo->setFocus();
72 case WalletModel::InvalidAmount:
73 QMessageBox::warning(this, tr("Send Coins"),
74 tr("The amount to pay must be larger than 0."),
75 QMessageBox::Ok, QMessageBox::Ok);
76 ui->payAmount->setFocus();
78 case WalletModel::AmountExceedsBalance:
79 QMessageBox::warning(this, tr("Send Coins"),
80 tr("Amount exceeds your balance"),
81 QMessageBox::Ok, QMessageBox::Ok);
82 ui->payAmount->setFocus();
84 case WalletModel::AmountWithFeeExceedsBalance:
85 QMessageBox::warning(this, tr("Send Coins"),
86 tr("Total exceeds your balance when the %1 transaction fee is included").
87 arg(GUIUtil::formatMoney(model->getOptionsModel()->getTransactionFee())),
88 QMessageBox::Ok, QMessageBox::Ok);
89 ui->payAmount->setFocus();
97 void SendCoinsDialog::on_pasteButton_clicked()
99 // Paste text from clipboard into recipient field
100 ui->payTo->setText(QApplication::clipboard()->text());
103 void SendCoinsDialog::on_addressBookButton_clicked()
105 AddressBookDialog dlg(AddressBookDialog::ForSending);
106 dlg.setModel(model->getAddressTableModel());
107 dlg.setTab(AddressBookDialog::SendingTab);
109 ui->payTo->setText(dlg.getReturnValue());
110 ui->payAmount->setFocus();
113 void SendCoinsDialog::on_buttonBox_rejected()
118 void SendCoinsDialog::on_payTo_textChanged(const QString &address)
120 ui->addAsLabel->setText(model->labelForAddress(address));