as a result of semi boredom and since it bugged me for quite a while:
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 1 Jan 2008 21:47:33 +0000 (21:47 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 1 Jan 2008 21:47:33 +0000 (21:47 +0000)
you can now select which columns should be shown in the bufferview via
contextMenu. (not persistent yet)

src/uisupport/bufferview.cpp
src/uisupport/bufferview.h

index 37c37ac..2b2f00d 100644 (file)
 // Please be carefull when reimplementing methods which are used to inform the view about changes to the data
 // to be on the safe side: call QTreeView's method aswell
 BufferView::BufferView(QWidget *parent) : QTreeView(parent) {
+  // dirty fast hack:
+  header()->setContextMenuPolicy(Qt::ActionsContextMenu);
+
+  QAction *showBufferAct = new QAction(tr("Buffer"), header());
+  showBufferAct->setCheckable(true);
+  showBufferAct->setChecked(true);
+  showBufferAct->setProperty("column", 0);
+  connect(showBufferAct, SIGNAL(toggled(bool)), this, SLOT(toggleHeader(bool)));
+  header()->addAction(showBufferAct);
+  
+  QAction *showTopicAct = new QAction(tr("Topic"), header());
+  showTopicAct->setCheckable(true);
+  showTopicAct->setChecked(true);
+  showTopicAct->setProperty("column", 1);
+  connect(showTopicAct, SIGNAL(toggled(bool)), this, SLOT(toggleHeader(bool)));
+  header()->addAction(showTopicAct);
+    
+  QAction *showNickAct = new QAction(tr("Nick Count"), header());
+  showNickAct->setCheckable(true);
+  showNickAct->setChecked(true);
+  showNickAct->setProperty("column", 2);
+  connect(showNickAct, SIGNAL(toggled(bool)), this, SLOT(toggleHeader(bool)));
+  header()->addAction(showNickAct);
+  
 }
 
 void BufferView::init() {
@@ -92,3 +116,8 @@ void BufferView::rowsInserted(const QModelIndex & parent, int start, int end) {
     expand(parent);
   }
 }
+
+void BufferView::toggleHeader(bool checked) {
+  QAction *action = qobject_cast<QAction *>(sender());
+  header()->setSectionHidden((action->property("column")).toInt(), not checked);
+}
index 6e67412..31c5ea5 100644 (file)
@@ -45,6 +45,7 @@ private slots:
   void joinChannel(const QModelIndex &index);
   void keyPressEvent(QKeyEvent *);
   void rowsInserted (const QModelIndex & parent, int start, int end);
+  void toggleHeader(bool checked);
 };