30 for (
int i = 0; i < tree->topLevelItemCount(); ++i)
36 if (tree->verticalScrollBar())
37 outState.
vScroll = tree->verticalScrollBar()->value();
41 if (tree->horizontalScrollBar())
42 outState.
hScroll = tree->horizontalScrollBar()->value();
53 for (
int i = 0; i < tree->topLevelItemCount(); ++i)
59 if (tree->verticalScrollBar())
60 tree->verticalScrollBar()->setValue(state.
vScroll);
62 if (tree->horizontalScrollBar())
63 tree->horizontalScrollBar()->setValue(state.
hScroll);
71 const QString key =
makeKey(item);
72 map.insert(key, item->isExpanded());
77 const int n = item->childCount();
78 for (
int i = 0; i < n; ++i)
86 const QString key =
makeKey(item);
87 const auto it = map.constFind(key);
88 if (it != map.constEnd())
90 item->setExpanded(it.value());
100 const int n = item->childCount();
101 for (
int i = 0; i < n; ++i)
109 const QVariant v = item->data(0, Qt::UserRole);
112 const QString
id = v.toString();
119 for (QTreeWidgetItem* it = item; it; it = it->parent())
120 path.prepend(it->text(0));
121 return path.join(u
"/");
Helper pour la gestion des arbres Site et Projet (fichier header)
static void restoreExpansionRec(QTreeWidgetItem *item, const QHash< QString, bool > &map)
static void saveExpansionRec(QTreeWidgetItem *item, QHash< QString, bool > &map)
static QString makeKey(QTreeWidgetItem *item)
static void capture(QTreeWidget *tree, TYTreeViewState &outState)
Capture l'état complet (expansions + scroll) du QTreeWidget.
static void apply(QTreeWidget *tree, const TYTreeViewState &state)
Applique l'état complet (expansions + scroll) au QTreeWidget.
QHash< QString, bool > expansion