changeset 2452:59fdd54612a3 draft

Merge pull request #1243 from laanwj/2012_05_uiconsole_focus Automatically focus entry widget when console tab comes into focus
author Gregory Maxwell <gmaxwell@gmail.com>
date Wed, 09 May 2012 08:34:00 -0700
parents 02acb28fdf41 (current diff) 2fa6930a8fe5 (diff)
children 8aca668fcae1
files
diffstat 3 files changed, 23 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/qt/forms/rpcconsole.ui
+++ b/src/qt/forms/rpcconsole.ui
@@ -19,9 +19,9 @@
      <property name="currentIndex">
       <number>0</number>
      </property>
-     <widget class="QWidget" name="tab">
+     <widget class="QWidget" name="tab_info">
       <attribute name="title">
-       <string>Information</string>
+       <string>&amp;Information</string>
       </attribute>
       <layout class="QGridLayout" name="gridLayout" columnstretch="0,1">
        <property name="horizontalSpacing">
@@ -232,9 +232,9 @@
        </item>
       </layout>
      </widget>
-     <widget class="QWidget" name="tab_2">
+     <widget class="QWidget" name="tab_console">
       <attribute name="title">
-       <string>Console</string>
+       <string>&amp;Console</string>
       </attribute>
       <layout class="QVBoxLayout" name="verticalLayout_3">
        <property name="spacing">
--- a/src/qt/rpcconsole.cpp
+++ b/src/qt/rpcconsole.cpp
@@ -113,27 +113,6 @@
     delete ui;
 }
 
-bool RPCConsole::event(QEvent *event)
-{
-   int returnValue = QWidget::event(event);
-
-   if (event->type() == QEvent::LayoutRequest && firstLayout)
-   {
-       // Work around QTableWidget issue:
-       // Call resizeRowsToContents on first Layout request with widget visible,
-       // to make sure multiline messages that were added before the console was shown
-       // have the right height.
-       if(ui->messagesWidget->isVisible())
-       {
-           firstLayout = false;
-           ui->messagesWidget->resizeRowsToContents();
-       }
-       return true;
-   }
-
-   return returnValue;
-}
-
 bool RPCConsole::eventFilter(QObject* obj, QEvent *event)
 {
     if(obj == ui->lineEdit)
@@ -314,3 +293,20 @@
 {
     GUIUtil::copyEntryData(ui->messagesWidget, 1, Qt::EditRole);
 }
+
+void RPCConsole::on_tabWidget_currentChanged(int index)
+{
+    if(ui->tabWidget->widget(index) == ui->tab_console)
+    {
+        if(firstLayout)
+        {
+            // Work around QTableWidget issue:
+            // Call resizeRowsToContents on first Layout request with widget visible,
+            // to make sure multiline messages that were added before the console was shown
+            // have the right height.
+            firstLayout = false;
+            ui->messagesWidget->resizeRowsToContents();
+        }
+        ui->lineEdit->setFocus();
+    }
+}
--- a/src/qt/rpcconsole.h
+++ b/src/qt/rpcconsole.h
@@ -28,12 +28,13 @@
     };
 
 protected:
-    virtual bool event(QEvent *event);
     virtual bool eventFilter(QObject* obj, QEvent *event);
 
 private slots:
     void on_lineEdit_returnPressed();
 
+    void on_tabWidget_currentChanged(int index);
+
 public slots:
     void clear();
     void message(int category, const QString &message);