fixed focus when switching to plain topic view
authorDirk Rettschlag <dirk.rettschlag@gmail.com>
Thu, 28 Jan 2010 13:04:52 +0000 (14:04 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Fri, 29 Jan 2010 23:53:39 +0000 (00:53 +0100)
src/qtui/mainwin.cpp
src/qtui/mainwin.h
src/qtui/topicwidget.cpp
src/qtui/topicwidget.h

index 32b59ab..48b2aa1 100644 (file)
@@ -620,17 +620,19 @@ void MainWin::setupInputWidget() {
   _bufferWidget->setFocusProxy(_inputWidget);
 
   _inputWidget->inputLine()->installEventFilter(_bufferWidget);
   _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");
 }
 
 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);
 
 
   addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical);
 
index 9807550..010a1bc 100644 (file)
@@ -49,6 +49,7 @@ class MsgProcessorStatusWidget;
 class NickListWidget;
 class SystemTray;
 class ChatMonitorView;
 class NickListWidget;
 class SystemTray;
 class ChatMonitorView;
+class TopicWidget;
 
 class QMenu;
 class QLabel;
 
 class QMenu;
 class QLabel;
@@ -202,6 +203,7 @@ class MainWin
     NickListWidget *_nickListWidget;
     InputWidget *_inputWidget;
     ChatMonitorView *_chatMonitorView;
     NickListWidget *_nickListWidget;
     InputWidget *_inputWidget;
     ChatMonitorView *_chatMonitorView;
+    TopicWidget *_topicWidget;
 
     QMenu *_fileMenu, *_networksMenu, *_viewMenu, *_bufferViewsMenu, *_settingsMenu, *_helpMenu, *_helpDebugMenu;
     QMenu *_toolbarMenu;
 
     QMenu *_fileMenu, *_networksMenu, *_viewMenu, *_bufferViewsMenu, *_settingsMenu, *_helpMenu, *_helpDebugMenu;
     QMenu *_toolbarMenu;
index 366582a..a8b414f 100644 (file)
@@ -183,6 +183,7 @@ void TopicWidget::switchPlain() {
   ui.stackedWidget->setCurrentIndex(0);
   ui.topicLineEdit->setText(_topic);
   updateGeometry();
   ui.stackedWidget->setCurrentIndex(0);
   ui.topicLineEdit->setText(_topic);
   updateGeometry();
+  emit switchedPlain();
 }
 
 // filter for the input widget to switch back to normal mode
 }
 
 // filter for the input widget to switch back to normal mode
index f293851..c390549 100644 (file)
@@ -38,6 +38,9 @@ public:
   virtual bool eventFilter(QObject *obj, QEvent *event);
   inline bool isReadOnly() const { return _readonly; }
 
   virtual bool eventFilter(QObject *obj, QEvent *event);
   inline bool isReadOnly() const { return _readonly; }
 
+  signals:
+    void switchedPlain();
+
 protected slots:
   virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous);
   virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
 protected slots:
   virtual void currentChanged(const QModelIndex &current, const QModelIndex &previous);
   virtual void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);