From e83474f2ebbae84394f0b86cfea977d3024bd33f Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Mon, 13 Jun 2011 12:07:32 +0200 Subject: [PATCH] Address book: select action (edit/select) based on context --- src/qt/addressbookdialog.cpp | 16 ++++++++++++- src/qt/addressbookdialog.h | 15 ++++++++----- src/qt/bitcoingui.cpp | 4 ++-- src/qt/forms/addressbookdialog.ui | 37 ++----------------------------- src/qt/sendcoinsdialog.cpp | 2 +- 5 files changed, 30 insertions(+), 44 deletions(-) diff --git a/src/qt/addressbookdialog.cpp b/src/qt/addressbookdialog.cpp index 90950a644..c716cd3ee 100644 --- a/src/qt/addressbookdialog.cpp +++ b/src/qt/addressbookdialog.cpp @@ -8,12 +8,24 @@ #include #include -AddressBookDialog::AddressBookDialog(QWidget *parent) : +AddressBookDialog::AddressBookDialog(Mode mode, QWidget *parent) : QDialog(parent), ui(new Ui::AddressBookDialog), model(0) { ui->setupUi(this); + + switch(mode) + { + case ForSending: + connect(ui->receiveTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_buttonBox_accepted())); + connect(ui->sendTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_buttonBox_accepted())); + break; + case ForEditing: + connect(ui->receiveTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_editButton_clicked())); + connect(ui->sendTableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_editButton_clicked())); + break; + } } AddressBookDialog::~AddressBookDialog() @@ -126,6 +138,7 @@ void AddressBookDialog::on_newAddressButton_clicked() void AddressBookDialog::on_tabWidget_currentChanged(int index) { + // Enable/disable buttons based on selected tab switch(index) { case SendingTab: @@ -166,3 +179,4 @@ void AddressBookDialog::on_buttonBox_accepted() reject(); } } + diff --git a/src/qt/addressbookdialog.h b/src/qt/addressbookdialog.h index bf7c2a65a..25b8839cd 100644 --- a/src/qt/addressbookdialog.h +++ b/src/qt/addressbookdialog.h @@ -17,13 +17,18 @@ class AddressBookDialog : public QDialog Q_OBJECT public: - explicit AddressBookDialog(QWidget *parent = 0); - ~AddressBookDialog(); - - enum { + enum Tabs { SendingTab = 0, ReceivingTab = 1 - } Tabs; + }; + + enum Mode { + ForSending, // Pick address for sending + ForEditing // Open address book for editing + }; + + explicit AddressBookDialog(Mode mode, QWidget *parent = 0); + ~AddressBookDialog(); void setModel(AddressTableModel *model); void setTab(int tab); diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 3a24c76ab..05ac66fe1 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -285,7 +285,7 @@ void BitcoinGUI::sendcoinsClicked() void BitcoinGUI::addressbookClicked() { - AddressBookDialog dlg; + AddressBookDialog dlg(AddressBookDialog::ForEditing); dlg.setModel(model->getAddressTableModel()); dlg.setTab(AddressBookDialog::SendingTab); dlg.exec(); @@ -293,7 +293,7 @@ void BitcoinGUI::addressbookClicked() void BitcoinGUI::receivingAddressesClicked() { - AddressBookDialog dlg; + AddressBookDialog dlg(AddressBookDialog::ForEditing); dlg.setModel(model->getAddressTableModel()); dlg.setTab(AddressBookDialog::ReceivingTab); dlg.exec(); diff --git a/src/qt/forms/addressbookdialog.ui b/src/qt/forms/addressbookdialog.ui index 2b3c69fb9..2fc6ca785 100644 --- a/src/qt/forms/addressbookdialog.ui +++ b/src/qt/forms/addressbookdialog.ui @@ -17,7 +17,7 @@ - 0 + 1 @@ -159,38 +159,5 @@ - - - receiveTableView - doubleClicked(QModelIndex) - editButton - click() - - - 334 - 249 - - - 333 - 326 - - - - - sendTableView - doubleClicked(QModelIndex) - editButton - click() - - - 329 - 261 - - - 332 - 326 - - - - + diff --git a/src/qt/sendcoinsdialog.cpp b/src/qt/sendcoinsdialog.cpp index 721ab1410..1c11944e2 100644 --- a/src/qt/sendcoinsdialog.cpp +++ b/src/qt/sendcoinsdialog.cpp @@ -100,7 +100,7 @@ void SendCoinsDialog::on_pasteButton_clicked() void SendCoinsDialog::on_addressBookButton_clicked() { - AddressBookDialog dlg; + AddressBookDialog dlg(AddressBookDialog::ForSending); dlg.setModel(model->getAddressTableModel()); dlg.setTab(AddressBookDialog::SendingTab); dlg.exec();