summaryrefslogtreecommitdiff
path: root/lib/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'lib/extensions')
-rw-r--r--lib/extensions/base.py4
-rw-r--r--lib/extensions/params.py36
2 files changed, 29 insertions, 11 deletions
diff --git a/lib/extensions/base.py b/lib/extensions/base.py
index 52321cfc..4589132f 100644
--- a/lib/extensions/base.py
+++ b/lib/extensions/base.py
@@ -111,7 +111,7 @@ class InkstitchExtension(inkex.Effect):
inkex.errormsg(_("No embroiderable paths selected."))
else:
inkex.errormsg(_("No embroiderable paths found in document."))
- inkex.errormsg(_("Tip: use Path -> Object to Path to convert non-paths before embroidering."))
+ inkex.errormsg(_("Tip: use Path -> Object to Path to convert non-paths."))
def descendants(self, node):
nodes = []
@@ -158,7 +158,7 @@ class InkstitchExtension(inkex.Effect):
else:
classes = []
- if element.get_style("fill"):
+ if element.get_style("fill", "black"):
if element.get_boolean_param("auto_fill", True):
classes.append(AutoFill)
else:
diff --git a/lib/extensions/params.py b/lib/extensions/params.py
index 03a6f3cc..9d8de41b 100644
--- a/lib/extensions/params.py
+++ b/lib/extensions/params.py
@@ -354,6 +354,9 @@ class SettingsFrame(wx.Frame):
self.simulate_thread = None
self.simulate_refresh_needed = Event()
+ # used when closing to avoid having the window reopen at the last second
+ self.disable_simulate_window = False
+
wx.CallLater(1000, self.update_simulator)
self.presets_box = wx.StaticBox(self, wx.ID_ANY, label=_("Presets"))
@@ -392,6 +395,9 @@ class SettingsFrame(wx.Frame):
self.simulate_window.stop()
self.simulate_window.clear()
+ if self.disable_simulate_window:
+ return
+
if not self.simulate_thread or not self.simulate_thread.is_alive():
self.simulate_thread = Thread(target=self.simulate_worker)
self.simulate_thread.daemon = True
@@ -586,6 +592,7 @@ class SettingsFrame(wx.Frame):
self.close()
def use_last(self, event):
+ self.disable_simulate_window = True
self._load_preset("__LAST__")
self.apply(event)
@@ -632,6 +639,9 @@ class SettingsFrame(wx.Frame):
self.Layout()
# end wxGlade
+class NoValidObjects(Exception):
+ pass
+
class Params(InkstitchExtension):
def __init__(self, *args, **kwargs):
self.cancelled = False
@@ -689,6 +699,11 @@ class Params(InkstitchExtension):
def create_tabs(self, parent):
tabs = []
+ nodes_by_class = self.get_nodes_by_class()
+
+ if not nodes_by_class:
+ raise NoValidObjects()
+
for cls, nodes in self.get_nodes_by_class():
params = cls.get_params()
@@ -745,12 +760,15 @@ class Params(InkstitchExtension):
self.cancelled = True
def effect(self):
- app = wx.App()
- frame = SettingsFrame(tabs_factory=self.create_tabs, on_cancel=self.cancel)
- frame.Show()
- app.MainLoop()
-
- if self.cancelled:
- # This prevents the superclass from outputting the SVG, because we
- # may have modified the DOM.
- sys.exit(0)
+ try:
+ app = wx.App()
+ frame = SettingsFrame(tabs_factory=self.create_tabs, on_cancel=self.cancel)
+ frame.Show()
+ app.MainLoop()
+
+ if self.cancelled:
+ # This prevents the superclass from outputting the SVG, because we
+ # may have modified the DOM.
+ sys.exit(0)
+ except NoValidObjects:
+ self.no_elements_error()