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);