X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=9769de79fb984e8d7c3bb9afcaaa5cb2de6c3388;hp=2b758d50e6feeba65fcfa9b098b59208473de140;hb=71ef3ec0c4c4d02431aa560ed83b379c416798c5;hpb=f48d855945219c3a1897a17bf15830dfee104f0b diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 2b758d50..9769de79 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -35,6 +35,8 @@ #include "actioncollection.h" #include "buffermodel.h" #include "bufferview.h" +#include "bufferviewoverlay.h" +#include "bufferviewoverlayfilter.h" #include "bufferwidget.h" #include "channellistdlg.h" #include "chatlinemodel.h" @@ -255,6 +257,8 @@ void MainWin::setupActions() { qApp, SLOT(aboutQt()))); coll->addAction("DebugNetworkModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &NetworkModel"), coll, this, SLOT(on_actionDebugNetworkModel_triggered()))); + coll->addAction("DebugBufferViewOverlay", new Action(SmallIcon("tools-report-bug"), tr("Debug &BufferViewOverlay"), coll, + this, SLOT(on_actionDebugBufferViewOverlay_triggered()))); coll->addAction("DebugMessageModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &MessageModel"), coll, this, SLOT(on_actionDebugMessageModel_triggered()))); coll->addAction("DebugLog", new Action(SmallIcon("tools-report-bug"), tr("Debug &Log"), coll, @@ -315,6 +319,7 @@ void MainWin::setupMenus() { _helpMenu->addSeparator(); _helpDebugMenu = _helpMenu->addMenu(SmallIcon("tools-report-bug"), tr("Debug")); _helpDebugMenu->addAction(coll->action("DebugNetworkModel")); + _helpDebugMenu->addAction(coll->action("DebugBufferViewOverlay")); _helpDebugMenu->addAction(coll->action("DebugMessageModel")); _helpDebugMenu->addAction(coll->action("DebugLog")); } @@ -351,6 +356,7 @@ void MainWin::addBufferView(ClientBufferViewConfig *config) { addDockWidget(Qt::LeftDockWidgetArea, dock); _bufferViewsMenu->addAction(dock->toggleViewAction()); + connect(dock->toggleViewAction(), SIGNAL(toggled(bool)), this, SLOT(bufferViewToggled(bool))); _bufferViews.append(dock); } @@ -370,6 +376,18 @@ void MainWin::removeBufferView(int bufferViewConfigId) { } } +void MainWin::bufferViewToggled(bool enabled) { + QAction *action = qobject_cast(sender()); + Q_ASSERT(action); + BufferViewDock *dock = qobject_cast(action->parent()); + Q_ASSERT(dock); + if(enabled) { + Client::bufferViewManager()->bufferViewOverlay()->addView(dock->bufferViewId()); + } else { + Client::bufferViewManager()->bufferViewOverlay()->removeView(dock->bufferViewId()); + } +} + BufferView *MainWin::allBuffersView() const { // "All Buffers" is always the first dock created if(_bufferViews.count() > 0) @@ -897,6 +915,20 @@ void MainWin::on_actionDebugNetworkModel_triggered() { view->show(); } +void MainWin::on_actionDebugBufferViewOverlay_triggered() { + QTreeView *view = new QTreeView; + view->setAttribute(Qt::WA_DeleteOnClose); + view->setWindowTitle("Debug BufferViewOverlay View"); + BufferViewOverlayFilter *filter = new BufferViewOverlayFilter(Client::bufferModel(), Client::bufferViewManager()->bufferViewOverlay()); + filter->setParent(view); + view->setModel(filter); + view->setColumnWidth(0, 250); + view->setColumnWidth(1, 250); + view->setColumnWidth(2, 80); + view->resize(610, 300); + view->show(); +} + void MainWin::on_actionDebugMessageModel_triggered() { QTableView *view = new QTableView(0); DebugMessageModelFilter *filter = new DebugMessageModelFilter(view);