ACF $AcfVersion:0$
TRestorableGuiWrap.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
8
9
10namespace iqtgui
11{
12
13
17template <class Gui>
18class TRestorableGuiWrap: public Gui
19{
20public:
21 typedef Gui BaseClass;
22
23 I_BEGIN_BASE_COMPONENT(TRestorableGuiWrap);
24 I_ASSIGN(m_settingsProviderCompPtr, "SettingsProvider", "Application settings provider", false, "SettingsProvider");
25 I_END_COMPONENT;
26
27protected:
28 // abstract methods
29 virtual void OnRestoreSettings(const QSettings& settings) = 0;
30 virtual void OnSaveSettings(QSettings& settings) const = 0;
31
32 // pseudo-reimplemented (iqtgui::CGuiComponentBase)
33 virtual bool CreateGui(QWidget* parentPtr) override;
34 virtual bool DestroyGui() override;
35
36protected:
37 I_REF(iqt::ISettingsProvider, m_settingsProviderCompPtr);
38};
39
40
41// protected methods
42
43template <class Gui>
44bool TRestorableGuiWrap<Gui>::CreateGui(QWidget* parentPtr)
45{
46 bool retVal = BaseClass::CreateGui(parentPtr);
47
48 if (m_settingsProviderCompPtr.IsValid()){
49 OnRestoreSettings(m_settingsProviderCompPtr->GetSettings());
50 }
51
52 return retVal;
53}
54
55
56template <class Gui>
58{
59 if (m_settingsProviderCompPtr.IsValid()){
60 OnSaveSettings(m_settingsProviderCompPtr->GetSettings());
61 }
62
63 return BaseClass::DestroyGui();
64}
65
66
67} // namespace iqtgui
68
69
70
71
Interface for access the application settings object.
A wrapper for saving/restoring of GUI component states in the application settings.
virtual bool DestroyGui() override
virtual void OnRestoreSettings(const QSettings &settings)=0
virtual bool CreateGui(QWidget *parentPtr) override
virtual void OnSaveSettings(QSettings &settings) const =0
Standard GUI specific interfaces and components based on Qt.