aboutsummaryrefslogtreecommitdiff
path: root/src/qt/addressbookpage.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2013-10-25 04:27:05 -0700
committerWladimir J. van der Laan <laanwj@gmail.com>2013-10-25 04:27:05 -0700
commit081c0cdeb2b8c1e8db449f3b38837c4ca3b4ba73 (patch)
tree21559f88288cda3543659d5c06622613284dfa3f /src/qt/addressbookpage.cpp
parent48cc4fc326fa916954967580ca49c24044d55754 (diff)
parent70b14636cd60529c87b2cc61516f5d1bf49299a5 (diff)
downloadbitcoin-081c0cdeb2b8c1e8db449f3b38837c4ca3b4ba73.tar.xz
Merge pull request #3099 from laanwj/2013_10_new_receive_flow
qt: improve "receive coins" workflow
Diffstat (limited to 'src/qt/addressbookpage.cpp')
-rw-r--r--src/qt/addressbookpage.cpp120
1 files changed, 15 insertions, 105 deletions
diff --git a/src/qt/addressbookpage.cpp b/src/qt/addressbookpage.cpp
index 5b8d44481e..0b364afca8 100644
--- a/src/qt/addressbookpage.cpp
+++ b/src/qt/addressbookpage.cpp
@@ -12,10 +12,6 @@
#include "csvmodelwriter.h"
#include "guiutil.h"
-#ifdef USE_QRCODE
-#include "qrcodedialog.h"
-#endif
-
#include <QSortFilterProxyModel>
#include <QClipboard>
#include <QMessageBox>
@@ -35,25 +31,29 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
ui->newAddress->setIcon(QIcon());
ui->copyAddress->setIcon(QIcon());
ui->deleteAddress->setIcon(QIcon());
- ui->verifyMessage->setIcon(QIcon());
- ui->signMessage->setIcon(QIcon());
ui->exportButton->setIcon(QIcon());
#endif
-#ifndef USE_QRCODE
- ui->showQRCode->setVisible(false);
-#endif
-
switch(mode)
{
- case ForSending:
+ case ForSelection:
+ switch(tab)
+ {
+ case SendingTab: setWindowTitle(tr("Choose the address to send coins to")); break;
+ case ReceivingTab: setWindowTitle(tr("Choose the address to receive coins with")); break;
+ }
connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setFocus();
+ ui->closeButton->setText(tr("C&hoose"));
ui->exportButton->hide();
break;
case ForEditing:
- ui->buttonBox->setVisible(false);
+ switch(tab)
+ {
+ case SendingTab: setWindowTitle(tr("Sending addresses")); break;
+ case ReceivingTab: setWindowTitle(tr("Receiving addresses")); break;
+ }
break;
}
switch(tab)
@@ -61,12 +61,10 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
case SendingTab:
ui->labelExplanation->setText(tr("These are your Bitcoin addresses for sending payments. Always check the amount and the receiving address before sending coins."));
ui->deleteAddress->setVisible(true);
- ui->signMessage->setVisible(false);
break;
case ReceivingTab:
- ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. You may want to give a different one to each sender so you can keep track of who is paying you."));
+ ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. It is recommended to use a new receiving address for each transaction."));
ui->deleteAddress->setVisible(false);
- ui->signMessage->setVisible(true);
break;
}
@@ -74,10 +72,6 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
QAction *copyAddressAction = new QAction(ui->copyAddress->text(), this);
QAction *copyLabelAction = new QAction(tr("Copy &Label"), this);
QAction *editAction = new QAction(tr("&Edit"), this);
- QAction *sendCoinsAction = new QAction(tr("Send &Coins"), this);
- QAction *showQRCodeAction = new QAction(ui->showQRCode->text(), this);
- QAction *signMessageAction = new QAction(ui->signMessage->text(), this);
- QAction *verifyMessageAction = new QAction(ui->verifyMessage->text(), this);
deleteAction = new QAction(ui->deleteAddress->text(), this);
// Build context menu
@@ -88,30 +82,16 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
if(tab == SendingTab)
contextMenu->addAction(deleteAction);
contextMenu->addSeparator();
- if(tab == SendingTab)
- contextMenu->addAction(sendCoinsAction);
-#ifdef USE_QRCODE
- contextMenu->addAction(showQRCodeAction);
-#endif
- if(tab == ReceivingTab)
- contextMenu->addAction(signMessageAction);
- else if(tab == SendingTab)
- contextMenu->addAction(verifyMessageAction);
// Connect signals for context menu actions
connect(copyAddressAction, SIGNAL(triggered()), this, SLOT(on_copyAddress_clicked()));
connect(copyLabelAction, SIGNAL(triggered()), this, SLOT(onCopyLabelAction()));
connect(editAction, SIGNAL(triggered()), this, SLOT(onEditAction()));
connect(deleteAction, SIGNAL(triggered()), this, SLOT(on_deleteAddress_clicked()));
- connect(sendCoinsAction, SIGNAL(triggered()), this, SLOT(onSendCoinsAction()));
- connect(showQRCodeAction, SIGNAL(triggered()), this, SLOT(on_showQRCode_clicked()));
- connect(signMessageAction, SIGNAL(triggered()), this, SLOT(on_signMessage_clicked()));
- connect(verifyMessageAction, SIGNAL(triggered()), this, SLOT(on_verifyMessage_clicked()));
connect(ui->tableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextualMenu(QPoint)));
- // Pass through accept action from button box
- connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
+ connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(accept()));
}
AddressBookPage::~AddressBookPage()
@@ -197,42 +177,6 @@ void AddressBookPage::onEditAction()
dlg.exec();
}
-void AddressBookPage::on_signMessage_clicked()
-{
- QTableView *table = ui->tableView;
- QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
- foreach (QModelIndex index, indexes)
- {
- QString address = index.data().toString();
- emit signMessage(address);
- }
-}
-
-void AddressBookPage::on_verifyMessage_clicked()
-{
- QTableView *table = ui->tableView;
- QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
- foreach (QModelIndex index, indexes)
- {
- QString address = index.data().toString();
- emit verifyMessage(address);
- }
-}
-
-void AddressBookPage::onSendCoinsAction()
-{
- QTableView *table = ui->tableView;
- QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
- foreach (QModelIndex index, indexes)
- {
- QString address = index.data().toString();
- emit sendCoins(address);
- }
-}
-
void AddressBookPage::on_newAddress_clicked()
{
if(!model)
@@ -278,32 +222,20 @@ void AddressBookPage::selectionChanged()
ui->deleteAddress->setEnabled(true);
ui->deleteAddress->setVisible(true);
deleteAction->setEnabled(true);
- ui->signMessage->setEnabled(false);
- ui->signMessage->setVisible(false);
- ui->verifyMessage->setEnabled(true);
- ui->verifyMessage->setVisible(true);
break;
case ReceivingTab:
// Deleting receiving addresses, however, is not allowed
ui->deleteAddress->setEnabled(false);
ui->deleteAddress->setVisible(false);
deleteAction->setEnabled(false);
- ui->signMessage->setEnabled(true);
- ui->signMessage->setVisible(true);
- ui->verifyMessage->setEnabled(false);
- ui->verifyMessage->setVisible(false);
break;
}
ui->copyAddress->setEnabled(true);
- ui->showQRCode->setEnabled(true);
}
else
{
ui->deleteAddress->setEnabled(false);
- ui->showQRCode->setEnabled(false);
ui->copyAddress->setEnabled(false);
- ui->signMessage->setEnabled(false);
- ui->verifyMessage->setEnabled(false);
}
}
@@ -312,9 +244,6 @@ void AddressBookPage::done(int retval)
QTableView *table = ui->tableView;
if(!table->selectionModel() || !table->model())
return;
- // When this is a tab/widget and not a model dialog, ignore "done"
- if(mode == ForEditing)
- return;
// Figure out which address was selected, and return it
QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
@@ -339,7 +268,7 @@ void AddressBookPage::on_exportButton_clicked()
// CSV is currently the only supported format
QString filename = GUIUtil::getSaveFileName(
this,
- tr("Export Address Book Data"), QString(),
+ tr("Export Address List"), QString(),
tr("Comma separated file (*.csv)"));
if (filename.isNull()) return;
@@ -358,25 +287,6 @@ void AddressBookPage::on_exportButton_clicked()
}
}
-void AddressBookPage::on_showQRCode_clicked()
-{
-#ifdef USE_QRCODE
- QTableView *table = ui->tableView;
- QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
- foreach (QModelIndex index, indexes)
- {
- QString address = index.data().toString();
- QString label = index.sibling(index.row(), 0).data(Qt::EditRole).toString();
-
- QRCodeDialog *dialog = new QRCodeDialog(address, label, tab == ReceivingTab, this);
- dialog->setModel(optionsModel);
- dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->show();
- }
-#endif
-}
-
void AddressBookPage::contextualMenu(const QPoint &point)
{
QModelIndex index = ui->tableView->indexAt(point);