summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2015-04-08 05:46:59 +0200
committerArno <am@disconnect.de>2015-04-08 05:46:59 +0200
commitb85e4d5f20317609d8a4277482e8bb3dac3e2dae (patch)
tree745e3ab9214f196dbb42b5a243eb8d7bdf37f07c
parentc421ac92e03f2810aed85f06dd0ed24c89d4e9d8 (diff)
downloadSheMov-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.cpp19
-rw-r--r--mappingtreewidget.h6
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;