diff --git a/src/DockAreaWidget.cpp b/src/DockAreaWidget.cpp index dfcb4ee0..53146971 100644 --- a/src/DockAreaWidget.cpp +++ b/src/DockAreaWidget.cpp @@ -1046,6 +1046,7 @@ bool CDockAreaWidget::restoreState(CDockingStateReader& s, CDockAreaWidget*& Cre { return false; } + const QString UserCustomProperty = s.attributes().value(internal::UserCustomProperty).toString(); s.skipCurrentElement(); CDockWidget* DockWidget = DockManager->findDockWidget(ObjectName.toString()); @@ -1068,6 +1069,14 @@ bool CDockAreaWidget::restoreState(CDockingStateReader& s, CDockAreaWidget*& Cre DockWidget->setClosedState(Closed); DockWidget->setProperty(internal::ClosedProperty, Closed); DockWidget->setProperty(internal::DirtyProperty, false); + if (!UserCustomProperty.isEmpty()) + { + DockWidget->setProperty(internal::UserCustomProperty, UserCustomProperty); + } + else + { + DockWidget->setProperty(internal::UserCustomProperty, QVariant()); + } } if (Testing) diff --git a/src/DockWidget.cpp b/src/DockWidget.cpp index b4e0bb13..52ad6cdd 100644 --- a/src/DockWidget.cpp +++ b/src/DockWidget.cpp @@ -833,6 +833,11 @@ void CDockWidget::saveState(QXmlStreamWriter& s) const s.writeStartElement("Widget"); s.writeAttribute("Name", objectName()); s.writeAttribute("Closed", QString::number(d->Closed ? 1 : 0)); + QString UserCustomProperty = property(internal::UserCustomProperty).toString(); + if (!UserCustomProperty.isEmpty()) + { + s.writeAttribute(internal::UserCustomProperty, UserCustomProperty); + } s.writeEndElement(); } diff --git a/src/ads_globals.h b/src/ads_globals.h index f7ccc8e3..700410d0 100644 --- a/src/ads_globals.h +++ b/src/ads_globals.h @@ -166,6 +166,7 @@ namespace internal static const bool RestoreTesting = true; static const bool Restore = false; static const char* const ClosedProperty = "close"; +static const char* const UserCustomProperty = "UserCustomProperty"; static const char* const DirtyProperty = "dirty"; static const char* const LocationProperty = "Location"; extern const int FloatingWidgetDragStartEvent;