diff options
| author | Lex Neva <github.com@lexneva.name> | 2018-08-17 16:19:46 -0400 |
|---|---|---|
| committer | Lex Neva <github.com@lexneva.name> | 2018-08-17 16:19:46 -0400 |
| commit | 0e4c3a3f1b76c1b655ec2788017335e87eff29da (patch) | |
| tree | 2075fc0292038b4a2e92fc018b503805cf30fdec /lib/extensions | |
| parent | 19bb8a5a6dbe4244a590147187949d0555eb9fbc (diff) | |
| parent | ece81d0c91c8b96f7da2c0339f6807a47d57112e (diff) | |
Merge remote-tracking branch 'origin/master' into lexelby-no-embroider-command
Diffstat (limited to 'lib/extensions')
| -rw-r--r-- | lib/extensions/output.py | 7 | ||||
| -rw-r--r-- | lib/extensions/params.py | 20 | ||||
| -rw-r--r-- | lib/extensions/simulate.py | 9 |
3 files changed, 29 insertions, 7 deletions
diff --git a/lib/extensions/output.py b/lib/extensions/output.py index 1dc8d19d..f3bb0a80 100644 --- a/lib/extensions/output.py +++ b/lib/extensions/output.py @@ -36,10 +36,15 @@ class Output(InkstitchExtension): write_embroidery_file(temp_file.name, stitch_plan, self.document.getroot()) + if sys.platform == "win32": + import msvcrt + msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) + # inkscape will read the file contents from stdout and copy # to the destination file that the user chose - with open(temp_file.name) as output_file: + with open(temp_file.name, "rb") as output_file: sys.stdout.write(output_file.read()) + sys.stdout.flush() # clean up the temp file os.remove(temp_file.name) diff --git a/lib/extensions/params.py b/lib/extensions/params.py index 1b8f2589..c464e044 100644 --- a/lib/extensions/params.py +++ b/lib/extensions/params.py @@ -424,18 +424,22 @@ class SettingsFrame(wx.Frame): self.simulate_window.stop() self.simulate_window.load(stitch_plan=stitch_plan) else: - my_rect = self.GetScreenRect() - simulator_pos = my_rect.GetTopRight() + params_rect = self.GetScreenRect() + simulator_pos = params_rect.GetTopRight() simulator_pos.x += 5 - screen_rect = wx.Display(0).ClientArea - max_width = screen_rect.GetWidth() - my_rect.GetWidth() + current_screen = wx.Display.GetFromPoint(wx.GetMousePosition()) + display = wx.Display(current_screen) + screen_rect = display.GetClientArea() + + max_width = screen_rect.GetWidth() - params_rect.GetWidth() max_height = screen_rect.GetHeight() try: self.simulate_window = EmbroiderySimulator(None, -1, _("Preview"), simulator_pos, size=(300, 300), + x_position=simulator_pos.x, stitch_plan=stitch_plan, on_close=self.simulate_window_closed, target_duration=5, @@ -764,6 +768,14 @@ class Params(InkstitchExtension): try: app = wx.App() frame = SettingsFrame(tabs_factory=self.create_tabs, on_cancel=self.cancel) + + # position left, center + current_screen = wx.Display.GetFromPoint(wx.GetMousePosition()) + display = wx.Display(current_screen) + display_size = display.GetClientArea() + frame_size = frame.GetSize() + frame.SetPosition((display_size[0], display_size[3] / 2 - frame_size[1] / 2)) + frame.Show() app.MainLoop() diff --git a/lib/extensions/simulate.py b/lib/extensions/simulate.py index 0c372d4d..38f86156 100644 --- a/lib/extensions/simulate.py +++ b/lib/extensions/simulate.py @@ -17,11 +17,16 @@ class Simulate(InkstitchExtension): def effect(self): if not self.get_elements(): return - patches = self.elements_to_patches(self.elements) stitch_plan = patches_to_stitch_plan(patches) app = wx.App() - frame = EmbroiderySimulator(None, -1, _("Embroidery Simulation"), wx.DefaultPosition, size=(1000, 1000), stitch_plan=stitch_plan) + current_screen = wx.Display.GetFromPoint(wx.GetMousePosition()) + display = wx.Display(current_screen) + screen_rect = display.GetClientArea() + + simulator_pos = (screen_rect[0], screen_rect[1]) + + frame = EmbroiderySimulator(None, -1, _("Embroidery Simulation"), pos=simulator_pos, size=(1000, 1000), stitch_plan=stitch_plan) app.SetTopWindow(frame) frame.Show() wx.CallAfter(frame.go) |
