#ifndef TREESTATEMANAGER_H
#define TREESTATEMANAGER_H

#include <QStringList>

class BrowserTree;
class QTreeWidget;
class QTreeWidgetItem;

class TreeStateManager
{
public:
    TreeStateManager();

    void saveState(BrowserTree *tree);

    void restoreState(BrowserTree *tree);

private:

    QStringList m_expandedItems;

    QString m_composeId(const QTreeWidget* it);

    void m_getExpandedChildren(QTreeWidgetItem *parent);

    QString buildItemText(const QTreeWidgetItem *it) const;

    QTreeWidgetItem * m_findItem(const QStringList& pattern,  QTreeWidgetItem *parent);
};

#endif // TREESTATEMANAGER_H