QGIS API Documentation 4.1.0-Master (60fea48833c)
Loading...
Searching...
No Matches
qgssettingsentryimpl.h
Go to the documentation of this file.
1/***************************************************************************
2 qgssettingsentryimpl.h
3 --------------------------------------
4 Date : February 2022
5 Copyright : (C) 2022 by Denis Rouzaud
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSSETTINGSENTRYIMPL_H
17#define QGSSETTINGSENTRYIMPL_H
18
19#include "qgssettingsentry.h"
20
28class CORE_EXPORT QgsSettingsEntryVariant : public QgsSettingsEntryBaseTemplate<QVariant>
29{
30 public:
45
60
61#ifdef SIP_RUN
62 // clang-format off
63
74 QgsSettingsEntryVariant( const QString &key,
75 const QString &pluginName,
76 const QVariant &defaultValue = QVariant(),
77 const QString &description = QString(),
79 % MethodCode
80 sipCpp = new sipQgsSettingsEntryVariant( QgsSettingsEntryVariant( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), *a2, *a3, *a4 ) );
81 % End
82// clang-format on
83#endif
84
85#ifdef SIP_RUN
86 // clang-format off
87
93
94 SIP_PYOBJECT valueAs( SIP_PYOBJECT type ) const;
95 % MethodCode
96 typedef PyObject *( *pyqt_from_qvariant_by_type )( QVariant &value, PyObject *type );
97 QVariant value;
98
99 value = sipCpp->value();
100
101 pyqt_from_qvariant_by_type f = ( pyqt_from_qvariant_by_type ) sipImportSymbol( SIP_PYQT_FROM_QVARIANT_BY_TYPE );
102 sipRes = f( value, a0 );
103
104 sipIsErr = !sipRes;
105 % End
106// clang-format on
107#endif
108
109
110 Qgis::SettingsType settingsType() const override;
111
112 QVariant convertFromVariant( const QVariant &value ) const override SIP_FORCE { return value; }
113};
114
122class CORE_EXPORT QgsSettingsEntryString : public QgsSettingsEntryBaseTemplate<QString>
123{
124 public:
137 const QString &name,
139 const QString &defaultValue = QString(),
140 const QString &description = QString(),
142 int minLength = 0,
143 int maxLength = -1
145 mMinLength( minLength ),
146 mMaxLength( maxLength )
147 {}
148
161 const QString &key,
162 const QString &section,
163 const QString &defaultValue = QString(),
164 const QString &description = QString(),
166 int minLength = 0,
167 int maxLength = -1
169 mMinLength( minLength ),
170 mMaxLength( maxLength )
171 {}
172
173#ifdef SIP_RUN
174 // clang-format off
175
186 QgsSettingsEntryString( const QString &key,
187 const QString &pluginName,
188 const QString &defaultValue = QString(),
189 const QString &description = QString(),
191 int minLength = 0,
192 int maxLength = -1 ) SIP_THROW( QgsSettingsException ) SIP_TRANSFER;
193 % MethodCode
194 sipCpp = new sipQgsSettingsEntryString( QgsSettingsEntryString( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), *a2, *a3, *a4 ) );
195 % End
196// clang-format on
197#endif
198
199 Qgis::SettingsType settingsType() const override;
200
204 int minLength() const;
205
209 int maxLength() const;
210
211 QString convertFromVariant( const QVariant &value ) const override SIP_FORCE;
212
213 private:
214 bool checkValuePrivate( const QString &value ) const override SIP_FORCE;
215
216 int mMinLength;
217 int mMaxLength;
218};
219
220
228class CORE_EXPORT QgsSettingsEntryStringList : public QgsSettingsEntryBaseTemplate<QStringList>
229{
230 public:
244
258
259
260#ifdef SIP_RUN
261 // clang-format off
262
273 QgsSettingsEntryStringList( const QString &key,
274 const QString &pluginName,
275 const QStringList &defaultValue = QStringList(),
276 const QString &description = QString(),
278 % MethodCode
279 sipCpp = new sipQgsSettingsEntryStringList( QgsSettingsEntryStringList( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), *a2, *a3, *a4 ) );
280 % End
281// clang-format on
282#endif
283
284 Qgis::SettingsType settingsType() const override;
285
286 QStringList convertFromVariant( const QVariant &value ) const override SIP_FORCE;
287};
288
289
298{
299 public:
313
327
328#ifdef SIP_RUN
329 // clang-format off
330
341 QgsSettingsEntryBool( const QString &key,
342 const QString &pluginName,
343 bool defaultValue = false,
344 const QString &description = QString(),
346 % MethodCode
347 sipCpp = new sipQgsSettingsEntryBool( QgsSettingsEntryBool( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), a2, *a3, *a4 ) );
348 % End
349// clang-format on
350#endif
351
352
353 Qgis::SettingsType settingsType() const override;
354
355 bool convertFromVariant( const QVariant &value ) const override SIP_FORCE;
356};
357
358
367{
368 public:
381 const QString &name,
383 int defaultValue = 0,
384 const QString &description = QString(),
386 int minValue = std::numeric_limits<int>::min(),
387 int maxValue = std::numeric_limits<int>::max()
389 mMinValue( minValue ),
390 mMaxValue( maxValue )
391 {}
392
405 const QString &key,
406 const QString &section,
407 int defaultValue = 0,
408 const QString &description = QString(),
410 int minValue = std::numeric_limits<int>::min(),
411 int maxValue = std::numeric_limits<int>::max()
413 mMinValue( minValue ),
414 mMaxValue( maxValue )
415 {}
416
417#ifdef SIP_RUN
418 // clang-format off
419
432 QgsSettingsEntryInteger( const QString &key,
433 const QString &pluginName,
434 int defaultValue = 0,
435 const QString &description = QString(),
437 int minValue = std::numeric_limits<int>::min(),
438 int maxValue = std::numeric_limits<int>::max() ) SIP_THROW( QgsSettingsException ) SIP_TRANSFER;
439 % MethodCode
440 sipCpp = new sipQgsSettingsEntryInteger( QgsSettingsEntryInteger( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), a2, *a3, *a4, a5, a6 ) );
441 % End
442// clang-format on
443#endif
444
445 Qgis::SettingsType settingsType() const override;
446
450 int minValue() const;
451
455 int maxValue() const;
456
457 int convertFromVariant( const QVariant &value ) const override SIP_FORCE;
458
459 private:
460 bool checkValuePrivate( const int &value ) const override SIP_FORCE;
461 int mMinValue;
462 int mMaxValue;
463};
464
465#ifndef SIP_RUN
466// not available in Python for now (no direct support of 64 bits integers in Python)
467
475class CORE_EXPORT QgsSettingsEntryInteger64 : public QgsSettingsEntryBaseTemplate<qlonglong>
476{
477 public:
490 const QString &name,
492 qlonglong defaultValue = 0,
493 const QString &description = QString(),
495 qlonglong minValue = std::numeric_limits<qlonglong>::min(),
496 qlonglong maxValue = std::numeric_limits<qlonglong>::max()
499 , mMinValue( minValue )
500 , mMaxValue( maxValue )
501 {}
502
515 const QString &key,
516 const QString &section,
517 qlonglong defaultValue = 0,
518 const QString &description = QString(),
520 qlonglong minValue = std::numeric_limits<qlonglong>::min(),
521 qlonglong maxValue = std::numeric_limits<qlonglong>::max()
522 )
524 , mMinValue( minValue )
525 , mMaxValue( maxValue )
526 {}
527
528 Qgis::SettingsType settingsType() const override;
529
533 qlonglong minValue() const;
534
538 qlonglong maxValue() const;
539
540 qlonglong convertFromVariant( const QVariant &value ) const override;
541
542 private:
543 bool checkValuePrivate( const qlonglong &value ) const override;
544 qlonglong mMinValue;
545 qlonglong mMaxValue;
546};
547#endif
548
556class CORE_EXPORT QgsSettingsEntryDouble : public QgsSettingsEntryBaseTemplate<double>
557{
558 public:
573 const QString &name,
575 double defaultValue = 0.0,
576 const QString &description = QString(),
578 double minValue = std::numeric_limits<double>::lowest(),
579 double maxValue = std::numeric_limits<double>::max(),
580 int displayDecimals = 1
582 mMinValue( minValue ),
583 mMaxValue( maxValue ),
584 mDisplayHintDecimals( displayDecimals )
585 {}
586
601 const QString &key,
602 const QString &section,
603 double defaultValue = 0.0,
604 const QString &description = QString(),
606 double minValue = std::numeric_limits<double>::lowest(),
607 double maxValue = std::numeric_limits<double>::max(),
608 int displayDecimals = 1
610 mMinValue( minValue ),
611 mMaxValue( maxValue ),
612 mDisplayHintDecimals( displayDecimals )
613 {}
614
615#ifdef SIP_RUN
616 // clang-format off
617
631 QgsSettingsEntryDouble( const QString &key,
632 const QString &pluginName,
633 double defaultValue,
634 const QString &description = QString(),
636 double minValue = std::numeric_limits<double>::lowest(),
637 double maxValue = std::numeric_limits<double>::max(),
638 int displayDecimals = 1 ) SIP_THROW( QgsSettingsException ) SIP_TRANSFER;
639 % MethodCode
640 sipCpp = new sipQgsSettingsEntryDouble( QgsSettingsEntryDouble( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), a2, *a3, *a4, a5, a6, a7 ) );
641 % End
642// clang-format on
643#endif
644
645
646 Qgis::SettingsType settingsType() const override;
647
651 double minValue() const;
652
656 double maxValue() const;
657
663 void setDisplayHintDecimals( int displayHintDecimals );
664
668 int displayHintDecimals() const;
669
670 double convertFromVariant( const QVariant &value ) const override SIP_FORCE;
671
672 private:
673 bool checkValuePrivate( const double &value ) const override SIP_FORCE;
674 double mMinValue;
675 double mMaxValue;
676
677 int mDisplayHintDecimals;
678};
679
680
688class CORE_EXPORT QgsSettingsEntryColor : public QgsSettingsEntryBaseTemplate<QColor>
689{
690 public:
702 const QString &name,
704 const QColor &defaultValue = QColor(),
705 const QString &description = QString(),
707 bool allowAlpha = true
709 mAllowAlpha( allowAlpha )
710 {}
711
723 const QString &key, const QString &section, const QColor &defaultValue = QColor(), const QString &description = QString(), Qgis::SettingsOptions options = Qgis::SettingsOptions(), bool allowAlpha = true
725 mAllowAlpha( allowAlpha )
726 {}
727
728#ifdef SIP_RUN
729 // clang-format off
730
741 QgsSettingsEntryColor( const QString &key,
742 const QString &pluginName,
743 const QColor &defaultValue = QColor(),
744 const QString &description = QString(),
746 bool allowAlpha = true ) SIP_THROW( QgsSettingsException ) SIP_TRANSFER;
747 % MethodCode
748 sipCpp = new sipQgsSettingsEntryColor( QgsSettingsEntryColor( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), *a2, *a3, *a4, a5 ) );
749 % End
750// clang-format on
751#endif
752
753 Qgis::SettingsType settingsType() const override;
754
759 bool allowAlpha() const { return mAllowAlpha; }
760
766 bool copyValueFromKeys( const QString &redKey, const QString &greenKey, const QString &blueKey, const QString &alphaKey = QString(), bool removeSettingAtKey = false ) const SIP_SKIP;
767
772 void copyValueToKeys( const QString &redKey, const QString &greenKey, const QString &blueKey, const QString &alphaKey = QString() ) const SIP_SKIP;
773
774 QColor convertFromVariant( const QVariant &value ) const override SIP_FORCE;
775
776 private:
777 bool checkValuePrivate( const QColor &value ) const override SIP_FORCE;
778 bool mAllowAlpha = true;
779};
780
788class CORE_EXPORT QgsSettingsEntryVariantMap : public QgsSettingsEntryBaseTemplate<QVariantMap>
789{
790 public:
804
818
819#ifdef SIP_RUN
820 // clang-format off
821
832 QgsSettingsEntryVariantMap( const QString &key,
833 const QString &pluginName,
834 const QVariantMap &defaultValue = QVariantMap(),
835 const QString &description = QString(),
837 % MethodCode
838 sipCpp = new sipQgsSettingsEntryVariantMap( QgsSettingsEntryVariantMap( *a0, QgsSettingsTree::createPluginTreeNode( *a1 ), *a2, *a3, *a4 ) );
839 % End
840// clang-format on
841#endif
842
843 Qgis::SettingsType settingsType() const override;
844
845 QVariantMap convertFromVariant( const QVariant &value ) const override SIP_FORCE;
846};
847
848
849#endif // QGSSETTINGSENTRYIMPL_H
SettingsType
Types of settings entries.
Definition qgis.h:661
QFlags< SettingsOption > SettingsOptions
Definition qgis.h:755
QgsSettingsEntryBaseTemplate(const QString &name, QgsSettingsTreeNode *parent, const QVariant &defaultValue, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Qgis::SettingsType settingsType() const override=0
Returns the settings entry type.
virtual T convertFromVariant(const QVariant &value) const =0
Converts the variant value to the value type of the setting.
QVariant value(const QString &dynamicKeyPart=QString()) const
virtual bool checkValuePrivate(const T &value) const
Check if the value is valid.
Qgis::SettingsOptions options() const
Returns the settings options.
QString description() const
Returns the settings entry description.
QgsSettingsTreeNode * parent() const
Returns the parent tree element.
Q_DECL_DEPRECATED int section() const
Returns settings section.
QString name() const
Returns the name of the settings.
QString key(const QString &dynamicKeyPart=QString()) const
Returns settings entry key.
A boolean settings entry.
QgsSettingsEntryBool(const QString &name, QgsSettingsTreeNode *parent, bool defaultValue=false, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryBool.
QgsSettingsEntryBool(const QString &key, const QString &section, bool defaultValue=false, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryBool.
A color settings entry.
QgsSettingsEntryColor(const QString &key, const QString &section, const QColor &defaultValue=QColor(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), bool allowAlpha=true)
Constructor for QgsSettingsEntryColor.
bool allowAlpha() const
Returns true if transparency is allowed for the color.
QgsSettingsEntryColor(const QString &name, QgsSettingsTreeNode *parent, const QColor &defaultValue=QColor(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), bool allowAlpha=true)
Constructor for QgsSettingsEntryColor.
A double settings entry.
QgsSettingsEntryDouble(const QString &name, QgsSettingsTreeNode *parent, double defaultValue=0.0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), double minValue=std::numeric_limits< double >::lowest(), double maxValue=std::numeric_limits< double >::max(), int displayDecimals=1)
Constructor for QgsSettingsEntryDouble.
QgsSettingsEntryDouble(const QString &key, const QString &section, double defaultValue=0.0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), double minValue=std::numeric_limits< double >::lowest(), double maxValue=std::numeric_limits< double >::max(), int displayDecimals=1)
Constructor for QgsSettingsEntryDouble.
double minValue() const
Returns the minimum value.
double maxValue() const
Returns the maximum value.
qlonglong maxValue() const
Returns the maximum value.
QgsSettingsEntryInteger64(const QString &name, QgsSettingsTreeNode *parent, qlonglong defaultValue=0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), qlonglong minValue=std::numeric_limits< qlonglong >::min(), qlonglong maxValue=std::numeric_limits< qlonglong >::max())
Constructor for QgsSettingsEntryInteger64.
QgsSettingsEntryInteger64(const QString &key, const QString &section, qlonglong defaultValue=0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), qlonglong minValue=std::numeric_limits< qlonglong >::min(), qlonglong maxValue=std::numeric_limits< qlonglong >::max())
Constructor for QgsSettingsEntryInteger64.
qlonglong minValue() const
Returns the minimum value.
An integer settings entry.
int minValue() const
Returns the minimum value.
QgsSettingsEntryInteger(const QString &name, QgsSettingsTreeNode *parent, int defaultValue=0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), int minValue=std::numeric_limits< int >::min(), int maxValue=std::numeric_limits< int >::max())
Constructor for QgsSettingsEntryInteger.
QgsSettingsEntryInteger(const QString &key, const QString &section, int defaultValue=0, const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), int minValue=std::numeric_limits< int >::min(), int maxValue=std::numeric_limits< int >::max())
Constructor for QgsSettingsEntryInteger.
int maxValue() const
Returns the maximum value.
A string list settings entry.
QgsSettingsEntryStringList(const QString &name, QgsSettingsTreeNode *parent, const QStringList &defaultValue=QStringList(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryStringList.
QgsSettingsEntryStringList(const QString &key, const QString &section, const QStringList &defaultValue=QStringList(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryStringList.
A string settings entry.
QgsSettingsEntryString(const QString &name, QgsSettingsTreeNode *parent, const QString &defaultValue=QString(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), int minLength=0, int maxLength=-1)
Constructor for QgsSettingsEntryString.
int maxLength() const
Returns the string maximum length.
int minLength() const
Returns the string minimum length.
QgsSettingsEntryString(const QString &key, const QString &section, const QString &defaultValue=QString(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions(), int minLength=0, int maxLength=-1)
Constructor for QgsSettingsEntryString.
A string list settings entry.
QgsSettingsEntryVariantMap(const QString &key, const QString &section, const QVariantMap &defaultValue=QVariantMap(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryVariantMap.
QgsSettingsEntryVariantMap(const QString &name, QgsSettingsTreeNode *parent, const QVariantMap &defaultValue=QVariantMap(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryVariantMap.
A variant settings entry.
QgsSettingsEntryVariant(const QString &name, QgsSettingsTreeNode *parent, const QVariant &defaultValue=QVariant(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryVariant.
QVariant convertFromVariant(const QVariant &value) const override
Converts the variant value to the value type of the setting.
QgsSettingsEntryVariant(const QString &key, const QString &section, const QVariant &defaultValue=QVariant(), const QString &description=QString(), Qgis::SettingsOptions options=Qgis::SettingsOptions())
Constructor for QgsSettingsEntryVariant.
Custom exception class for settings related exceptions.
A tree node for the settings tree to help organizing and introspecting the tree.
Holds the tree structure for the settings in QGIS core.
#define SIP_FORCE
Definition qgis_sip.h:138
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_MAKE_PRIVATE
Definition qgis_sip.h:143
#define SIP_TRANSFER
Definition qgis_sip.h:35
#define SIP_THROW(name,...)
Definition qgis_sip.h:210