KDDockWidgets API Documentation 2.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
KDDockWidgets::LayoutSaver Class Reference

LayoutSaver allows to save or restore layouts. More...

#include <LayoutSaver.h>

Inheritance diagram for KDDockWidgets::LayoutSaver:
Inheritance graph
[legend]

Public Member Functions

 LayoutSaver (RestoreOptions options=RestoreOption_None)
 Constructor. Construction on the stack is suggested.
 
 ~LayoutSaver ()
 Destructor.
 
Private * dptr () const
 
Vector< Core::DockWidget * > restoredDockWidgets () const
 returns a list of dock widgets which were restored since the last restoreLayout() or restoreFromFile()
 
bool restoreFromFile (const QString &jsonFilename)
 restores the layout from a JSON file
 
bool restoreLayout (const QByteArray &)
 restores the layout from a byte array All MainWindows and DockWidgets should have been created before calling this function.
 
bool saveToFile (const QString &jsonFilename)
 saves the layout to JSON file
 
QByteArray serializeLayout () const
 saves the layout into a byte array
 
void setAffinityNames (const Vector< QString > &affinityNames)
 Sets the list of affinity names for which restore and save will be applied on. Allows to save/restore only a subset of the windows. Empty by default, all windows are subject to save/restore. Any window with empty affinity will also be subject to save/restore, regardless of affinityNames.
 

Static Public Member Functions

static bool restoreInProgress ()
 returns whether a restore (restoreLayout) is in progress
 

Detailed Description

LayoutSaver allows to save or restore layouts.

You can save a layout to a file or to a byte array. JSON is used as the serialized format.

Example: LayoutSaver saver;

// Save to a file: saver.saveToFile(filename);

The counterpart of saveToFile() is restoreFromFile().

You can also save to a QByteArray instead, with serializeLayout(). The counterpart of serializeLayout() is restoreLayout();

Definition at line 55 of file LayoutSaver.h.

Constructor & Destructor Documentation

◆ LayoutSaver()

LayoutSaver::LayoutSaver ( RestoreOptions  options = RestoreOption_None)
explicit

Constructor. Construction on the stack is suggested.

Definition at line 371 of file LayoutSaver.cpp.

◆ ~LayoutSaver()

LayoutSaver::~LayoutSaver ( )

Destructor.

Definition at line 377 of file LayoutSaver.cpp.

Member Function Documentation

◆ dptr()

LayoutSaver::Private * LayoutSaver::dptr ( ) const

Definition at line 592 of file LayoutSaver.cpp.

◆ restoredDockWidgets()

Core::DockWidget::List LayoutSaver::restoredDockWidgets ( ) const

returns a list of dock widgets which were restored since the last restoreLayout() or restoreFromFile()

Useful since some dock widgets can be new, and hence not be included in the last saved layout.

Definition at line 597 of file LayoutSaver.cpp.

References KDDockWidgets::DockRegistry::dockwidgets(), KDToolBox::StlContainerAdaptor::StdVectorAdaptor< T, Args >::reserve(), KDDockWidgets::DockRegistry::self(), and KDToolBox::StlContainerAdaptor::StdVectorAdaptor< T, Args >::size().

◆ restoreFromFile()

bool LayoutSaver::restoreFromFile ( const QString jsonFilename)

restores the layout from a JSON file

Parameters
jsonFilenamethe filename containing a saved layout
Returns
true on success

Definition at line 398 of file LayoutSaver.cpp.

References KDDockWidgets::Core::Platform::instance(), KDDockWidgets::Core::Platform::readFile(), and restoreLayout().

Referenced by KDDockWidgets::Debug::DebugWindow::DebugWindow(), c_KDDockWidgets__LayoutSaver__restoreFromFile_QString(), lint(), and KDDockWidgets::LayoutSaverInstantiator::restoreFromFile().

◆ restoreInProgress()

bool LayoutSaver::restoreInProgress ( )
static

returns whether a restore (restoreLayout) is in progress

Definition at line 703 of file LayoutSaver.cpp.

Referenced by KDDockWidgets::Core::Layout::setLayoutSize().

◆ restoreLayout()

bool LayoutSaver::restoreLayout ( const QByteArray data)

restores the layout from a byte array All MainWindows and DockWidgets should have been created before calling this function.

If not all DockWidgets can be created beforehand then make sure to set a DockWidget factory via Config::setDockWidgetFactoryFunc()

See also
Config::setDockWidgetFactoryFunc()
Returns
true on success

Definition at line 462 of file LayoutSaver.cpp.

References KDDockWidgets::DockRegistry::ConsultRemapping, KDDockWidgets::Core::DockWidget::deserialize(), QByteArray::isEmpty(), KDDockWidgets::Config::mainWindowFactoryFunc(), KDDockWidgets::DockRegistry::mainwindows(), KDDockWidgets::None, KDDockWidgets::Config::self(), and KDDockWidgets::DockRegistry::self().

Referenced by restoreFromFile().

◆ saveToFile()

bool LayoutSaver::saveToFile ( const QString jsonFilename)

saves the layout to JSON file

Parameters
jsonFilenamethe filename where the layout will be saved to
Returns
true on success

Definition at line 383 of file LayoutSaver.cpp.

References QByteArray::constData(), serializeLayout(), QByteArray::size(), and QString::toStdString().

Referenced by KDDockWidgets::Debug::DebugWindow::DebugWindow(), c_KDDockWidgets__LayoutSaver__saveToFile_QString(), and KDDockWidgets::LayoutSaverInstantiator::saveToFile().

◆ serializeLayout()

QByteArray LayoutSaver::serializeLayout ( ) const

saves the layout into a byte array

Definition at line 409 of file LayoutSaver.cpp.

References KDToolBox::StlContainerAdaptor::StdVectorAdaptor< T, Args >::size(), and KDDockWidgets::Skip.

Referenced by main(), and saveToFile().

◆ setAffinityNames()

void LayoutSaver::setAffinityNames ( const Vector< QString > &  affinityNames)

Sets the list of affinity names for which restore and save will be applied on. Allows to save/restore only a subset of the windows. Empty by default, all windows are subject to save/restore. Any window with empty affinity will also be subject to save/restore, regardless of affinityNames.

Definition at line 583 of file LayoutSaver.cpp.

References KDToolBox::StlContainerAdaptor::StdVectorAdaptor< T, Args >::contains().


The documentation for this class was generated from the following files:

© Klarälvdalens Datakonsult AB (KDAB)
"The Qt, C++ and OpenGL Experts"
https://www.kdab.com/
KDDockWidgets
Advanced Dock Widget Framework for Qt
https://www.kdab.com/development-resources/qt-tools/kddockwidgets/
Generated by doxygen 1.9.8