diff --git a/elements/moteurs/qet_directory b/elements/moteurs/qet_directory
index 775c34412..fe901042b 100644
--- a/elements/moteurs/qet_directory
+++ b/elements/moteurs/qet_directory
@@ -1,6 +1,6 @@
-
- Engines
- Moteurs
-
+
+ Engines
+ Moteurs
+
diff --git a/elementspanel.cpp b/elementspanel.cpp
index 1e08165be..c95bdd560 100644
--- a/elementspanel.cpp
+++ b/elementspanel.cpp
@@ -180,13 +180,19 @@ void ElementsPanel::reload() {
saveCollapsedCategories();
// vide l'arbre
- while (takeTopLevelItem(0));
+ clear();
// chargement des elements de la collection QET
addDir(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET"));
// chargement des elements de la collection utilisateur
addDir(invisibleRootItem(), QETApp::customElementsDir(), tr("Collection utilisateur"));
+
+ // reselectionne le dernier element selectionne
+ if (!last_selected_item.isNull()) {
+ QTreeWidgetItem *qtwi = findFile(last_selected_item);
+ if (qtwi) setCurrentItem(qtwi);
+ }
}
/**
@@ -282,7 +288,8 @@ void ElementsPanel::launchCategoryEditor(const QString &filename) {
}
/**
- Enregistre la liste des categories repliees
+ Enregistre la liste des categories repliees ainsi que le dernier element
+ selectionne
*/
void ElementsPanel::saveCollapsedCategories() {
collapsed_directories.clear();
@@ -293,4 +300,20 @@ void ElementsPanel::saveCollapsedCategories() {
collapsed_directories << file;
}
}
+
+ // sauvegarde egalement le dernier element selectionne
+ QTreeWidgetItem *current_item = currentItem();
+ if (current_item) last_selected_item = current_item -> data(0, 42).toString();
+}
+
+/**
+ @param file fichier ou dossier a retrouver dans l'arborescence
+ @return le QTreeWidgetItem correspondant au fichier file ou 0 si celui-ci n'est pas trouve
+*/
+QTreeWidgetItem *ElementsPanel::findFile(const QString &file) const {
+ QList items = findItems("*", Qt::MatchRecursive|Qt::MatchWildcard);
+ foreach(QTreeWidgetItem *item, items) {
+ if (item -> data(0, 42).toString() == file) return(item);
+ }
+ return(0);
}
diff --git a/elementspanel.h b/elementspanel.h
index 3ad2ba0f9..13fc2d645 100644
--- a/elementspanel.h
+++ b/elementspanel.h
@@ -30,7 +30,9 @@ class ElementsPanel : public QTreeWidget {
void launchElementEditor(const QString &);
void launchCategoryEditor(const QString &);
void saveCollapsedCategories();
+ QTreeWidgetItem *findFile(const QString &) const;
QStringList collapsed_directories;
+ QString last_selected_item;
public slots:
void slot_doubleClick(QTreeWidgetItem *, int);