diff options
author | Arno <am@disconnect.de> | 2015-04-08 05:46:59 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2015-04-08 05:46:59 +0200 |
commit | b85e4d5f20317609d8a4277482e8bb3dac3e2dae (patch) | |
tree | 745e3ab9214f196dbb42b5a243eb8d7bdf37f07c | |
parent | c421ac92e03f2810aed85f06dd0ed24c89d4e9d8 (diff) | |
download | SheMov-b85e4d5f20317609d8a4277482e8bb3dac3e2dae.tar.gz SheMov-b85e4d5f20317609d8a4277482e8bb3dac3e2dae.tar.bz2 SheMov-b85e4d5f20317609d8a4277482e8bb3dac3e2dae.zip |
NewPicsDialog: Select current item in MappingTree on change in
ResultView
Usability fix: When selecting a mapping in the result view, select it in
the source tree, too.
-rw-r--r-- | mappingtreewidget.cpp | 19 | ||||
-rw-r--r-- | mappingtreewidget.h | 6 |
2 files changed, 21 insertions, 4 deletions
diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index 6497cbd..917da68 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -208,8 +208,8 @@ void MappingTreeWidget::deleteType(){ } } -void MappingTreeWidget::selectPath(const QList<int> &data){ - QModelIndex pathIdx = mModel->indexFromParentPath(data, true); +void MappingTreeWidget::selectPath(const QList<int> &data, bool reverse){ + QModelIndex pathIdx = mModel->indexFromParentPath(data, reverse); if(!pathIdx.isValid()){ return; } @@ -298,6 +298,7 @@ MappingEditWidget::MappingEditWidget(QWidget *parent) : QWidget(parent){ mMappingResult->setColumnHidden(1, true); mMappingResult->setColumnHidden(2, true); mMappingResult->setColumnHidden(3, true); + connect(mMappingResult->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(resultMappingChanged(QModelIndex,QModelIndex))); //buttons mAddMapping = new QPushButton(tr(">>")); @@ -347,6 +348,20 @@ void MappingEditWidget::setMappings(const QList<MappingData> &mappings){ mMappingResult->expandAll(); } +void MappingEditWidget::resultMappingChanged(const QModelIndex &cur, const QModelIndex &prev){ + Q_UNUSED(prev); + if(!cur.isValid()){ + return; + } + QModelIndex idx = cur; + QList<int> path; + while(idx.isValid()){ + path << idx.data(MappingTreeResultModel::MappingIdRole).toInt(); + idx = idx.parent(); + } + mMappingTree->selectPath(path, false); +} + MappingInputDialog::MappingInputDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ mOk = new QPushButton(tr("Ok")); connect(mOk, SIGNAL(clicked()), this, SLOT(accept())); diff --git a/mappingtreewidget.h b/mappingtreewidget.h index 63145fa..2eb1331 100644 --- a/mappingtreewidget.h +++ b/mappingtreewidget.h @@ -36,7 +36,7 @@ class MappingTreeWidget : public QWidget { void addType(); void deleteChild(); void deleteType(); - void selectPath(const QList<int> &data); + void selectPath(const QList<int> &data, bool reverse = true); protected: virtual void hideEvent(QHideEvent *event); @@ -45,7 +45,6 @@ class MappingTreeWidget : public QWidget { void typeChanged(QString type); void editChild(); void selectionChanged(); - //void moveChild(); void filter(); void clearFilter(); @@ -95,6 +94,9 @@ class MappingEditWidget : public QWidget { void removeMapping(); void setMappings(const QList<MappingData> &mappings); + private slots: + void resultMappingChanged(const QModelIndex &cur, const QModelIndex &prev); + private: MappingTreeWidget *mMappingTree; MappingTreeResultView *mMappingResult; |