From: Marcus Eggenberger Date: Thu, 25 Oct 2007 19:05:09 +0000 (+0000) Subject: Fixed Bug in ModelPropertyMapper where currentChanges where unnoticed cause the rowIn... X-Git-Tag: 0.1.0~95 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=42ce41212deabaf284cc496760cb901b9e3b4dc4 Fixed Bug in ModelPropertyMapper where currentChanges where unnoticed cause the rowIndex did not change but the indexes parent. --- diff --git a/src/client/modelpropertymapper.cpp b/src/client/modelpropertymapper.cpp index 31f8d546..a59a7a52 100644 --- a/src/client/modelpropertymapper.cpp +++ b/src/client/modelpropertymapper.cpp @@ -53,6 +53,8 @@ void ModelPropertyMapper::setSelectionModel(QItemSelectionModel *selectionModel) _selectionModel = selectionModel; connect(_selectionModel, SIGNAL(currentRowChanged(QModelIndex, QModelIndex)), this, SLOT(setCurrentRow(QModelIndex, QModelIndex))); + connect(_selectionModel, SIGNAL(currentChanged(QModelIndex, QModelIndex)), + this, SLOT(setCurrentIndex(QModelIndex, QModelIndex))); setCurrentRow(selectionModel->currentIndex(), QModelIndex()); } @@ -84,6 +86,11 @@ void ModelPropertyMapper::removeMapping(int column, int role, QObject *target, c _mappings.removeAll(Mapping(column, role, target, property)); } +void ModelPropertyMapper::setCurrentIndex(const QModelIndex ¤t, const QModelIndex &previous) { + if(current.row() == previous.row() && current.parent() != previous.parent()) + setCurrentRow(current, previous); +} + void ModelPropertyMapper::setCurrentRow(const QModelIndex ¤t, const QModelIndex &previous) { Q_UNUSED(previous) foreach(Mapping mapping, _mappings) { diff --git a/src/client/modelpropertymapper.h b/src/client/modelpropertymapper.h index 988efa8f..14270ab1 100644 --- a/src/client/modelpropertymapper.h +++ b/src/client/modelpropertymapper.h @@ -46,6 +46,7 @@ public: void removeMapping(int column, int role, QObject *target, const QByteArray &property); public slots: + void setCurrentIndex(const QModelIndex ¤t, const QModelIndex &previous); void setCurrentRow(const QModelIndex ¤t, const QModelIndex &previous); private slots: