From d111ab86bd762fd9e4655be8ca683ed1758394f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BD=90=E7=90=A6?= Date: Fri, 10 Feb 2023 00:12:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9Mac=E5=92=8CLinux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- evue/evueapplication.py | 12 ++++++++++-- evue/imagebrowser.py | 13 +++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/evue/evueapplication.py b/evue/evueapplication.py index 7a6e5f0..c9c99f7 100644 --- a/evue/evueapplication.py +++ b/evue/evueapplication.py @@ -13,6 +13,7 @@ from loguru import logger from .router import Router from pyee import EventEmitter +import platform os.environ["FLET_WS_MAX_MESSAGE_SIZE"] = "8000000" def main(page: Page): @@ -171,12 +172,19 @@ def startApp(path: str, closeCallback=None, threaded=False): kwargs['host'] = host globalThis.server_ip = host if host not in [None, "", "*"] else "127.0.0.1" + system_type_local = platform.system() if 'port' in kwargs and kwargs['port']: port = kwargs['port'] - globalThis.port = port + if system_type_local == "Linux": + globalThis.port = port - 1 + else: + globalThis.port = port else: port = get_free_tcp_port() - globalThis.port = port + if system_type_local == "Linux": + globalThis.port = port + 1 + else: + globalThis.port = port kwargs['port'] = port diff --git a/evue/imagebrowser.py b/evue/imagebrowser.py index b9b1db8..baf9a12 100644 --- a/evue/imagebrowser.py +++ b/evue/imagebrowser.py @@ -37,7 +37,12 @@ from flet.padding import Padding from flet.control_event import ControlEvent import shutil -from os import startfile +import platform +system_type = platform.system() +if system_type == "Darwin" or system_type == "Linux": + import subprocess +else: + from os import startfile class debounce: # noqa @@ -241,7 +246,11 @@ def on_explore(self, e): else: d = "%s%s" % (self.assets_dir, self.currentDirName) d = os.path.abspath(d) - startfile(d) + system_type_local = platform.system() + if system_type_local == "Darwin" or system_type_local == "Linux": + subprocess.call(["open", d]) + else: + startfile(d) def updateSideBar(self): self.sidebar.controls.clear()