1 
2 #include "kconfigviewstatesaver.h"
3 
4 #include <KConfigGroup>
5 
6 static const char selectionKey[] = "Selection";
7 static const char expansionKey[] = "Expansion";
8 static const char currentKey[] = "Current";
9 static const char scrollStateHorizontalKey[] = "HorizontalScroll";
10 static const char scrollStateVerticalKey[] = "VerticalScroll";
11 
KConfigViewStateSaver(QObject * parent)12 KConfigViewStateSaver::KConfigViewStateSaver(QObject *parent)
13     : KViewStateSerializer(parent)
14 {
15 }
16 
restoreState(const KConfigGroup & configGroup)17 void KConfigViewStateSaver::restoreState(const KConfigGroup &configGroup)
18 {
19     restoreSelection(configGroup.readEntry(selectionKey, QStringList()));
20     restoreCurrentItem(configGroup.readEntry(currentKey, QString()));
21     restoreExpanded(configGroup.readEntry(expansionKey, QStringList()));
22     restoreScrollState(configGroup.readEntry(scrollStateVerticalKey, -1), configGroup.readEntry(scrollStateHorizontalKey, -1));
23 
24     KViewStateSerializer::restoreState();
25 }
26 
saveState(KConfigGroup & configGroup)27 void KConfigViewStateSaver::saveState(KConfigGroup &configGroup)
28 {
29     if (selectionModel()) {
30         configGroup.writeEntry(selectionKey, selectionKeys());
31         configGroup.writeEntry(currentKey, currentIndexKey());
32     }
33 
34     if (view()) {
35         QStringList expansion = expansionKeys();
36 
37         configGroup.writeEntry(expansionKey, expansion);
38     }
39 
40     if (view()) {
41         QPair<int, int> _scrollState = scrollState();
42         configGroup.writeEntry(scrollStateVerticalKey, _scrollState.first);
43         configGroup.writeEntry(scrollStateHorizontalKey, _scrollState.second);
44     }
45 }
46