diff options
Diffstat (limited to 'lib/extensions')
| -rw-r--r-- | lib/extensions/lettering.py | 3 | ||||
| -rw-r--r-- | lib/extensions/params.py | 8 | ||||
| -rw-r--r-- | lib/extensions/simulator.py | 32 | ||||
| -rw-r--r-- | lib/extensions/tartan.py | 3 |
4 files changed, 36 insertions, 10 deletions
diff --git a/lib/extensions/lettering.py b/lib/extensions/lettering.py index 43ff424d..76821902 100644 --- a/lib/extensions/lettering.py +++ b/lib/extensions/lettering.py @@ -14,6 +14,7 @@ from ..gui.simulator import SplitSimulatorWindow from ..i18n import _ from ..svg import get_correction_transform from ..svg.tags import INKSCAPE_LABEL, INKSTITCH_LETTERING, SVG_GROUP_TAG +from ..utils.svg_data import get_pagecolor from .commands import CommandsExtension @@ -59,6 +60,7 @@ class Lettering(CommandsExtension): def effect(self): metadata = self.get_inkstitch_metadata() + background_color = get_pagecolor(self.svg.namedview) app = wx.App() frame = SplitSimulatorWindow( title=_("Ink/Stitch Lettering"), @@ -66,6 +68,7 @@ class Lettering(CommandsExtension): group=self.get_or_create_group(), on_cancel=self.cancel, metadata=metadata, + background_color=background_color, target_duration=1 ) diff --git a/lib/extensions/params.py b/lib/extensions/params.py index ea19672f..0a593fdc 100644 --- a/lib/extensions/params.py +++ b/lib/extensions/params.py @@ -15,7 +15,6 @@ from secrets import randbelow import wx from wx.lib.scrolledpanel import ScrolledPanel -from .base import InkstitchExtension from ..commands import is_command, is_command_symbol from ..elements import (Clone, EmbroideryElement, FillStitch, Polyline, SatinColumn, Stroke) @@ -28,7 +27,9 @@ from ..stitch_plan import stitch_groups_to_stitch_plan from ..svg.tags import SVG_POLYLINE_TAG from ..utils import get_resource_dir from ..utils.param import ParamOption +from ..utils.svg_data import get_pagecolor from ..utils.threading import ExitThread, check_stop_flag +from .base import InkstitchExtension def grouper(iterable_obj, count, fillvalue=None): @@ -473,10 +474,11 @@ class ParamsTab(ScrolledPanel): class SettingsPanel(wx.Panel): - def __init__(self, parent, tabs_factory=None, on_cancel=None, metadata=None, simulator=None): + def __init__(self, parent, tabs_factory=None, on_cancel=None, metadata=None, background_color='white', simulator=None): self.tabs_factory = tabs_factory self.cancel_hook = on_cancel self.metadata = metadata + self.background_color = background_color self.simulator = simulator self.parent = parent @@ -782,12 +784,14 @@ class Params(InkstitchExtension): try: app = wx.App() metadata = self.get_inkstitch_metadata() + background_color = get_pagecolor(self.svg.namedview) frame = SplitSimulatorWindow( title=_("Embroidery Params"), panel_class=SettingsPanel, tabs_factory=self.create_tabs, on_cancel=self.cancel, metadata=metadata, + background_color=background_color, target_duration=5 ) diff --git a/lib/extensions/simulator.py b/lib/extensions/simulator.py index 3b532bf2..57978b73 100644 --- a/lib/extensions/simulator.py +++ b/lib/extensions/simulator.py @@ -3,9 +3,11 @@ # Copyright (c) 2010 Authors # Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details. -from ..api import APIServer -from ..gui import open_url +import wx +from ..gui.simulator import SimulatorWindow +from ..stitch_plan import stitch_groups_to_stitch_plan +from ..utils.svg_data import get_pagecolor from .base import InkstitchExtension @@ -16,9 +18,23 @@ class Simulator(InkstitchExtension): def effect(self): if not self.get_elements(): return - api_server = APIServer(self) - port = api_server.start_server() - electron = open_url("/simulator", port) - electron.wait() - api_server.stop() - api_server.join() + + metadata = self.get_inkstitch_metadata() + collapse_len = metadata['collapse_len_mm'] + min_stitch_len = metadata['min_stitch_len_mm'] + stitch_groups = self.elements_to_stitch_groups(self.elements) + stitch_plan = stitch_groups_to_stitch_plan(stitch_groups, collapse_len=collapse_len, min_stitch_len=min_stitch_len) + background_color = get_pagecolor(self.svg.namedview) + + app = wx.App() + current_screen = wx.Display.GetFromPoint(wx.GetMousePosition()) + display = wx.Display(current_screen) + screen_rect = display.GetClientArea() + height = int(screen_rect[3] * 0.8) + simulator = SimulatorWindow(size=(0, height), background_color=background_color) + wx.CallLater(100, simulator.Centre) + app.SetTopWindow(simulator) + simulator.Show() + simulator.load(stitch_plan) + simulator.go() + app.MainLoop() diff --git a/lib/extensions/tartan.py b/lib/extensions/tartan.py index a9b34dfb..7f8c582a 100644 --- a/lib/extensions/tartan.py +++ b/lib/extensions/tartan.py @@ -13,6 +13,7 @@ from ..gui.simulator import SplitSimulatorWindow from ..gui.tartan import TartanMainPanel from ..i18n import _ from ..svg.tags import EMBROIDERABLE_TAGS, INKSTITCH_TARTAN, SVG_GROUP_TAG +from ..utils.svg_data import get_pagecolor from .base import InkstitchExtension @@ -58,6 +59,7 @@ class Tartan(InkstitchExtension): errormsg(_("To create a tartan pattern please select at least one element with a fill color.")) return metadata = self.get_inkstitch_metadata() + background_color = get_pagecolor(self.svg.namedview) app = wx.App() frame = SplitSimulatorWindow( @@ -66,6 +68,7 @@ class Tartan(InkstitchExtension): elements=list(self.elements), on_cancel=self.cancel, metadata=metadata, + background_color=background_color, target_duration=1 ) |
