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