From: Marcus Eggenberger Date: Tue, 1 Jan 2008 21:47:33 +0000 (+0000) Subject: as a result of semi boredom and since it bugged me for quite a while: X-Git-Tag: 0.1.0~9 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=2517c75cb456db066aec68f99eed6e42d12a827d;ds=sidebyside as a result of semi boredom and since it bugged me for quite a while: you can now select which columns should be shown in the bufferview via contextMenu. (not persistent yet) --- 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); +} diff --git a/src/uisupport/bufferview.h b/src/uisupport/bufferview.h index 6e674126..31c5ea55 100644 --- a/src/uisupport/bufferview.h +++ b/src/uisupport/bufferview.h @@ -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); };