Skip to content

Commit dae852d

Browse files
author
Uwe Kindler
committed
Implemented XML serialization and loading of docking state
1 parent 8a014a6 commit dae852d

11 files changed

+246
-160
lines changed

.settings/language.settings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<project>
33
<configuration id="cdt.managedbuild.toolchain.gnu.mingw.base.1119687795" name="Default">
44
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
5-
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorMinGW" console="false" env-hash="-633788812842026300" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorMinGW" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings MinGW" parameter="${COMMAND} ${FLAGS} -E -P -v -dD -std=c++14 &quot;${INPUTS}&quot;" prefer-non-shared="true">
5+
<provider class="org.eclipse.cdt.managedbuilder.internal.language.settings.providers.GCCBuiltinSpecsDetectorMinGW" console="false" env-hash="-1519829723851667984" id="org.eclipse.cdt.managedbuilder.core.GCCBuiltinSpecsDetectorMinGW" keep-relative-paths="false" name="CDT GCC Built-in Compiler Settings MinGW" parameter="${COMMAND} ${FLAGS} -E -P -v -dD -std=c++14 &quot;${INPUTS}&quot;" prefer-non-shared="true">
66
<language-scope id="org.eclipse.cdt.core.gcc"/>
77
<language-scope id="org.eclipse.cdt.core.g++"/>
88
</provider>

demo/mainwindow.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ void MainWindow::createContent()
105105
DockWidget->setFeatures(DockWidget->features().setFlag(ads::CDockWidget::DockWidgetClosable, false));
106106
m_DockManager->addDockWidget(ads::LeftDockWidgetArea, DockWidget);
107107
m_DockManager->addDockWidget(ads::LeftDockWidgetArea, createLongTextLabelDockWidget(ViewMenu));
108-
m_DockManager->addDockWidget(ads::BottomDockWidgetArea, createFileSystemTreeDockWidget(ViewMenu));
108+
/*m_DockManager->addDockWidget(ads::BottomDockWidgetArea, createFileSystemTreeDockWidget(ViewMenu));
109109
auto TopDockArea = m_DockManager->addDockWidget(ads::TopDockWidgetArea, createFileSystemTreeDockWidget(ViewMenu));
110110
DockWidget = createCalendarDockWidget(ViewMenu);
111111
DockWidget->setFeatures(DockWidget->features().setFlag(ads::CDockWidget::DockWidgetClosable, false));
@@ -116,7 +116,7 @@ void MainWindow::createContent()
116116
m_DockManager->addDockWidget(ads::TopDockWidgetArea, createLongTextLabelDockWidget(ViewMenu), RighDockArea);
117117
auto BottomDockArea = m_DockManager->addDockWidget(ads::BottomDockWidgetArea, createLongTextLabelDockWidget(ViewMenu), RighDockArea);
118118
m_DockManager->addDockWidget(ads::RightDockWidgetArea, createLongTextLabelDockWidget(ViewMenu), RighDockArea);
119-
m_DockManager->addDockWidget(ads::CenterDockWidgetArea, createLongTextLabelDockWidget(ViewMenu), BottomDockArea);
119+
m_DockManager->addDockWidget(ads::CenterDockWidgetArea, createLongTextLabelDockWidget(ViewMenu), BottomDockArea);*/
120120
}
121121

122122

src/DockAreaWidget.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include <QDebug>
4040
#include <QMenu>
4141
#include <QSplitter>
42+
#include <QXmlStreamWriter>
4243

4344

4445
#include "DockContainerWidget.h"
@@ -706,15 +707,18 @@ void CDockAreaWidget::updateDockArea()
706707

707708

708709
//============================================================================
709-
void CDockAreaWidget::saveState(QDataStream& stream) const
710+
void CDockAreaWidget::saveState(QXmlStreamWriter& s) const
710711
{
711-
stream << d->ContentsLayout->count() << d->ContentsLayout->currentIndex();
712+
s.writeStartElement("DockAreaWidget");
713+
s.writeAttribute("Tabs", QString::number(d->ContentsLayout->count()));
714+
s.writeAttribute("CurrentIndex", QString::number(d->ContentsLayout->currentIndex()));
712715
qDebug() << "CDockAreaWidget::saveState TabCount: " << d->ContentsLayout->count()
713716
<< " CurrentIndex: " << d->ContentsLayout->currentIndex();
714717
for (int i = 0; i < d->ContentsLayout->count(); ++i)
715718
{
716-
dockWidget(i)->saveState(stream);
719+
dockWidget(i)->saveState(s);
717720
}
721+
s.writeEndElement();
718722
}
719723

720724
} // namespace ads

src/DockAreaWidget.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
//============================================================================
3333
#include <QFrame>
3434

35+
class QXmlStreamWriter;
36+
3537
namespace ads
3638
{
3739
struct DockAreaWidgetPrivate;
@@ -164,7 +166,7 @@ private slots:
164166
/**
165167
* Saves the state into the given stream
166168
*/
167-
void saveState(QDataStream& Stream) const;
169+
void saveState(QXmlStreamWriter& Stream) const;
168170

169171
public slots:
170172
/**

0 commit comments

Comments
 (0)