digiKam
|
Public Types | |
enum | StateSavingDepth { INSTANCE , DIRECT_CHILDREN , RECURSIVE } |
Public Member Functions | |
StateSavingDepth | getStateSavingDepth () const |
void | loadState () |
void | saveState () |
virtual void | setConfigGroup (const KConfigGroup &group) |
virtual void | setEntryPrefix (const QString &prefix) |
void | setStateSavingDepth (const StateSavingDepth depth) |
StateSavingObject (QObject *const host) | |
virtual | ~StateSavingObject () |
Protected Member Functions | |
virtual void | doLoadState ()=0 |
virtual void | doSaveState ()=0 |
QString | entryName (const QString &base) const |
KConfigGroup | getConfigGroup () const |
An interface-like class with utility methods and a general public interface to support state saving and restoring for objects via KConfig. Use this class as a Mixin.
The public interface for loading and saving state is implemented designed as template methods. To store or restore the state of a class, inherit from this class via multiple inheritance and implement doLoadState() and doSaveState(). In these methods always use the protected method getConfigGroup() to access a config group. Also always use the entryName() method for generating keys in the config (for prefixes, see below).
Ensure that this class is inherited after a QObject-based class and pass "this" as constructor argument.
By default a config group based on Qt's object name of the class is used. This behaviour can be changed by setting a dedicated config group via setConfigGroup(). This is useful for to externally control the config group and shouldn't be used inside the implementing class.
Additionally to setting the config group, also a prefix for each config group entry can be defined via setEntryPrefix(). This may be useful if multiple instances of the same class shall be stored in the same config group or can generally be a good idea to make the config more readable and recognizable. By default this prefix is empty.
This class also supports recursive saving / loading invocations based on the QT object hierarchy. As default, calls to loadState() or saveState() only invoke the doLoadState() or doStateSave() method of the called instance. This behaviour can be changed with setStateSavingDepth() to automatically call children of the instance. Various modes are supported as documented in StateSavingDepth.
This enum defines the "depth" of the StateSavingObject::loadState() and StateSavingObject::saveState() methods.
Enumerator | |
---|---|
INSTANCE | Only the instance the saving / restoring was invoked on is saved / restored. |
DIRECT_CHILDREN | The instance itself and all direct children of this instance implementing StateSavingObject are saved / restored. |
RECURSIVE | The instance and all children in the complete hierarchy are saved / restored. |
|
explicit |
Constructor. Must be called after any QObject-based constructor.
host | self-reference to access the object name, simply pass "this" as argument |
|
virtual |
Destructor.
|
protectedpure virtual |
Implement this hook method for state loading. Use getConfigGroup() and entryName() for the implementation.
Implemented in Digikam::GPSSearchView, Digikam::FuzzySearchView, Digikam::FaceScanWidget, ShowFoto::ShowfotoStackViewSideBar, ShowFoto::ShowfotoFolderViewSideBar, Digikam::SearchTextBar, Digikam::Sidebar, Digikam::TagCheckView, Digikam::TagsManager, Digikam::ItemPropertiesSideBarDB, Digikam::ItemPropertiesSideBar, Digikam::ImportItemPropertiesSideBarImport, Digikam::LabelsTreeView, Digikam::AbstractCheckableAlbumTreeView, Digikam::AbstractAlbumTreeView, Digikam::TableView, Digikam::MapWidgetView, Digikam::TimelineSideBarWidget, Digikam::TagViewSideBarWidget, Digikam::SearchSideBarWidget, Digikam::PeopleSideBarWidget, Digikam::LabelsSideBarWidget, Digikam::GPSSearchSideBarWidget, Digikam::FuzzySearchSideBarWidget, Digikam::DateFolderViewSideBarWidget, Digikam::AlbumFolderViewSideBarWidget, Digikam::FilterSideBarWidget, and Digikam::DateFolderView.
Referenced by loadState().
|
protectedpure virtual |
Implement this hook method for state saving. Use getConfigGroup() and entryName() for the implementation.
Implemented in Digikam::GPSSearchView, Digikam::FuzzySearchView, Digikam::FaceScanWidget, ShowFoto::ShowfotoStackViewSideBar, ShowFoto::ShowfotoFolderViewSideBar, Digikam::SearchTextBar, Digikam::Sidebar, Digikam::TagCheckView, Digikam::TagsManager, Digikam::ItemPropertiesSideBarDB, Digikam::ItemPropertiesSideBar, Digikam::ImportItemPropertiesSideBarImport, Digikam::LabelsTreeView, Digikam::AbstractCheckableAlbumTreeView, Digikam::AbstractAlbumTreeView, Digikam::TableView, Digikam::MapWidgetView, Digikam::TimelineSideBarWidget, Digikam::TagViewSideBarWidget, Digikam::SearchSideBarWidget, Digikam::PeopleSideBarWidget, Digikam::LabelsSideBarWidget, Digikam::GPSSearchSideBarWidget, Digikam::FuzzySearchSideBarWidget, Digikam::DateFolderViewSideBarWidget, Digikam::AlbumFolderViewSideBarWidget, Digikam::FilterSideBarWidget, and Digikam::DateFolderView.
Referenced by saveState().
|
protected |
Always use this method to create config group entry names. This allows to manipulate the entry keys externally by eg. setting a prefix.
base | original name planned for the config group entry |
Referenced by Digikam::FilterSideBarWidget::doLoadState(), Digikam::AbstractAlbumTreeView::doLoadState(), Digikam::AbstractCheckableAlbumTreeView::doLoadState(), Digikam::LabelsTreeView::doLoadState(), Digikam::ImportItemPropertiesSideBarImport::doLoadState(), Digikam::ItemPropertiesSideBar::doLoadState(), Digikam::ItemPropertiesSideBarDB::doLoadState(), Digikam::TagCheckView::doLoadState(), Digikam::Sidebar::doLoadState(), Digikam::SearchTextBar::doLoadState(), ShowFoto::ShowfotoFolderViewSideBar::doLoadState(), ShowFoto::ShowfotoStackViewSideBar::doLoadState(), Digikam::FaceScanWidget::doLoadState(), Digikam::FuzzySearchView::doLoadState(), Digikam::GPSSearchView::doLoadState(), Digikam::FilterSideBarWidget::doSaveState(), Digikam::AbstractAlbumTreeView::doSaveState(), Digikam::AbstractCheckableAlbumTreeView::doSaveState(), Digikam::LabelsTreeView::doSaveState(), Digikam::ImportItemPropertiesSideBarImport::doSaveState(), Digikam::ItemPropertiesSideBar::doSaveState(), Digikam::ItemPropertiesSideBarDB::doSaveState(), Digikam::TagCheckView::doSaveState(), Digikam::Sidebar::doSaveState(), Digikam::SearchTextBar::doSaveState(), ShowFoto::ShowfotoFolderViewSideBar::doSaveState(), ShowFoto::ShowfotoStackViewSideBar::doSaveState(), Digikam::FaceScanWidget::doSaveState(), Digikam::FuzzySearchView::doSaveState(), and Digikam::GPSSearchView::doSaveState().
|
protected |
Returns the config group that must be used for state saving and loading.
Referenced by Digikam::AlbumFolderViewSideBarWidget::AlbumFolderViewSideBarWidget(), Digikam::DateFolderViewSideBarWidget::DateFolderViewSideBarWidget(), Digikam::FilterSideBarWidget::doLoadState(), Digikam::TagViewSideBarWidget::doLoadState(), Digikam::TimelineSideBarWidget::doLoadState(), Digikam::MapWidgetView::doLoadState(), Digikam::TableView::doLoadState(), Digikam::AbstractAlbumTreeView::doLoadState(), Digikam::AbstractCheckableAlbumTreeView::doLoadState(), Digikam::LabelsTreeView::doLoadState(), Digikam::ImportItemPropertiesSideBarImport::doLoadState(), Digikam::ItemPropertiesSideBar::doLoadState(), Digikam::ItemPropertiesSideBarDB::doLoadState(), Digikam::TagsManager::doLoadState(), Digikam::TagCheckView::doLoadState(), Digikam::Sidebar::doLoadState(), Digikam::SearchTextBar::doLoadState(), ShowFoto::ShowfotoFolderViewSideBar::doLoadState(), ShowFoto::ShowfotoStackViewSideBar::doLoadState(), Digikam::FaceScanWidget::doLoadState(), Digikam::FuzzySearchView::doLoadState(), Digikam::GPSSearchView::doLoadState(), Digikam::FilterSideBarWidget::doSaveState(), Digikam::TagViewSideBarWidget::doSaveState(), Digikam::TimelineSideBarWidget::doSaveState(), Digikam::MapWidgetView::doSaveState(), Digikam::TableView::doSaveState(), Digikam::AbstractAlbumTreeView::doSaveState(), Digikam::AbstractCheckableAlbumTreeView::doSaveState(), Digikam::LabelsTreeView::doSaveState(), Digikam::ImportItemPropertiesSideBarImport::doSaveState(), Digikam::ItemPropertiesSideBar::doSaveState(), Digikam::ItemPropertiesSideBarDB::doSaveState(), Digikam::TagsManager::doSaveState(), Digikam::TagCheckView::doSaveState(), Digikam::Sidebar::doSaveState(), Digikam::SearchTextBar::doSaveState(), ShowFoto::ShowfotoFolderViewSideBar::doSaveState(), ShowFoto::ShowfotoStackViewSideBar::doSaveState(), Digikam::FaceScanWidget::doSaveState(), Digikam::FuzzySearchView::doSaveState(), Digikam::GPSSearchView::doSaveState(), Digikam::FuzzySearchSideBarWidget::FuzzySearchSideBarWidget(), Digikam::GPSSearchSideBarWidget::GPSSearchSideBarWidget(), Digikam::LabelsSideBarWidget::LabelsSideBarWidget(), Digikam::PeopleSideBarWidget::PeopleSideBarWidget(), Digikam::SearchSideBarWidget::SearchSideBarWidget(), Digikam::TagsManager::setupUi(), Digikam::TagViewSideBarWidget::TagViewSideBarWidget(), and Digikam::TimelineSideBarWidget::TimelineSideBarWidget().
StateSavingObject::StateSavingDepth Digikam::StateSavingObject::getStateSavingDepth | ( | ) | const |
Returns the depth used for state saving or loading. Default is StateSavingDepth::INSTANCE.
void Digikam::StateSavingObject::loadState | ( | ) |
Invokes loading the class' state.
References doLoadState().
Referenced by Digikam::FuzzySearchView::doLoadState(), Digikam::SearchTextBar::SearchTextBar(), ShowFoto::Showfoto::Showfoto(), and Digikam::TagsManager::TagsManager().
void Digikam::StateSavingObject::saveState | ( | ) |
Invokes saving the class' state.
References doSaveState().
Referenced by Digikam::ImageWindow::closeEvent(), Digikam::FuzzySearchView::doSaveState(), Digikam::DateFolderView::~DateFolderView(), Digikam::SearchTextBar::~SearchTextBar(), Digikam::Sidebar::~Sidebar(), and Digikam::TagsManager::~TagsManager().
|
virtual |
Sets a dedicated config group that will be used to store and reload the state from. If this method is not called, a group based on the object name is used.
You can re-implement this method to pass the group set here to child objects. Don't forget to call this method in your implementation.
group | config group to use for state saving and restoring |
Reimplemented in Digikam::GPSSearchView, Digikam::FuzzySearchView, Digikam::FilterSideBarWidget, and Digikam::DateFolderView.
Referenced by Digikam::ImageWindow::closeEvent(), Digikam::DateFolderView::setConfigGroup(), Digikam::FilterSideBarWidget::setConfigGroup(), Digikam::FuzzySearchView::setConfigGroup(), and Digikam::GPSSearchView::setConfigGroup().
|
virtual |
Define a prefix that will be used for every entry in the config group. The default prefix is empty.
You can re-implement this method to pass the prefix set here to child objects. Don't forget to call this method in your implementation.
prefix | the prefix to use for the config entries |
References prefix.
void Digikam::StateSavingObject::setStateSavingDepth | ( | const StateSavingDepth | depth | ) |
Sets the depth used for state saving or loading.
depth | new depth to use |