Merge pull request #1243 from laanwj/2012_05_uiconsole_focus
Automatically focus entry widget when console tab comes into focus
This commit is contained in:
commit
1eb2d8e0bf
3 changed files with 23 additions and 26 deletions
|
@ -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>&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>&Console</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="spacing">
|
||||
|
|
|
@ -113,27 +113,6 @@ RPCConsole::~RPCConsole()
|
|||
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 @@ void RPCConsole::copyMessage()
|
|||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,12 +28,13 @@ public:
|
|||
};
|
||||
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue