X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=2b2f00ddc3f7eac52bc2b3a6b8fa2e4b31e1c3e4;hp=8ddd2b3f39d6705f1940bb05dc9713611188b851;hb=2517c75cb456db066aec68f99eed6e42d12a827d;hpb=d6b056e936ec441258d291b7a8af7b83f9f53016 diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 8ddd2b3f..2b2f00dd 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -21,7 +21,7 @@ #include "client.h" #include "buffer.h" #include "bufferview.h" -#include "buffertreemodel.h" +#include "networkmodel.h" /***************************************** * The TreeView showing the Buffers @@ -29,12 +29,36 @@ // 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() { setIndentation(10); - header()->hide(); - header()->hideSection(1); + // header()->hide(); + // header()->hideSection(1); expandAll(); setAnimated(true); @@ -64,12 +88,12 @@ void BufferView::setModel(QAbstractItemModel *model) { } void BufferView::joinChannel(const QModelIndex &index) { - Buffer::Type bufferType = (Buffer::Type)index.data(BufferTreeModel::BufferTypeRole).toInt(); + Buffer::Type bufferType = (Buffer::Type)index.data(NetworkModel::BufferTypeRole).toInt(); if(bufferType != Buffer::ChannelType) return; - Client::fakeInput(index.data(BufferTreeModel::BufferUidRole).toUInt(), QString("/JOIN %1").arg(index.sibling(index.row(), 0).data().toString())); + Client::fakeInput(index.data(NetworkModel::BufferUidRole).toUInt(), QString("/JOIN %1").arg(index.sibling(index.row(), 0).data().toString())); } void BufferView::keyPressEvent(QKeyEvent *event) { @@ -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(sender()); + header()->setSectionHidden((action->property("column")).toInt(), not checked); +}