summaryrefslogtreecommitdiffstats
path: root/src/extension/extension.cpp
diff options
context:
space:
mode:
authorPatrick Storz <eduard.braun2@gmx.de>2019-08-06 20:30:54 +0000
committerPatrick Storz <eduard.braun2@gmx.de>2019-08-31 14:50:39 +0000
commit2bdffba8f4da0fe64d4a5b85096d057d389abef8 (patch)
tree24cad4825a1a74efca7d7607724b89fab87e2f4d /src/extension/extension.cpp
parentAccept parameter type "bool" (diff)
downloadinkscape-2bdffba8f4da0fe64d4a5b85096d057d389abef8.tar.gz
inkscape-2bdffba8f4da0fe64d4a5b85096d057d389abef8.zip
Make parameter string generation a job of Inkscape::Extension
For this take a first step towards properly tracking children of each parameter and provide functions to look up all widgets.
Diffstat (limited to 'src/extension/extension.cpp')
-rw-r--r--src/extension/extension.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp
index c713a83ee..1da909594 100644
--- a/src/extension/extension.cpp
+++ b/src/extension/extension.cpp
@@ -766,10 +766,27 @@ Extension::autogui (SPDocument *doc, Inkscape::XML::Node *node, sigc::signal<voi
void
Extension::paramListString (std::list <std::string> &retlist)
{
+ // first collect all widgets in the current extension
+ std::vector<const InxWidget *> widget_list;
for (auto widget : _widgets) {
- InxParameter *parameter = dynamic_cast<InxParameter *>(widget); // filter InxParameters from InxWidgets
+ widget->get_widgets(widget_list);
+ }
+
+ // then build a list of parameter strings from parameter names and values, as '--name=value'
+ for (auto widget : widget_list) {
+ const InxParameter *parameter = dynamic_cast<const InxParameter *>(widget); // filter InxParameters from InxWidgets
if (parameter) {
- parameter->build_param_string_list(retlist);
+ const char *name = parameter->name();
+ std::string value = parameter->value_to_string();
+
+ if (name && !value.empty()) { // TODO: Shouldn't empty string values be allowed?
+ std::string parameter_string;
+ parameter_string += "--";
+ parameter_string += name;
+ parameter_string += "=";
+ parameter_string += value;
+ retlist.push_back(parameter_string);
+ }
}
}