From: Dirk Rettschlag Date: Thu, 28 Jan 2010 13:04:52 +0000 (+0100) Subject: fixed focus when switching to plain topic view X-Git-Tag: 0.6-beta1~60 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=8e9f08aa0f4e663473b634511b1bcc40145e9ba9;hp=3efffa2c3f687b21c8040e9a7ee3830e8f539abf fixed focus when switching to plain topic view --- diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 32b59abf..48b2aa11 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -620,17 +620,19 @@ void MainWin::setupInputWidget() { _bufferWidget->setFocusProxy(_inputWidget); _inputWidget->inputLine()->installEventFilter(_bufferWidget); + + connect(_topicWidget, SIGNAL(switchedPlain()), _bufferWidget, SLOT(setFocus())); } void MainWin::setupTopicWidget() { VerticalDock *dock = new VerticalDock(tr("Topic"), this); dock->setObjectName("TopicDock"); - TopicWidget *topicwidget = new TopicWidget(dock); + _topicWidget = new TopicWidget(dock); - dock->setWidget(topicwidget); + dock->setWidget(_topicWidget); - topicwidget->setModel(Client::bufferModel()); - topicwidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); + _topicWidget->setModel(Client::bufferModel()); + _topicWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel()); addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical); diff --git a/src/qtui/mainwin.h b/src/qtui/mainwin.h index 9807550c..010a1bc7 100644 --- a/src/qtui/mainwin.h +++ b/src/qtui/mainwin.h @@ -49,6 +49,7 @@ class MsgProcessorStatusWidget; class NickListWidget; class SystemTray; class ChatMonitorView; +class TopicWidget; class QMenu; class QLabel; @@ -202,6 +203,7 @@ class MainWin NickListWidget *_nickListWidget; InputWidget *_inputWidget; ChatMonitorView *_chatMonitorView; + TopicWidget *_topicWidget; QMenu *_fileMenu, *_networksMenu, *_viewMenu, *_bufferViewsMenu, *_settingsMenu, *_helpMenu, *_helpDebugMenu; QMenu *_toolbarMenu; diff --git a/src/qtui/topicwidget.cpp b/src/qtui/topicwidget.cpp index 366582ab..a8b414f0 100644 --- a/src/qtui/topicwidget.cpp +++ b/src/qtui/topicwidget.cpp @@ -183,6 +183,7 @@ void TopicWidget::switchPlain() { ui.stackedWidget->setCurrentIndex(0); ui.topicLineEdit->setText(_topic); updateGeometry(); + emit switchedPlain(); } // filter for the input widget to switch back to normal mode diff --git a/src/qtui/topicwidget.h b/src/qtui/topicwidget.h index f293851d..c390549e 100644 --- a/src/qtui/topicwidget.h +++ b/src/qtui/topicwidget.h @@ -38,6 +38,9 @@ public: virtual bool eventFilter(QObject *obj, QEvent *event); inline bool isReadOnly() const { return _readonly; } + signals: + void switchedPlain(); + protected slots: virtual void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);