summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLex Neva <github.com@lexneva.name>2018-06-12 20:18:55 -0400
committerLex Neva <github.com@lexneva.name>2018-06-12 20:18:55 -0400
commit350c292f8d0415fefefa83ce5ce84c2b5c17bd75 (patch)
tree89526b299ab2e55bb69225d26cea781f90bc9bd1 /lib
parentd1042eb9dc0883c5949e046a713dfaa22a56951b (diff)
show 'no embroiderable paths' error in Params too
Diffstat (limited to 'lib')
-rw-r--r--lib/extensions/base.py2
-rw-r--r--lib/extensions/params.py29
2 files changed, 21 insertions, 10 deletions
diff --git a/lib/extensions/base.py b/lib/extensions/base.py
index 8edfe797..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 = []
diff --git a/lib/extensions/params.py b/lib/extensions/params.py
index 2e7d3f90..9d8de41b 100644
--- a/lib/extensions/params.py
+++ b/lib/extensions/params.py
@@ -639,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
@@ -696,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()
@@ -752,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()