From 38deedc1b52e915f2eac733e0fd7f5112361241b Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Sat, 25 Jun 2011 19:32:36 +0200 Subject: allow adding address to address book in send dialog --- src/qt/clientmodel.cpp | 7 ++++--- src/qt/clientmodel.h | 2 +- src/qt/forms/sendcoinsdialog.ui | 30 ++++++++++++++++++++++++++++-- src/qt/sendcoinsdialog.cpp | 14 +++++++++++++- src/qt/sendcoinsdialog.h | 1 + 5 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp index 4e6a34c79f..e39bb7ecb1 100644 --- a/src/qt/clientmodel.cpp +++ b/src/qt/clientmodel.cpp @@ -60,7 +60,7 @@ void ClientModel::update() addressTableModel->update(); } -ClientModel::StatusCode ClientModel::sendCoins(const QString &payTo, qint64 payAmount) +ClientModel::StatusCode ClientModel::sendCoins(const QString &payTo, qint64 payAmount, const QString &addToAddressBookAs) { uint160 hash160 = 0; bool valid = false; @@ -95,7 +95,7 @@ ClientModel::StatusCode ClientModel::sendCoins(const QString &payTo, qint64 payA std::string strError = SendMoney(scriptPubKey, payAmount, wtx, true); if (strError == "") { - return OK; + // OK } else if (strError == "ABORTED") { @@ -107,11 +107,12 @@ ClientModel::StatusCode ClientModel::sendCoins(const QString &payTo, qint64 payA return MiscError; } } + // Add addresses that we've sent to to the address book std::string strAddress = payTo.toStdString(); CRITICAL_BLOCK(cs_mapAddressBook) if (!mapAddressBook.count(strAddress)) - SetAddressBookName(strAddress, ""); + SetAddressBookName(strAddress, addToAddressBookAs.toStdString()); return OK; } diff --git a/src/qt/clientmodel.h b/src/qt/clientmodel.h index 169ed8c4c9..da3e52e20e 100644 --- a/src/qt/clientmodel.h +++ b/src/qt/clientmodel.h @@ -39,7 +39,7 @@ public: int getTotalBlocksEstimate() const; /* Send coins */ - StatusCode sendCoins(const QString &payTo, qint64 payAmount); + StatusCode sendCoins(const QString &payTo, qint64 payAmount, const QString &addToAddressBookAs=QString()); private: OptionsModel *optionsModel; AddressTableModel *addressTableModel; diff --git a/src/qt/forms/sendcoinsdialog.ui b/src/qt/forms/sendcoinsdialog.ui index b88839a7ca..46c71456af 100644 --- a/src/qt/forms/sendcoinsdialog.ui +++ b/src/qt/forms/sendcoinsdialog.ui @@ -16,7 +16,7 @@ - + &Amount: @@ -90,9 +90,33 @@ - + + + + + + + Add specified destination address to address book + + + Add to address book as + + + + + + + false + + + Label to add address as + + + + + @@ -170,6 +194,8 @@ payTo + addToAddressBook + addAsLabel payAmount pasteButton addressBookButton diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 5f9ee18a37..67c270e6f8 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -46,6 +46,7 @@ void SendCoinsDialog::on_sendButton_clicked() { bool valid; QString payAmount = ui->payAmount->text(); + QString label; qint64 payAmountParsed; valid = ParseMoney(payAmount.toStdString(), payAmountParsed); @@ -58,7 +59,13 @@ void SendCoinsDialog::on_sendButton_clicked() return; } - switch(model->sendCoins(ui->payTo->text(), payAmountParsed)) + if(ui->addToAddressBook->isChecked()) + { + // Add address to address book under label, if specified + label = ui->addAsLabel->text(); + } + + switch(model->sendCoins(ui->payTo->text(), payAmountParsed, label)) { case ClientModel::InvalidAddress: QMessageBox::warning(this, tr("Send Coins"), @@ -110,3 +117,8 @@ void SendCoinsDialog::on_buttonBox_rejected() { reject(); } + +void SendCoinsDialog::on_addToAddressBook_toggled(bool checked) +{ + ui->addAsLabel->setEnabled(checked); +} diff --git a/src/qt/sendcoinsdialog.h b/src/qt/sendcoinsdialog.h index f73c38d63a..206a854ee1 100644 --- a/src/qt/sendcoinsdialog.h +++ b/src/qt/sendcoinsdialog.h @@ -23,6 +23,7 @@ private: ClientModel *model; private slots: + void on_addToAddressBook_toggled(bool checked); void on_buttonBox_rejected(); void on_addressBookButton_clicked(); void on_pasteButton_clicked(); -- cgit v1.2.3