Recharger la collection ne remet plus systematiquement en haut de l'arborescence

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@185 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-10-16 12:49:04 +00:00
parent 5cb269af57
commit 88c117dea1
3 changed files with 31 additions and 6 deletions

View File

@@ -180,13 +180,19 @@ void ElementsPanel::reload() {
saveCollapsedCategories(); saveCollapsedCategories();
// vide l'arbre // vide l'arbre
while (takeTopLevelItem(0)); clear();
// chargement des elements de la collection QET // chargement des elements de la collection QET
addDir(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET")); addDir(invisibleRootItem(), QETApp::commonElementsDir(), tr("Collection QET"));
// chargement des elements de la collection utilisateur // chargement des elements de la collection utilisateur
addDir(invisibleRootItem(), QETApp::customElementsDir(), tr("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() { void ElementsPanel::saveCollapsedCategories() {
collapsed_directories.clear(); collapsed_directories.clear();
@@ -293,4 +300,20 @@ void ElementsPanel::saveCollapsedCategories() {
collapsed_directories << file; 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<QTreeWidgetItem *> items = findItems("*", Qt::MatchRecursive|Qt::MatchWildcard);
foreach(QTreeWidgetItem *item, items) {
if (item -> data(0, 42).toString() == file) return(item);
}
return(0);
} }

View File

@@ -30,7 +30,9 @@ class ElementsPanel : public QTreeWidget {
void launchElementEditor(const QString &); void launchElementEditor(const QString &);
void launchCategoryEditor(const QString &); void launchCategoryEditor(const QString &);
void saveCollapsedCategories(); void saveCollapsedCategories();
QTreeWidgetItem *findFile(const QString &) const;
QStringList collapsed_directories; QStringList collapsed_directories;
QString last_selected_item;
public slots: public slots:
void slot_doubleClick(QTreeWidgetItem *, int); void slot_doubleClick(QTreeWidgetItem *, int);