I did it once like this for a static QTreeWidget:
Qt Code:
  1. void saveTreeState()
  2. {
  3. QVariantList states;
  4. QTreeWidgetItemIterator it(treeWidget);
  5. while (*it)
  6. {
  7. states += (*it)->isExpanded();
  8. ++it;
  9. }
  10. QSettings settings;
  11. settings.setValue("states", states);
  12. }
  13.  
  14. void restoreTreeState()
  15. {
  16. QSettings settings;
  17. QVariantList states = settings.value("states").toList();
  18. QTreeWidgetItemIterator it(treeWidget);
  19. while (*it && !states.isEmpty())
  20. {
  21. (*it)->setExpanded(states.takeFirst().toBool());
  22. ++it;
  23. }
  24. }
To copy to clipboard, switch view to plain text mode 
Of course, it doesn't apply in your situation Patrik because you're using a model, not QTreeWidget. But perhaps it turns out to be useful for someone who later searches for a solution on the same subject.