mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-18 00:06:00 -04:00
pyqgis implementation for Qgis.Settings.Options.SaveEnumFlagAsInt
This commit is contained in:
parent
4045e51240
commit
3926e97cda
@ -18,7 +18,7 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from .metaenum import metaEnumFromValue
|
from .metaenum import metaEnumFromValue
|
||||||
from qgis.core import QgsSettings, QgsSettingsEntryBase, QgsLogger
|
from qgis.core import QgsSettings, QgsSettingsEntryBase, QgsLogger, Qgis
|
||||||
import qgis # required to get base class of enums
|
import qgis # required to get base class of enums
|
||||||
|
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase):
|
|||||||
since QGIS 3.20
|
since QGIS 3.20
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, key, pluginName, defaultValue, description=str()):
|
def __init__(self, key, pluginName, defaultValue, description=str(), options=Qgis.SettingsOptions()):
|
||||||
"""
|
"""
|
||||||
Constructor for PyQgsSettingsEntryEnumFlag.
|
Constructor for PyQgsSettingsEntryEnumFlag.
|
||||||
:param key: argument specifies the final part of the settings key.
|
:param key: argument specifies the final part of the settings key.
|
||||||
@ -38,6 +38,7 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase):
|
|||||||
:param description: argument specifies a description for the settings entry.
|
:param description: argument specifies a description for the settings entry.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
self.options = options
|
||||||
defaultValueStr = str()
|
defaultValueStr = str()
|
||||||
self.__metaEnum = metaEnumFromValue(defaultValue)
|
self.__metaEnum = metaEnumFromValue(defaultValue)
|
||||||
if self.__metaEnum is None or not self.__metaEnum.isValid():
|
if self.__metaEnum is None or not self.__metaEnum.isValid():
|
||||||
@ -105,20 +106,23 @@ class PyQgsSettingsEntryEnumFlag(QgsSettingsEntryBase):
|
|||||||
QgsLogger.debug("Invalid metaenum. Enum/Flag probably misses Q_ENUM/Q_FLAG declaration. Settings key: '{0}'".format(self.key()))
|
QgsLogger.debug("Invalid metaenum. Enum/Flag probably misses Q_ENUM/Q_FLAG declaration. Settings key: '{0}'".format(self.key()))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if self.__metaEnum.isFlag():
|
if self.options & Qgis.SettingsOption.SaveEnumFlagAsInt:
|
||||||
enumFlagKey = self.__metaEnum.valueToKeys(value)
|
enum_flag_key = int(value)
|
||||||
else:
|
else:
|
||||||
enumFlagKey = self.__metaEnum.valueToKey(value)
|
if self.__metaEnum.isFlag():
|
||||||
if not enumFlagKey:
|
enum_flag_key = self.__metaEnum.valueToKeys(value)
|
||||||
QgsLogger.debug("Invalid enum/flag value '{0}'.".format(value))
|
else:
|
||||||
return False
|
enum_flag_key = self.__metaEnum.valueToKey(value)
|
||||||
|
if not enum_flag_key:
|
||||||
|
QgsLogger.debug("Invalid enum/flag value '{0}'.".format(value))
|
||||||
|
return False
|
||||||
|
|
||||||
if type(dynamicKeyPart) == str:
|
if type(dynamicKeyPart) == str:
|
||||||
dynamicKeyPart = [dynamicKeyPart]
|
dynamicKeyPart = [dynamicKeyPart]
|
||||||
elif dynamicKeyPart is None:
|
elif dynamicKeyPart is None:
|
||||||
dynamicKeyPart = []
|
dynamicKeyPart = []
|
||||||
|
|
||||||
return super().setVariantValuePrivate(enumFlagKey, dynamicKeyPart)
|
return super().setVariantValuePrivate(enum_flag_key, dynamicKeyPart)
|
||||||
|
|
||||||
def settingsType(self):
|
def settingsType(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user