Changeset View
Changeset View
Standalone View
Standalone View
src/kviewstateserializer.cpp
Show All 16 Lines | 1 | /* | |||
---|---|---|---|---|---|
17 | along with this library; see the file COPYING.LIB. If not, write to the | 17 | along with this library; see the file COPYING.LIB. If not, write to the | ||
18 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | 18 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
19 | 02110-1301, USA. | 19 | 02110-1301, USA. | ||
20 | */ | 20 | */ | ||
21 | 21 | | |||
22 | #include "kviewstateserializer.h" | 22 | #include "kviewstateserializer.h" | ||
23 | 23 | | |||
24 | #include <QAbstractScrollArea> | 24 | #include <QAbstractScrollArea> | ||
25 | #include <QPointer> | ||||
25 | #include <QScrollBar> | 26 | #include <QScrollBar> | ||
26 | #include <QTimer> | 27 | #include <QTimer> | ||
27 | #include <QTreeView> | 28 | #include <QTreeView> | ||
28 | 29 | | |||
29 | class KViewStateSerializerPrivate | 30 | class KViewStateSerializerPrivate | ||
30 | { | 31 | { | ||
31 | public: | 32 | public: | ||
32 | KViewStateSerializerPrivate(KViewStateSerializer *qq) | 33 | KViewStateSerializerPrivate(KViewStateSerializer *qq) | ||
Show All 13 Lines | |||||
46 | 47 | | |||
47 | QStringList getExpandedItems(const QModelIndex &index) const; | 48 | QStringList getExpandedItems(const QModelIndex &index) const; | ||
48 | 49 | | |||
49 | void listenToPendingChanges(); | 50 | void listenToPendingChanges(); | ||
50 | void processPendingChanges(); | 51 | void processPendingChanges(); | ||
51 | 52 | | |||
52 | inline void restoreScrollBarState() | 53 | inline void restoreScrollBarState() | ||
53 | { | 54 | { | ||
55 | if (!m_scrollArea) { | ||||
56 | return; | ||||
57 | } | ||||
54 | if (m_horizontalScrollBarValue >= 0 && m_horizontalScrollBarValue <= m_scrollArea->horizontalScrollBar()->maximum()) { | 58 | if (m_horizontalScrollBarValue >= 0 && m_horizontalScrollBarValue <= m_scrollArea->horizontalScrollBar()->maximum()) { | ||
55 | m_scrollArea->horizontalScrollBar()->setValue(m_horizontalScrollBarValue); | 59 | m_scrollArea->horizontalScrollBar()->setValue(m_horizontalScrollBarValue); | ||
56 | m_horizontalScrollBarValue = -1; | 60 | m_horizontalScrollBarValue = -1; | ||
57 | } | 61 | } | ||
58 | if (m_verticalScrollBarValue >= 0 && m_verticalScrollBarValue <= m_scrollArea->verticalScrollBar()->maximum()) { | 62 | if (m_verticalScrollBarValue >= 0 && m_verticalScrollBarValue <= m_scrollArea->verticalScrollBar()->maximum()) { | ||
59 | m_scrollArea->verticalScrollBar()->setValue(m_verticalScrollBarValue); | 63 | m_scrollArea->verticalScrollBar()->setValue(m_verticalScrollBarValue); | ||
60 | m_verticalScrollBarValue = -1; | 64 | m_verticalScrollBarValue = -1; | ||
61 | } | 65 | } | ||
Show All 28 Lines | 93 | q->disconnect(getModel(), SIGNAL(rowsInserted(QModelIndex,int,int)), | |||
90 | q, SLOT(rowsInserted(QModelIndex,int,int))); | 94 | q, SLOT(rowsInserted(QModelIndex,int,int))); | ||
91 | q->deleteLater(); | 95 | q->deleteLater(); | ||
92 | } | 96 | } | ||
93 | } | 97 | } | ||
94 | 98 | | |||
95 | QTreeView *m_treeView; | 99 | QTreeView *m_treeView; | ||
96 | QAbstractItemView *m_view; | 100 | QAbstractItemView *m_view; | ||
97 | QItemSelectionModel *m_selectionModel; | 101 | QItemSelectionModel *m_selectionModel; | ||
98 | QAbstractScrollArea *m_scrollArea; | 102 | QPointer<QAbstractScrollArea> m_scrollArea; | ||
99 | 103 | | |||
100 | int m_horizontalScrollBarValue; | 104 | int m_horizontalScrollBarValue; | ||
101 | int m_verticalScrollBarValue; | 105 | int m_verticalScrollBarValue; | ||
102 | QSet<QString> m_pendingSelections; | 106 | QSet<QString> m_pendingSelections; | ||
103 | QSet<QString> m_pendingExpansions; | 107 | QSet<QString> m_pendingExpansions; | ||
104 | QString m_pendingCurrent; | 108 | QString m_pendingCurrent; | ||
105 | }; | 109 | }; | ||
106 | 110 | | |||
▲ Show 20 Lines • Show All 264 Lines • Show Last 20 Lines |