summaryrefslogtreecommitdiffstats
path: root/mappingtreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mappingtreewidget.cpp')
-rw-r--r--mappingtreewidget.cpp19
1 files changed, 17 insertions, 2 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()));