summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/themeeditor/editorwindow.cpp14
-rw-r--r--utils/themeeditor/editorwindow.h2
-rw-r--r--utils/themeeditor/editorwindow.ui5
3 files changed, 19 insertions, 2 deletions
diff --git a/utils/themeeditor/editorwindow.cpp b/utils/themeeditor/editorwindow.cpp
index 56968a3c05..0721ee9131 100644
--- a/utils/themeeditor/editorwindow.cpp
+++ b/utils/themeeditor/editorwindow.cpp
@@ -101,7 +101,6 @@ void EditorWindow::loadSettings()
101 restoreState(state); 101 restoreState(state);
102 } 102 }
103 103
104
105} 104}
106 105
107void EditorWindow::saveSettings() 106void EditorWindow::saveSettings()
@@ -137,6 +136,7 @@ void EditorWindow::setupUI()
137 parseStatus = new QLabel(this); 136 parseStatus = new QLabel(this);
138 ui->statusbar->addPermanentWidget(parseStatus); 137 ui->statusbar->addPermanentWidget(parseStatus);
139 138
139 parseTreeSelection = 0;
140} 140}
141 141
142void EditorWindow::setupMenus() 142void EditorWindow::setupMenus()
@@ -400,10 +400,14 @@ void EditorWindow::updateCurrent()
400void EditorWindow::lineChanged(int line) 400void EditorWindow::lineChanged(int line)
401{ 401{
402 ui->parseTree->collapseAll(); 402 ui->parseTree->collapseAll();
403 if(parseTreeSelection)
404 parseTreeSelection->deleteLater();
403 ParseTreeModel* model = dynamic_cast<ParseTreeModel*> 405 ParseTreeModel* model = dynamic_cast<ParseTreeModel*>
404 (ui->parseTree->model()); 406 (ui->parseTree->model());
407 parseTreeSelection = new QItemSelectionModel(model);
405 expandLine(model, QModelIndex(), line); 408 expandLine(model, QModelIndex(), line);
406 sizeColumns(); 409 sizeColumns();
410 ui->parseTree->setSelectionModel(parseTreeSelection);
407 411
408} 412}
409 413
@@ -412,6 +416,10 @@ void EditorWindow::expandLine(ParseTreeModel* model, QModelIndex parent,
412{ 416{
413 for(int i = 0; i < model->rowCount(parent); i++) 417 for(int i = 0; i < model->rowCount(parent); i++)
414 { 418 {
419 QModelIndex dataType = model->index(i, ParseTreeModel::typeColumn,
420 parent);
421 QModelIndex dataVal = model->index(i, ParseTreeModel::valueColumn,
422 parent);
415 QModelIndex data = model->index(i, ParseTreeModel::lineColumn, parent); 423 QModelIndex data = model->index(i, ParseTreeModel::lineColumn, parent);
416 QModelIndex recurse = model->index(i, 0, parent); 424 QModelIndex recurse = model->index(i, 0, parent);
417 425
@@ -422,6 +430,10 @@ void EditorWindow::expandLine(ParseTreeModel* model, QModelIndex parent,
422 ui->parseTree->expand(parent); 430 ui->parseTree->expand(parent);
423 ui->parseTree->expand(data); 431 ui->parseTree->expand(data);
424 ui->parseTree->scrollTo(parent, QAbstractItemView::PositionAtTop); 432 ui->parseTree->scrollTo(parent, QAbstractItemView::PositionAtTop);
433
434 parseTreeSelection->select(data, QItemSelectionModel::Select);
435 parseTreeSelection->select(dataType, QItemSelectionModel::Select);
436 parseTreeSelection->select(dataVal, QItemSelectionModel::Select);
425 } 437 }
426 438
427 } 439 }
diff --git a/utils/themeeditor/editorwindow.h b/utils/themeeditor/editorwindow.h
index 51ca7a692d..0dee4a1e6e 100644
--- a/utils/themeeditor/editorwindow.h
+++ b/utils/themeeditor/editorwindow.h
@@ -24,6 +24,7 @@
24 24
25#include <QMainWindow> 25#include <QMainWindow>
26#include <QLabel> 26#include <QLabel>
27#include <QItemSelectionModel>
27 28
28#include "parsetreemodel.h" 29#include "parsetreemodel.h"
29#include "skinhighlighter.h" 30#include "skinhighlighter.h"
@@ -84,6 +85,7 @@ private:
84 PreferencesDialog* prefs; 85 PreferencesDialog* prefs;
85 QLabel* parseStatus; 86 QLabel* parseStatus;
86 ProjectModel* project; 87 ProjectModel* project;
88 QItemSelectionModel* parseTreeSelection;
87}; 89};
88 90
89#endif // EDITORWINDOW_H 91#endif // EDITORWINDOW_H
diff --git a/utils/themeeditor/editorwindow.ui b/utils/themeeditor/editorwindow.ui
index 06c7d422bd..11cfb6b94f 100644
--- a/utils/themeeditor/editorwindow.ui
+++ b/utils/themeeditor/editorwindow.ui
@@ -40,7 +40,7 @@
40 <x>0</x> 40 <x>0</x>
41 <y>0</y> 41 <y>0</y>
42 <width>628</width> 42 <width>628</width>
43 <height>25</height> 43 <height>27</height>
44 </rect> 44 </rect>
45 </property> 45 </property>
46 <widget class="QMenu" name="menuFile"> 46 <widget class="QMenu" name="menuFile">
@@ -130,6 +130,9 @@
130 <property name="alternatingRowColors"> 130 <property name="alternatingRowColors">
131 <bool>true</bool> 131 <bool>true</bool>
132 </property> 132 </property>
133 <property name="selectionMode">
134 <enum>QAbstractItemView::MultiSelection</enum>
135 </property>
133 </widget> 136 </widget>
134 </item> 137 </item>
135 <item> 138 <item>