From c19a8e707391d74a80e9e7d4ef46f496284d9f49 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Fri, 22 Feb 2008 16:00:45 +0000 Subject: [PATCH] Newly created buffers are now selected automatically. Maybe make this configurable via ClientSettings in the future? --- src/client/buffermodel.cpp | 5 +++++ src/client/buffermodel.h | 1 + src/client/client.cpp | 4 +--- src/qtui/inputwidget.cpp | 2 +- src/uisupport/bufferview.cpp | 9 +++++++++ version.inc | 2 +- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/client/buffermodel.cpp b/src/client/buffermodel.cpp index e0f80ed1..34266321 100644 --- a/src/client/buffermodel.cpp +++ b/src/client/buffermodel.cpp @@ -70,3 +70,8 @@ void BufferModel::mapProperty(int column, int role, QObject *target, const QByte QModelIndex BufferModel::currentIndex() { return propertyMapper()->selectionModel()->currentIndex(); } + +void BufferModel::setCurrentIndex(const QModelIndex &newCurrent) { + standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect); +} diff --git a/src/client/buffermodel.h b/src/client/buffermodel.h index 2d6f4b47..db8049d3 100644 --- a/src/client/buffermodel.h +++ b/src/client/buffermodel.h @@ -50,6 +50,7 @@ public: void mapProperty(int column, int role, QObject *target, const QByteArray &property); QModelIndex currentIndex(); + void setCurrentIndex(const QModelIndex &newCurrent); private: SelectionModelSynchronizer _selectionModelSynchronizer; diff --git a/src/client/client.cpp b/src/client/client.cpp index 58725988..70f8735e 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -473,9 +473,7 @@ void Client::bufferRemoved(BufferId bufferId) { QModelIndex current = bufferModel()->currentIndex(); if(current.data(NetworkModel::BufferIdRole).value() == bufferId) { // select the status buffer if the currently displayed buffer is about to be removed - QModelIndex newCurrent = current.sibling(0,0); - bufferModel()->standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); - bufferModel()->standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect); + bufferModel()->setCurrentIndex(current.sibling(0,0)); } networkModel()->removeBuffer(bufferId); diff --git a/src/qtui/inputwidget.cpp b/src/qtui/inputwidget.cpp index 0f4a7ee4..c2ef731e 100644 --- a/src/qtui/inputwidget.cpp +++ b/src/qtui/inputwidget.cpp @@ -96,7 +96,7 @@ const Network *InputWidget::currentNetwork() const { } void InputWidget::setNetwork(const Network *network) { - if(_networkId == network->networkId()) + if(!network || _networkId == network->networkId()) return; const Network *previousNet = Client::network(_networkId); diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index aa82b58a..4ac92f3d 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -118,6 +118,15 @@ void BufferView::rowsInserted(const QModelIndex & parent, int start, int end) { update(parent); expand(parent); } + + + // select newly inserted buffers + if(parent.data(NetworkModel::ItemTypeRole) != NetworkModel::NetworkItemType) + return; + + QModelIndex newCurrent = parent.child(end, 0); + selectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); + selectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect); } void BufferView::toggleHeader(bool checked) { diff --git a/version.inc b/version.inc index 9e189b16..1fe3f046 100644 --- a/version.inc +++ b/version.inc @@ -5,7 +5,7 @@ quasselVersion = "0.2.0-pre"; quasselDate = "2008-02-22"; - quasselBuild = 577; + quasselBuild = 578; //! Minimum client build number the core needs clientBuildNeeded = 563; -- 2.20.1