We now have a current svn snapshot of libqxt in our contrib dir, and
[quassel.git] / src / qtui / mainwin.cpp
index f94ee4a..8220669 100644 (file)
@@ -31,6 +31,9 @@
 
 #include "topicwidget.h"
 
+#include "selectionmodelsynchronizer.h"
+#include "mappedselectionmodel.h"
+
 MainWin::MainWin(QtUi *_gui, QWidget *parent) : QMainWindow(parent), gui(_gui) {
   ui.setupUi(this);
   setWindowTitle("Quassel IRC");
@@ -41,6 +44,7 @@ MainWin::MainWin(QtUi *_gui, QWidget *parent) : QMainWindow(parent), gui(_gui) {
   statusBar()->showMessage(tr("Waiting for core..."));
   serverListDlg = new ServerListDlg(this);
   settingsDlg = new SettingsDlg(this);
+
 }
 
 void MainWin::init() {
@@ -83,23 +87,29 @@ void MainWin::init() {
   if(serverListDlg->showOnStartup()) {
     showServerList();
   }
-
+  
+  setDockNestingEnabled(true);
+  
+  
   // TESTING
-//   setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
-//   setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
+  setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
+  setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
 
-//   setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
-//   setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
-  
-//   QDockWidget *dock = new QDockWidget("Topic Dock", this);
-//   dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
+  setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
+  setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
 
-//   TopicWidget *topicwidget = new TopicWidget(dock);
-//   dock->setWidget(topicwidget);
-  
-//   addDockWidget(Qt::TopDockWidgetArea, dock);
 
-//   ui.menuViews->addAction(dock->toggleViewAction());
+  QDockWidget *dock = new QDockWidget("Topic Dock", this);
+  dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
+
+  TopicWidget *topicwidget = new TopicWidget(dock);
+  dock->setWidget(topicwidget);
+
+  Client::bufferModel()->mapProperty(0, Qt::DisplayRole, topicwidget, "topic");
+
+  addDockWidget(Qt::TopDockWidgetArea, dock);
+
+  ui.menuViews->addAction(dock->toggleViewAction());
 
 }
 
@@ -156,6 +166,7 @@ void MainWin::addBufferView(const QString &viewname, QAbstractItemModel *model,
   //create the view and initialize it's filter
   BufferView *view = new BufferView(dock);
   view->setFilteredModel(model, mode, nets);
+  Client::bufferModel()->synchronizeView(view);
   dock->setWidget(view);
   
   addDockWidget(Qt::LeftDockWidgetArea, dock);