summaryrefslogtreecommitdiff
path: root/embroider_params.py
diff options
context:
space:
mode:
authorLex Neva <lexelby@users.noreply.github.com>2018-01-23 20:13:37 -0500
committerGitHub <noreply@github.com>2018-01-23 20:13:37 -0500
commitacaebaa956006a0fa064c2361b47f902a8a50b77 (patch)
treee4278dd088d82bbc9830b9281accc9d813bd8dd8 /embroider_params.py
parent462bf0bdbeed8b4a631d2ce6d68df7842a86e5c6 (diff)
add params for "TRIM after" and "STOP after" (#29)
* adds new options to Params: "TRIM after" and "STOP after" * adds tooltip support to Params * inkstitch now includes libembroidery and can directly output any supported file type * this avoids the need for `libembroidery-convert` and compiling embroidermodder! * TRIM support for DST format (inserts 3 JUMPs) * STOP command supported as an extra color change that the operator can assign to code C00 * TRIMs cause the following jump stitch not to be displayed in the Embroidery layer
Diffstat (limited to 'embroider_params.py')
-rw-r--r--embroider_params.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/embroider_params.py b/embroider_params.py
index 0c5c52fc..78b5001c 100644
--- a/embroider_params.py
+++ b/embroider_params.py
@@ -135,7 +135,10 @@ class ParamsTab(ScrolledPanel):
return self.parent_tab is not None
def enabled(self):
- return self.toggle_checkbox.IsChecked()
+ if self.toggle_checkbox:
+ return self.toggle_checkbox.IsChecked()
+ else:
+ return True
def update_toggle_state(self, event=None, notify_pair=True):
enable = self.enabled()
@@ -160,7 +163,6 @@ class ParamsTab(ScrolledPanel):
if self.enabled() != new_value:
self.set_toggle_state(not value)
- self.toggle_checkbox.changed = True
self.update_toggle_state(notify_pair=False)
def dependent_enable(self, enable):
@@ -169,11 +171,12 @@ class ParamsTab(ScrolledPanel):
else:
self.set_toggle_state(False)
self.toggle_checkbox.Disable()
- self.toggle_checkbox.changed = True
self.update_toggle_state()
def set_toggle_state(self, value):
- self.toggle_checkbox.SetValue(value)
+ if self.toggle_checkbox:
+ self.toggle_checkbox.SetValue(value)
+ self.changed_inputs.add(self.toggle_checkbox)
def get_values(self):
values = {}
@@ -189,7 +192,7 @@ class ParamsTab(ScrolledPanel):
return values
for name, input in self.param_inputs.iteritems():
- if input in self.changed_inputs:
+ if input in self.changed_inputs and input != self.toggle_checkbox:
values[name] = input.GetValue()
return values
@@ -197,7 +200,7 @@ class ParamsTab(ScrolledPanel):
def apply(self):
values = self.get_values()
for node in self.nodes:
- #print >> sys.stderr, node.id, values
+ # print >> sys.stderr, "apply: ", self.name, node.id, values
for name, value in values.iteritems():
node.set_param(name, value)
@@ -282,7 +285,10 @@ class ParamsTab(ScrolledPanel):
box.Add(self.toggle_checkbox, proportion=0, flag=wx.BOTTOM, border=10)
for param in self.params:
- self.settings_grid.Add(wx.StaticText(self, label=param.description), proportion=1, flag=wx.EXPAND|wx.RIGHT, border=40)
+ description = wx.StaticText(self, label=param.description)
+ description.SetToolTip(param.tooltip)
+
+ self.settings_grid.Add(description, proportion=1, flag=wx.EXPAND|wx.RIGHT, border=40)
if param.type == 'boolean':
@@ -456,7 +462,7 @@ class SettingsFrame(wx.Frame):
# way to drop the cache in the @cache decorators used
# for many params in embroider.py.
- patches.extend(copy(node).to_patches(None))
+ patches.extend(copy(node).embroider(None))
except SystemExit:
raise
except:
@@ -670,10 +676,13 @@ class EmbroiderParams(inkex.Effect):
return values
def group_params(self, params):
+ def by_group_and_sort_index(param):
+ return param.group, param.sort_index
+
def by_group(param):
return param.group
- return groupby(sorted(params, key=by_group), by_group)
+ return groupby(sorted(params, key=by_group_and_sort_index), by_group)
def create_tabs(self, parent):
tabs = []