Serializes and deserializes FloatingWidgets.

This commit is contained in:
mfreiholz
2016-02-17 09:59:11 +01:00
parent 5a17a88146
commit f0b1ea4735
7 changed files with 109 additions and 73 deletions
@@ -84,12 +84,14 @@ private:
// Internal Stuff Begins Here
//
SectionWidget* newSectionWidget();
SectionWidget* dropContent(const InternalContentData& data, SectionWidget* targetSection, DropArea area, bool autoActive = true);
void addSection(SectionWidget* section);
SectionWidget* sectionAt(const QPoint& pos) const;
SectionWidget* dropContentOuterHelper(QLayout* l, const InternalContentData& data, Qt::Orientation orientation, bool append);
void saveGeometryWalk(QDataStream& out, QWidget* widget) const;
bool restoreGeometryWalk(QDataStream& in, QSplitter* currentSplitter = NULL);
bool restoreFloatingWidgets(QDataStream& in, QList<FloatingWidget*>& floatings);
bool restoreSectionWidgets(QDataStream& in, QSplitter* currentSplitter, QList<SectionWidget*>& sections);
bool takeContent(const SectionContent::RefPtr& sc, InternalContentData& data);
private slots:
@@ -99,17 +101,16 @@ signals:
void orientationChanged();
private:
// Existing sections.
// SectionWidgets are always visible.
// Sections of this container
QList<SectionWidget*> _sections;
// All currently active Floatingwidgets.
QList<FloatingWidget*> _floatingWidgets;
//Floatings of this container
QList<FloatingWidget*> _floatings;
// Layout stuff
QGridLayout* _mainLayout;
Qt::Orientation _orientation;
QPointer<QSplitter> _splitter;
QPointer<QSplitter> _splitter; // $mfreiholz: I'd like to remove this variable entirely.
};
ADS_NAMESPACE_END
@@ -31,6 +31,7 @@ public:
virtual ~SectionWidget();
int uid() const;
ContainerWidget* containerWidget() const;
QRect titleAreaGeometry() const;
QRect contentAreaGeometry() const;
@@ -71,6 +72,7 @@ private:
static int NextUid;
static QHash<int, SectionWidget*> LookupMap;
static QHash<ContainerWidget*, QHash<int, SectionWidget*> > LookupMapByContainer;
};
ADS_NAMESPACE_END