QtMvvm  1.0.0
A mvvm oriented library for Qt, to create Projects for Widgets and Quick in parallel
Public Slots | Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Properties | List of all members
QtMvvm::SettingsViewModel Class Reference

A ViewModel for a generic settings dialog based of an XML settings file. More...

#include <settingsviewmodel.h>

+ Inheritance diagram for QtMvvm::SettingsViewModel:

Public Slots

virtual void callAction (const QString &key, const QVariantMap &parameters)
 Is called when an action type edit is pressed. More...
 
void setSettingsSetupLoader (QtMvvm::ISettingsSetupLoader *settingsSetupLoader)
 WRITE accessor for SettingsViewModel::settingsSetupLoader.
 
- Public Slots inherited from QtMvvm::ViewModel
virtual void onResult (quint32 requestCode, const QVariant &result)
 Called by the presenter when a result of a showed viewmodel is ready. More...
 

Signals

void settingsSetupLoaderChanged (QtMvvm::ISettingsSetupLoader *settingsSetupLoader, QPrivateSignal)
 NOTIFY accessor for SettingsViewModel::settingsSetupLoader.
 
void beginLoadSetup ()
 Is emitted when the initialization has been completed and the viewmodel is ready for loading settings.
 
- Signals inherited from QtMvvm::ViewModel
void resultReady (const QVariant &result)
 Should be emitted when the viewmodels result is ready. More...
 

Public Member Functions

Q_INVOKABLE SettingsViewModel (QObject *parent=nullptr)
 Invokable constructor.
 
virtual bool canRestoreDefaults () const
 READ accessor for SettingsViewModel::canRestoreDefaults.
 
virtual QtMvvm::MessageConfig restoreConfig () const
 READ accessor for SettingsViewModel::restoreConfig.
 
ISettingsSetupLoadersettingsSetupLoader () const
 READ accessor for SettingsViewModel::settingsSetupLoader.
 
SettingsElements::Setup loadSetup (const QString &frontend) const
 Loads the settings setup of the prepared file for the given frontend. More...
 
QSettingssettings () const
 Returns the settings this viewmodel operates on.
 
virtual Q_INVOKABLE QVariant loadValue (const QString &key, const QVariant &defaultValue={}) const
 Loads the value for the given key from the settings. More...
 
virtual Q_INVOKABLE void saveValue (const QString &key, const QVariant &value)
 Saves the value with the given key. More...
 
virtual Q_INVOKABLE void resetValue (const QString &key)
 Resets the value or group identified by the key. More...
 
- Public Member Functions inherited from QtMvvm::ViewModel
 ViewModel (QObject *parent=nullptr)
 Default constructor with parent.
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
virtual const QMetaObjectmetaObject () const
 
QString objectName () const
 
void setObjectName (const QString &name)
 
bool isWidgetType () const
 
bool isWindowType () const
 
bool signalsBlocked () const
 
bool blockSignals (bool block)
 
QThreadthread () const
 
void moveToThread (QThread *targetThread)
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
void killTimer (int id)
 
findChild (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const
 
const QObjectList & children () const
 
void setParent (QObject *parent)
 
void installEventFilter (QObject *filterObj)
 
void removeEventFilter (QObject *obj)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const
 
bool disconnect (const QObject *receiver, const char *method) const
 
void dumpObjectTree ()
 
void dumpObjectInfo ()
 
void dumpObjectTree () const
 
void dumpObjectInfo () const
 
bool setProperty (const char *name, const QVariant &value)
 
QVariant property (const char *name) const
 
QList< QByteArraydynamicPropertyNames () const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const
 
bool inherits (const char *className) const
 
void deleteLater ()
 

Static Public Member Functions

static QVariantHash showParams (QSettings *settings, const QString &setupFile={})
 Generates show parameter to show a settings viewmodel via ViewModel::show. More...
 
- Static Public Member Functions inherited from QObject
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 

Static Public Attributes

static const QString paramSettings
 The parameter for a QSettings object for the onInit() method. More...
 
static const QString paramSetupFile
 The parameter for a settings setup file for the onInit() method. More...
 

Protected Member Functions

void onInit (const QVariantHash &params) override
 Called by the presenter to initialize the viewmodel. More...
 
- Protected Member Functions inherited from QtMvvm::ViewModel
template<typename TViewModel >
void show (const QVariantHash &params={}) const
 Show another viewmodel as a child of this one. More...
 
void show (const char *viewModelName, const QVariantHash &params={}) const
 Show another viewmodel as a child of this one. More...
 
void show (const QMetaObject *viewMetaObject, const QVariantHash &params={}) const
 Show another viewmodel as a child of this one. More...
 
template<typename TViewModel >
void showForResult (quint32 requestCode, const QVariantHash &params={}) const
 Show another viewmodel as a child of this one and expect its result. More...
 
void showForResult (quint32 requestCode, const char *viewModelName, const QVariantHash &params={}) const
 Show another viewmodel as a child of this one and expect its result. More...
 
void showForResult (quint32 requestCode, const QMetaObject *viewMetaObject, const QVariantHash &params={}) const
 Show another viewmodel as a child of this one and expect its result. More...
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 
virtual void childEvent (QChildEvent *event)
 
virtual void customEvent (QEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 

Properties

bool canRestoreDefaults
 Specifies if restoring the defaults is generally allowed. More...
 
QtMvvm::MessageConfig restoreConfig
 The message configuration to be used to for a dialog to ask for settings restore. More...
 
QtMvvm::ISettingsSetupLoader settingsSetupLoader
 The settings setup loader to use to create the settings dialog. Is an injected property. More...
 
- Properties inherited from QObject
 objectName
 

Detailed Description

A ViewModel for a generic settings dialog based of an XML settings file.

It's a ready made viewmodel to show a settings dialog. See The XML settings format. To show the dialog, call show from another ViewModel or the CoreApp:

show<QtMvvm::SettingsViewModel>();
See also
Images page

Definition at line 17 of file settingsviewmodel.h.

Member Function Documentation

◆ callAction

QtMvvm::SettingsViewModel::callAction ( const QString key,
const QVariantMap &  parameters 
)
virtualslot

Is called when an action type edit is pressed.

Parameters
keyThe key of the entry that triggered the action
parametersA map with additional parameters for the action call

This method is called by the GUI when an entry with the action type is pressed by the user. The key is what would normally be used as the settings key. The parameters are deduced from the settings XML. See the type documentation for more details.

See also
action

◆ loadSetup()

QtMvvm::SettingsViewModel::loadSetup ( const QString frontend) const

Loads the settings setup of the prepared file for the given frontend.

Parameters
frontendThe name of the current frontend
Returns
The loaded settings setup

If loading fails an empty setup is returned. Logging is performed internally, so you can just proceed without error checking and show an empty settings dialog.

◆ loadValue()

QtMvvm::SettingsViewModel::loadValue ( const QString key,
const QVariant defaultValue = {} 
) const
virtual

Loads the value for the given key from the settings.

Parameters
keyThe full key of the settings entry to be loaded
defaultValuea default value to return in case the value is not found in the settings
Returns
The value found under the given key

You can override this method if you want to support loading and saving settings from a different source then the normally used QSettings

See also
SettingsViewModel::saveValue, SettingsViewModel::resetValue

◆ onInit()

void QtMvvm::SettingsViewModel::onInit ( const QVariantHash &  params)
overrideprotectedvirtual

Called by the presenter to initialize the viewmodel.

Parameters
paramsThe parameters to initialize the viewmodel with

This method is called by the presenter right after creating the view and reparenting the viewmodel to the view. The parameters are the ones that have been passed to the show method called to show this viewmodel instance. Reimplement this method if you need to perform initializations after beeing assigned to a viewmodel or if you want to support a parametrized viewmodel.

See also
ViewModel::show, ViewModel::showForResult, CoreApp::show

Reimplemented from QtMvvm::ViewModel.

◆ resetValue()

QtMvvm::SettingsViewModel::resetValue ( const QString key)
virtual

Resets the value or group identified by the key.

Parameters
keyThe full key of the settings entry to be resetted

You can override this method if you want to support loading and saving settings from a different source then the normally used QSettings

See also
SettingsViewModel::loadValue, SettingsViewModel::saveValue

◆ saveValue()

QtMvvm::SettingsViewModel::saveValue ( const QString key,
const QVariant value 
)
virtual

Saves the value with the given key.

Parameters
keyThe full key of the settings entry to be saved
valueThe value to be stored under the key

You can override this method if you want to support loading and saving settings from a different source then the normally used QSettings

See also
SettingsViewModel::loadValue, SettingsViewModel::resetValue

◆ showParams()

QtMvvm::SettingsViewModel::showParams ( QSettings settings,
const QString setupFile = {} 
)
static

Generates show parameter to show a settings viewmodel via ViewModel::show.

Parameters
settingsThe QSettings to operate on. Can be null to use the default settings
setupFileThe path to a file to be used to create the settings. Can be empty to use the default path
Returns
A paramater hash to be passed to ViewModel::show

It's a shortcut to generate parameters for the show methods to show a settings viewmodel. Use them as:

show<QtMvvm::SettingsViewModel>(QtMvvm::SettingsViewModel::showParams(...));
Note
Unless you need to explicitly set the settings or setup file a normal show without any parameters will just do fine.
See also
ViewModel::show, SettingsViewModel::paramSettings, SettingsViewModel::paramSetupFile

Member Data Documentation

◆ paramSettings

QtMvvm::SettingsViewModel::paramSettings
static

The parameter for a QSettings object for the onInit() method.

Value: "settings"

See also
SettingsViewModel::showParams

Definition at line 32 of file settingsviewmodel.h.

◆ paramSetupFile

QtMvvm::SettingsViewModel::paramSetupFile
static

The parameter for a settings setup file for the onInit() method.

Value: "setupFile"

See also
SettingsViewModel::showParams

Definition at line 34 of file settingsviewmodel.h.

Property Documentation

◆ canRestoreDefaults

QtMvvm::SettingsViewModel::canRestoreDefaults
read

Specifies if restoring the defaults is generally allowed.

Default: true

Restoring defaults is only allowed if both this property and the attribute of the settings XML are true.

Accessors
READcanRestoreDefaults()
CONSTANT
See also
Attributes

Definition at line 22 of file settingsviewmodel.h.

◆ restoreConfig

QtMvvm::SettingsViewModel::restoreConfig
read

The message configuration to be used to for a dialog to ask for settings restore.

Default: A basic question messagebox

If you want to modify the text or options, you can replace the messagebox with another dialog.

Accessors
READrestoreConfig()
CONSTANT

Definition at line 24 of file settingsviewmodel.h.

◆ settingsSetupLoader

QtMvvm::SettingsViewModel::settingsSetupLoader
readwrite

The settings setup loader to use to create the settings dialog. Is an injected property.

Default: Injected

Do not set this property yourself. It is automatically injected when showing the viewmodel. You can use the ServiceRegistry::registerInterface if you need to use a loader different from the default one.

Accessors
READsettingsSetupLoader()
WRITEsetSettingsSetupLoader()
NOTIFYsettingsSetupLoaderChanged()
See also
QTMVVM_INJECT

Definition at line 27 of file settingsviewmodel.h.


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