Automatically refocus on new SendCoinsEntrys and scroll to them.
authorMatt Corallo <matt@bluematt.me>
Wed, 7 Dec 2011 05:00:04 +0000 (00:00 -0500)
committerMatt Corallo <matt@bluematt.me>
Thu, 5 Jan 2012 05:29:28 +0000 (00:29 -0500)
src/qt/sendcoinsdialog.cpp
src/qt/sendcoinsentry.cpp
src/qt/sendcoinsentry.h

index 762f27d..6d32891 100644 (file)
@@ -11,6 +11,7 @@
 #include <QMessageBox>
 #include <QLocale>
 #include <QTextDocument>
+#include <QScrollBar>
 
 SendCoinsDialog::SendCoinsDialog(QWidget *parent) :
     QDialog(parent),
@@ -188,6 +189,12 @@ SendCoinsEntry *SendCoinsDialog::addEntry()
 
     // Focus the field, so that entry can start immediately
     entry->clear();
+    entry->setFocus();
+    ui->scrollAreaWidgetContents->resize(ui->scrollAreaWidgetContents->sizeHint());
+    QCoreApplication::instance()->processEvents();
+    QScrollBar* bar = ui->scrollArea->verticalScrollBar();
+    if (bar)
+        bar->setSliderPosition(bar->maximum());
     return entry;
 }
 
index 23b11cc..ab5460f 100644 (file)
@@ -151,3 +151,8 @@ bool SendCoinsEntry::isClear()
     return ui->payTo->text().isEmpty();
 }
 
+void SendCoinsEntry::setFocus()
+{
+    ui->payTo->setFocus();
+}
+
index b7f4a0a..cdbf893 100644 (file)
@@ -31,6 +31,8 @@ public:
      */
     QWidget *setupTabChain(QWidget *prev);
 
+    void setFocus();
+
 public slots:
     void setRemoveEnabled(bool enabled);
     void clear();