From 2a7318219cc91be4bc50d2cef605d216834d1687 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Tue, 26 Aug 2008 13:37:54 +0200 Subject: [PATCH] added a convenience method: Client::bufferModel()->switchToBuffer(bufferId) --- src/client/buffermodel.cpp | 10 ++++++++-- src/client/buffermodel.h | 2 ++ src/qtui/chatmonitorview.cpp | 6 +----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/client/buffermodel.cpp b/src/client/buffermodel.cpp index e124db6d..faf6090f 100644 --- a/src/client/buffermodel.cpp +++ b/src/client/buffermodel.cpp @@ -20,9 +20,10 @@ #include "buffermodel.h" -#include "networkmodel.h" -#include "mappedselectionmodel.h" +#include "client.h" #include "global.h" +#include "mappedselectionmodel.h" +#include "networkmodel.h" #include @@ -65,6 +66,11 @@ void BufferModel::setCurrentIndex(const QModelIndex &newCurrent) { _selectionModelSynchronizer.selectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); } +void BufferModel::switchToBuffer(const BufferId &bufferId) { + QModelIndex source_index = Client::networkModel()->bufferIndex(bufferId); + setCurrentIndex(mapFromSource(source_index)); +} + void BufferModel::debug_currentChanged(QModelIndex current, QModelIndex previous) { Q_UNUSED(previous); qDebug() << "Switched current Buffer: " << current << current.data().toString() << "Buffer:" << current.data(NetworkModel::BufferIdRole).value(); diff --git a/src/client/buffermodel.h b/src/client/buffermodel.h index 4794afeb..7c00ea4f 100644 --- a/src/client/buffermodel.h +++ b/src/client/buffermodel.h @@ -45,8 +45,10 @@ public: void synchronizeSelectionModel(MappedSelectionModel *selectionModel); void synchronizeView(QAbstractItemView *view); +public slots: inline QModelIndex currentIndex() { return standardSelectionModel()->currentIndex(); } void setCurrentIndex(const QModelIndex &newCurrent); + void switchToBuffer(const BufferId &bufferId); private slots: void debug_currentChanged(QModelIndex current, QModelIndex previous); diff --git a/src/qtui/chatmonitorview.cpp b/src/qtui/chatmonitorview.cpp index 0c409986..45dbb41a 100644 --- a/src/qtui/chatmonitorview.cpp +++ b/src/qtui/chatmonitorview.cpp @@ -81,11 +81,7 @@ void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent *event) { if(!bufferId.isValid()) return; - QModelIndex bufferIdx = Client::networkModel()->bufferIndex(bufferId); - if(!bufferIdx.isValid()) - return; - - Client::bufferModel()->setCurrentIndex(Client::bufferModel()->mapFromSource(bufferIdx)); + Client::bufferModel()->switchToBuffer(bufferId); } void ChatMonitorView::showFieldsChanged(bool checked) { -- 2.20.1