Selection/tab navigation fixes
authorWladimir J. van der Laan <laanwj@gmail.com>
Thu, 7 Jul 2011 16:25:27 +0000 (18:25 +0200)
committerWladimir J. van der Laan <laanwj@gmail.com>
Thu, 7 Jul 2011 16:25:27 +0000 (18:25 +0200)
src/qt/addressbookpage.cpp
src/qt/addressbookpage.h
src/qt/sendcoinsdialog.cpp
src/qt/transactionview.cpp

index 67ed0fe..5127eb6 100644 (file)
@@ -19,7 +19,8 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
     switch(mode)
     {
     case ForSending:
-        connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(on_buttonBox_accepted()));
+        connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(accept()));
+        ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
         ui->tableView->setFocus();
         break;
     case ForEditing:
@@ -34,6 +35,9 @@ AddressBookPage::AddressBookPage(Mode mode, Tabs tab, QWidget *parent) :
     case ReceivingTab:
         break;
     }
+    ui->tableView->setTabKeyNavigation(false);
+
+    connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
 }
 
 AddressBookPage::~AddressBookPage()
@@ -127,26 +131,6 @@ void AddressBookPage::on_deleteButton_clicked()
     }
 }
 
-void AddressBookPage::on_buttonBox_accepted()
-{
-    QTableView *table = getCurrentTable();
-    QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
-
-    foreach (QModelIndex index, indexes)
-    {
-        QVariant address = table->model()->data(index);
-        returnValue = address.toString();
-    }
-    if(!returnValue.isEmpty())
-    {
-        accept();
-    }
-    else
-    {
-        reject();
-    }
-}
-
 void AddressBookPage::selectionChanged()
 {
     // Set button states based on selected tab and selection
@@ -177,5 +161,21 @@ void AddressBookPage::done(int retval)
     // 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
+    QTableView *table = getCurrentTable();
+    QModelIndexList indexes = table->selectionModel()->selectedRows(AddressTableModel::Address);
+
+    foreach (QModelIndex index, indexes)
+    {
+        QVariant address = table->model()->data(index);
+        returnValue = address.toString();
+    }
+
+    if(returnValue.isEmpty())
+    {
+        retval = Rejected;
+    }
+
     QDialog::done(retval);
 }
index f25bbc9..c403952 100644 (file)
@@ -47,7 +47,6 @@ private:
     QTableView *getCurrentTable();
 
 private slots:
-    void on_buttonBox_accepted();
     void on_deleteButton_clicked();
     void on_newAddressButton_clicked();
     void on_copyToClipboard_clicked();
index 8050baf..2265f88 100644 (file)
@@ -113,11 +113,13 @@ void SendCoinsDialog::on_pasteButton_clicked()
 
 void SendCoinsDialog::on_addressBookButton_clicked()
 {
-    AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::SendingTab);
+    AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::SendingTab, this);
     dlg.setModel(model->getAddressTableModel());
-    dlg.exec();
-    ui->payTo->setText(dlg.getReturnValue());
-    ui->payAmount->setFocus();
+    if(dlg.exec())
+    {
+        ui->payTo->setText(dlg.getReturnValue());
+        ui->payAmount->setFocus();
+    }
 }
 
 void SendCoinsDialog::on_buttonBox_rejected()
index 037dfbb..5a383da 100644 (file)
@@ -89,6 +89,7 @@ TransactionView::TransactionView(QWidget *parent) :
     hlayout->addSpacing(width);
     // Always show scroll bar
     view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
+    view->setTabKeyNavigation(false);
 
     transactionView = view;