summaryrefslogtreecommitdiffstats
path: root/src/extension/prefdialog/parameter-optiongroup.cpp
diff options
context:
space:
mode:
authorPatrick Storz <eduard.braun2@gmx.de>2019-09-07 20:24:44 +0000
committerPatrick Storz <eduard.braun2@gmx.de>2019-09-07 20:24:44 +0000
commit80b40def43613f64e765f1e282fa939bd94f92af (patch)
tree17852c4684cc5e4f78852950ce838989212a639a /src/extension/prefdialog/parameter-optiongroup.cpp
parentWrite out 'x' and 'y' attribute values to repr when some text property value ... (diff)
downloadinkscape-80b40def43613f64e765f1e282fa939bd94f92af.tar.gz
inkscape-80b40def43613f64e765f1e282fa939bd94f92af.zip
Extensions: Handle optiongroup options without value
We use the user visible GUI text as value in this case, which may or may not be translated. For backwards-compatibility with enum items use the untranslated value instead, if one of the deprecated tag-names is found. Fixes https://gitlab.com/inkscape/inkscape/issues/399
Diffstat (limited to 'src/extension/prefdialog/parameter-optiongroup.cpp')
-rw-r--r--src/extension/prefdialog/parameter-optiongroup.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/extension/prefdialog/parameter-optiongroup.cpp b/src/extension/prefdialog/parameter-optiongroup.cpp
index e3f655dde..232c35315 100644
--- a/src/extension/prefdialog/parameter-optiongroup.cpp
+++ b/src/extension/prefdialog/parameter-optiongroup.cpp
@@ -302,8 +302,17 @@ ParamOptionGroup::ParamOptionGroupOption::ParamOptionGroupOption(Inkscape::XML::
if (value) {
_value = value;
} else {
- g_warning("Missing value for option '%s' of parameter '%s' in extension '%s'.",
- _text.c_str(), parent->_name, _extension->get_id());
+ if (text) {
+ const char *name = xml->name();
+ if (!strcmp(name, INKSCAPE_EXTENSION_NS "item") || !strcmp(name, INKSCAPE_EXTENSION_NS "_item")) {
+ _value = text; // use untranslated UI text as value (for backwards-compatibility)
+ } else {
+ _value = _text; // use translated UI text as value
+ }
+ } else {
+ g_warning("Missing value for option '%s' of parameter '%s' in extension '%s'.",
+ _text.c_str(), parent->_name, _extension->get_id());
+ }
}
}