Skip to content

Commit

Permalink
Added macros for settings definition
Browse files Browse the repository at this point in the history
  • Loading branch information
domi4484 committed Apr 1, 2021
1 parent d605257 commit ed0b45d
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 18 deletions.
2 changes: 0 additions & 2 deletions src/core/CMakeLists.txt
Expand Up @@ -717,7 +717,6 @@ set(QGIS_CORE_SRCS
geocms/geonode/qgsgeonoderequest.cpp

settings/qgssettingsentry.cpp
settings/qgssettingsregistry.cpp
settings/qgssettingsregistrycore.cpp

validity/qgsabstractvaliditycheck.cpp
Expand Down Expand Up @@ -1560,7 +1559,6 @@ set(QGIS_CORE_HDRS
textrenderer/qgstextshadowsettings.h

settings/qgssettingsentry.h
settings/qgssettingsregistry.h
settings/qgssettingsregistrycore.h

validity/qgsabstractvaliditycheck.h
Expand Down
5 changes: 1 addition & 4 deletions src/core/layout/qgslayout.h
Expand Up @@ -660,10 +660,7 @@ class CORE_EXPORT QgsLayout : public QGraphicsScene, public QgsExpressionContext

struct Settings
{
struct SearchPathForTemplates : public QgsSettingsEntryStringList
{
SearchPathForTemplates() : QgsSettingsEntryStringList( "Layout/searchPathsForTemplates", QgsSettings::Core, QStringList(), QObject::tr( "Search path for templates" ) ) {}
};
QGS_SETTING_ENTRY_STRINGLIST( SearchPathForTemplates, "Layout/searchPathsForTemplates", QgsSettings::Core, QStringList(), "Search path for templates" )
};

public slots:
Expand Down
15 changes: 3 additions & 12 deletions src/core/locator/qgslocator.h
Expand Up @@ -155,18 +155,9 @@ class CORE_EXPORT QgsLocator : public QObject

struct Settings
{
struct LocatorFilterEnabled : public QgsSettingsEntryBool
{
LocatorFilterEnabled() : QgsSettingsEntryBool( "locator_filters/enabled_%", QgsSettings::Gui, true, QObject::tr( "Enabled" ) ) {}
};
struct LocatorFilterDefault : public QgsSettingsEntryBool
{
LocatorFilterDefault() : QgsSettingsEntryBool( "locator_filters/default_%", QgsSettings::Gui, false, QObject::tr( "Default value" ) ) {}
};
struct LocatorFilterPrefix : public QgsSettingsEntryString
{
LocatorFilterPrefix() : QgsSettingsEntryString( "locator_filters/prefix_%", QgsSettings::Gui, QString(), QObject::tr( "Locator filter prefix" ) ) {}
};
QGS_SETTING_ENTRY_BOOL( LocatorFilterEnabled, "locator_filters/enabled_%", QgsSettings::Gui, true, "Enabled" )
QGS_SETTING_ENTRY_BOOL( LocatorFilterDefault, "locator_filters/default_%", QgsSettings::Gui, false, "Default value" )
QGS_SETTING_ENTRY_STRING( LocatorFilterPrefix, "locator_filters/prefix_%", QgsSettings::Gui, QString(), "Locator filter prefix", 0, -1 )
};

signals:
Expand Down
26 changes: 26 additions & 0 deletions src/core/settings/qgssettingsentry.h
Expand Up @@ -23,6 +23,30 @@
#include "qgis_sip.h"
#include "qgssettings.h"

# define QGS_SETTING_ENTRY_STRING(name, path, section, defaultValue, description, minLength, maxLength) \
struct name : public QgsSettingsEntryString \
{ name() : QgsSettingsEntryString( path, section, defaultValue, QObject::tr( description ), minLength, maxLength ) {} };

# define QGS_SETTING_ENTRY_STRINGLIST(name, path, section, defaultValue, description) \
struct name : public QgsSettingsEntryStringList \
{ name() : QgsSettingsEntryStringList( path, section, defaultValue, QObject::tr( description ) ) {} };

# define QGS_SETTING_ENTRY_BOOL(name, path, section, defaultValue, description) \
struct name : public QgsSettingsEntryBool \
{ name() : QgsSettingsEntryBool( path, section, defaultValue, QObject::tr( description ) ) {} };

# define QGS_SETTING_ENTRY_INTEGER(name, path, section, defaultValue, description, minValue, maxValue) \
struct name : public QgsSettingsEntryInteger \
{ name() : QgsSettingsEntryInteger( path, section, defaultValue, QObject::tr( description ), minValue, maxValue ) {} };

# define QGS_SETTING_ENTRY_DOUBLE(name, path, section, defaultValue, description, minValue, maxValue, displayDecimals) \
struct name : public QgsSettingsEntryDouble \
{ name() : QgsSettingsEntryDouble( path, section, defaultValue, QObject::tr( description ), minValue, maxValue, displayDecimals ) {} };

# define QGS_SETTING_ENTRY_ENUM(name, path, section, defaultValue, description) \
struct name : public QgsSettingsEntryEnum \
{ name() : QgsSettingsEntryEnum( path, section, defaultValue, QObject::tr( description ) ) {} };

/**
* \ingroup core
* \class QgsSettingsEntry
Expand All @@ -42,6 +66,8 @@ class CORE_EXPORT QgsSettingsEntry
sipType = sipType_QgsSettingsEntryString;
if ( dynamic_cast< QgsSettingsEntryStringList * >( sipCpp ) )
sipType = sipType_QgsSettingsEntryStringList;
else if ( dynamic_cast< QgsSettingsEntryBool * >( sipCpp ) )
sipType = sipType_QgsSettingsEntryBool;
else if ( dynamic_cast< QgsSettingsEntryInteger * >( sipCpp ) )
sipType = sipType_QgsSettingsEntryInteger;
else if ( dynamic_cast< QgsSettingsEntryDouble * >( sipCpp ) )
Expand Down

0 comments on commit ed0b45d

Please sign in to comment.