+ // Read the version number of the tab state and check if the version is supported.
+ quint32 version = 0;
+ stream >> version;
+ if (version != 2) {
+ // The version of the tab state isn't supported, we can't restore it.
+ return;
+ }
+
+ bool isSplitViewEnabled = false;
+ stream >> isSplitViewEnabled;
+ setSplitViewEnabled(isSplitViewEnabled);
+
+ QUrl primaryUrl;
+ stream >> primaryUrl;
+ m_primaryViewContainer->setUrl(primaryUrl);
+ bool primaryUrlEditable;
+ stream >> primaryUrlEditable;
+ m_primaryViewContainer->urlNavigatorInternalWithHistory()->setUrlEditable(primaryUrlEditable);
+ m_primaryViewContainer->view()->restoreState(stream);
+
+ if (isSplitViewEnabled) {
+ QUrl secondaryUrl;
+ stream >> secondaryUrl;
+ m_secondaryViewContainer->setUrl(secondaryUrl);
+ bool secondaryUrlEditable;
+ stream >> secondaryUrlEditable;
+ m_secondaryViewContainer->urlNavigatorInternalWithHistory()->setUrlEditable(secondaryUrlEditable);
+ m_secondaryViewContainer->view()->restoreState(stream);
+ }
+
+ stream >> m_primaryViewActive;
+ if (m_primaryViewActive) {
+ m_primaryViewContainer->setActive(true);
+ m_navigatorsWidget->primaryUrlNavigator()->setActive(true);
+ } else {
+ Q_ASSERT(m_splitViewEnabled);
+ m_secondaryViewContainer->setActive(true);
+ m_navigatorsWidget->primaryUrlNavigator()->setActive(false);
+ }
+
+ QByteArray splitterState;
+ stream >> splitterState;
+ m_splitter->restoreState(splitterState);
+}
+
+void DolphinTabPage::restoreStateV1(const QByteArray& state)
+{
+ if (state.isEmpty()) {
+ return;
+ }
+
+ QByteArray sd = state;
+ QDataStream stream(&sd, QIODevice::ReadOnly);
+