X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=2b2f00ddc3f7eac52bc2b3a6b8fa2e4b31e1c3e4;hp=37c37ac56dd33be405c86d8ec5277694d104781c;hb=2517c75cb456db066aec68f99eed6e42d12a827d;hpb=0b881e26eb5d741effae4a8096b319c9f5bcd462 diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 37c37ac5..2b2f00dd 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -29,6 +29,30 @@ // 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(sender()); + header()->setSectionHidden((action->property("column")).toInt(), not checked); +}