Add accessor for the All Buffers view to MainWin
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 20 Nov 2008 08:45:22 +0000 (09:45 +0100)
committerManuel Nickschas <sputnick@quassel-irc.org>
Thu, 20 Nov 2008 14:37:11 +0000 (15:37 +0100)
This will allow us to access the UI features of the NetworkModel, e.g. for creating
context menu actions at a global location. We can't do this in NetworkModel since that
is Client only; the All Buffers view seems like a sensible location instead.

src/qtui/mainwin.cpp
src/qtui/mainwin.h
src/uisupport/bufferview.h

index 0a3147f..b7a6181 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 #include "mainwin.h"
-#include <QDir>
+
 #include "aboutdlg.h"
 #include "action.h"
 #include "actioncollection.h"
 #include "buffermodel.h"
+#include "bufferview.h"
 #include "bufferviewmanager.h"
 #include "bufferwidget.h"
 #include "channellistdlg.h"
@@ -279,7 +280,7 @@ void MainWin::addBufferView(BufferViewConfig *config) {
   addDockWidget(Qt::LeftDockWidgetArea, dock);
   _bufferViewsMenu->addAction(dock->toggleViewAction());
 
-  _netViews.append(dock);
+  _bufferViews.append(dock);
 }
 
 void MainWin::removeBufferView(int bufferViewConfigId) {
@@ -298,6 +299,13 @@ void MainWin::removeBufferView(int bufferViewConfigId) {
   }
 }
 
+BufferView *MainWin::allBuffersView() const {
+  // "All Buffers" is always the first dock created
+  if(_bufferViews.count() > 0)
+    return _bufferViews[0]->bufferView();
+  return 0;
+}
+
 void MainWin::on_actionEditNetworks_triggered() {
   SettingsPageDlg dlg(new NetworksSettingsPage(this), this);
   dlg.exec();
index 2a53f75..76bd423 100644 (file)
@@ -29,7 +29,9 @@
 #include "titlesetter.h"
 
 class ActionCollection;
+class BufferView;
 class BufferViewConfig;
+class BufferViewDock;
 class BufferWidget;
 class MsgProcessorStatusWidget;
 class NickListWidget;
@@ -49,6 +51,7 @@ class MainWin : public QMainWindow {
     void init();
 
     void addBufferView(BufferViewConfig *config = 0);
+    BufferView *allBuffersView() const;
 
     inline QSystemTrayIcon *systemTrayIcon() const;
 
@@ -128,7 +131,7 @@ class MainWin : public QMainWindow {
 
     QSystemTrayIcon *_trayIcon;
 
-    QList<QDockWidget *> _netViews;
+    QList<BufferViewDock *> _bufferViews;
     BufferWidget *_bufferWidget;
     NickListWidget *_nickListWidget;
 
index bb7e0cf..d0ac210 100644 (file)
@@ -134,9 +134,10 @@ public:
   BufferViewDock(BufferViewConfig *config, QWidget *parent);
   BufferViewDock(QWidget *parent);
 
+  inline BufferView *bufferView() const { return qobject_cast<BufferView *>(widget()); }
+
 public slots:
   void bufferViewRenamed(const QString &newName);
 };
 
 #endif
-