diff options
Diffstat (limited to 'utils/themeeditor')
-rw-r--r-- | utils/themeeditor/editorwindow.cpp | 14 | ||||
-rw-r--r-- | utils/themeeditor/editorwindow.h | 2 | ||||
-rw-r--r-- | utils/themeeditor/editorwindow.ui | 5 |
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 | ||
107 | void EditorWindow::saveSettings() | 106 | void 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 | ||
142 | void EditorWindow::setupMenus() | 142 | void EditorWindow::setupMenus() |
@@ -400,10 +400,14 @@ void EditorWindow::updateCurrent() | |||
400 | void EditorWindow::lineChanged(int line) | 400 | void 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> |