KDDockWidgets API Documentation 1.7
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>

Public Member Functions

 LayoutSaver (RestoreOptions options=RestoreOption_None)
 Constructor. Construction on the stack is suggested.
 
 ~LayoutSaver ()
 Destructor.
 
Private * dptr () const
 
QVector< DockWidgetBase * > 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 QStringList &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 54 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 109 of file LayoutSaver.cpp.

◆ ~LayoutSaver()

LayoutSaver::~LayoutSaver ( )

Destructor.

Definition at line 114 of file LayoutSaver.cpp.

Member Function Documentation

◆ dptr()

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

Definition at line 321 of file LayoutSaver.cpp.

◆ restoredDockWidgets()

DockWidgetBase::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 326 of file LayoutSaver.cpp.

References QVector::push_back(), QVector::reserve(), and QVector::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 133 of file LayoutSaver.cpp.

References QIODevice::errorString(), QFile::open(), QIODevice::readAll(), QIODevice::ReadOnly, and restoreLayout().

Referenced by lint().

◆ restoreInProgress()

bool LayoutSaver::restoreInProgress ( )
static

returns whether a restore (restoreLayout) is in progress

Definition at line 444 of file LayoutSaver.cpp.

◆ 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 198 of file LayoutSaver.cpp.

References KDDockWidgets::MainWindowBase::affinities, KDDockWidgets::FrameworkWidgetFactory::createFloatingWindow(), KDDockWidgets::Config::frameworkWidgetFactory(), QByteArray::isEmpty(), KDDockWidgets::Config::mainWindowFactoryFunc(), KDDockWidgets::Config::self(), QWidget::window(), QWidget::windowHandle(), and Qt::WindowNoState.

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 119 of file LayoutSaver.cpp.

References QIODevice::errorString(), QFile::open(), serializeLayout(), QIODevice::write(), and QIODevice::WriteOnly.

◆ serializeLayout()

QByteArray LayoutSaver::serializeLayout ( ) const

saves the layout into a byte array

Definition at line 147 of file LayoutSaver.cpp.

References QVector::size(), and KDDockWidgets::DockWidgetBase::Skip.

Referenced by saveToFile().

◆ setAffinityNames()

void LayoutSaver::setAffinityNames ( const QStringList 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 312 of file LayoutSaver.cpp.

References QStringList::contains().


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

© 2019-2023 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 on Wed Nov 1 2023 00:02:31 for KDDockWidgets API Documentation by doxygen 1.9.8