diff options
Diffstat (limited to 'lib/gui')
| -rw-r--r-- | lib/gui/__init__.py | 1 | ||||
| -rw-r--r-- | lib/gui/electron.py | 29 |
2 files changed, 30 insertions, 0 deletions
diff --git a/lib/gui/__init__.py b/lib/gui/__init__.py index 060c3d93..5e249a55 100644 --- a/lib/gui/__init__.py +++ b/lib/gui/__init__.py @@ -1,3 +1,4 @@ from dialogs import info_dialog, confirm_dialog +from electron import open_url from presets import PresetsPanel from simulator import EmbroiderySimulator, SimulatorPreview, show_simulator diff --git a/lib/gui/electron.py b/lib/gui/electron.py new file mode 100644 index 00000000..8bc0bcef --- /dev/null +++ b/lib/gui/electron.py @@ -0,0 +1,29 @@ +import os +import subprocess +import sys + +from ..utils import get_bundled_dir + + +app_process = None + + +def open_url(url): + global app + + # Any output on stdout will crash inkscape. + null = open(os.devnull, 'w') + + if getattr(sys, 'frozen', None) is not None: + electron_path = os.path.join(get_bundled_dir("electron"), "inkstitch-gui") + + if sys.platform == "darwin": + electron_path += ".app/Contents/MacOS/inkstitch-gui" + subprocess.Popen(["open", "-a", electron_path, "--args", url], stdout=null) + else: + app_process = subprocess.Popen([electron_path, url]) + else: + # if we're not running in a pyinstaller bundle, run electron directly + app_process = subprocess.Popen(["yarn", "dev", url], cwd=get_bundled_dir("electron"), stdout=null) + + return app_process |
