From 3059fd5fef2d4f46fe54ef694d2a4920344562a6 Mon Sep 17 00:00:00 2001 From: Brent Vollebregt Date: Sat, 30 Nov 2024 14:37:29 +1300 Subject: [PATCH] #187 Use Edge app mode if Chrome is not found --- README-Belarusian.md | 6 +++--- README-Bulgarian.md | 6 +++--- README-Chinese.md | 6 +++--- README-Finnish.md | 6 +++--- README-Hebrew.md | 4 ++-- README-Hindi.md | 4 ++-- README-Korean.md | 6 +++--- README-Persian.md | 6 +++--- README-Turkish.md | 6 +++--- README.md | 4 ++-- auto_py_to_exe/__main__.py | 12 ++++++------ auto_py_to_exe/config.py | 6 +++--- auto_py_to_exe/ui.py | 29 ++++++++++++++++------------- 13 files changed, 52 insertions(+), 49 deletions(-) diff --git a/README-Belarusian.md b/README-Belarusian.md index 846f909b..d730b002 100644 --- a/README-Belarusian.md +++ b/README-Belarusian.md @@ -38,7 +38,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python : 3.6-3.12 -_Каб мець такі ж самы інтэрфейс, які адлюстраваны на відарысе, вам неабходна выкарыстоўваць браўзер Chrome. Калі Сhrome не ўсталяваны або зададзены параметр `--no-chrome`, то будзе выкарыстоўвацца браўзер па змаўчанні._ +_Каб мець такі ж самы інтэрфейс, які адлюстраваны на відарысе, вам неабходна выкарыстоўваць браўзер Chrome. Калі Сhrome не ўсталяваны або зададзены параметр `--default-browser`, то будзе выкарыстоўвацца браўзер па змаўчанні._ ### Усталяванне і выкарыстанне @@ -93,12 +93,12 @@ _Лёгка._ ### Параметры -Выкарыстанне: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +Выкарыстанне: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | Параметр | Тып | Апісанне | | ------------------------------------------------------------ | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | filename | пазіцыйны/неабавязковы | Ён папярэдне запаўняе поле "Месцаванне коду" у карыстальніцкім інтэрфейсе. | -| -nc, --no-chrome | неабавязковы | Адкрывае карыстальніцкі інтэрфейс з браўзерам па змаўчанні (які можа быць Chrome). Ён не будзе спрабаваць знайсці Chrome. | +| -db, --default-browser | неабавязковы | Адкрывае карыстальніцкі інтэрфейс з браўзерам па змаўчанні (які можа быць Chrome). Ён не будзе спрабаваць знайсці Chrome. | | -nu, --no-ui | неабавязковы | Ён не спрабуе адкрыць карыстальніцкі інтэрфейс у браўзеры і наўпрост выводзіць адрас, па якім дадатак можа быць даступным. | | -c [CONFIG], --config [CONFIG] | неабавязковы | Падайце файл канфігурацыі (json), каб папярэдне запоўніць карыстальніцкі інтэрфейс. Гэтыя файлы можна стварыць ва ўкладцы "Налады". | | -o [PATH], --output-dir [PATH] | неабавязковы | Усталюйце тэчку па змаўчанні для вываду. Гэта ўсё адно можа быць зменена ў інтэрфейсе. | diff --git a/README-Bulgarian.md b/README-Bulgarian.md index 1cbb996c..ca9c702f 100644 --- a/README-Bulgarian.md +++ b/README-Bulgarian.md @@ -36,7 +36,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python : 3.6-3.12 -_За да имате интерфейса, показан на снимките, ще ви бъде необходим браузърът Chrome. Ако Chrome не е инсталиран или е предоставена опцията --no-chrome, ще се използва браузърът по подразбиране._ +_За да имате интерфейса, показан на снимките, ще ви бъде необходим браузърът Chrome. Ако Chrome не е инсталиран или е предоставена опцията --default-browser, ще се използва браузърът по подразбиране._ > От версия [PyInstaller 4.0](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0) нататък, Python 2.7 вече не се поддържа. За насоки относно как да използвате този инструмент с Python 2.7, прочетете раздела "[Python 2.7 Support](#python-27-support)" по-долу. @@ -96,12 +96,12 @@ _Лесно._ ### Аргументи -Използване: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +Използване: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | Аргумент | Тип | Описание | | ------------------------------------------------------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | filename | позиционен/незадължителен | Предварително попълва полето "Местоположение на скрипта" в потребителския интерфейс. | -| -nc, --no-chrome | незадължителен | Отваря потребителския интерфейс с браузъра по подразбиране (който може да бъде Chrome). Няма да се опитва да намери Chrome. | +| -db, --default-browser | незадължителен | Отваря потребителския интерфейс с браузъра по подразбиране (който може да бъде Chrome). Няма да се опитва да намери Chrome. | | -nu, --no-ui | незадължителен | Не се опитва да отвори потребителския интерфейс в браузър и просто извежда адреса, на който приложението може да бъде достъпно. | | -c [CONFIG], --config [CONFIG] | незадължителен | Предоставете конфигурационен файл (json), за да предварително попълните потребителския интерфейс. Тези файлове могат да бъдат генерирани в раздела "Настройки". | | -o [PATH], --output-dir [PATH] | незадължителен | Задайте директорията по подразбиране за изход. Това все още може да бъде променено в интерфейса. | diff --git a/README-Chinese.md b/README-Chinese.md index f34ca75d..9365bd21 100644 --- a/README-Chinese.md +++ b/README-Chinese.md @@ -21,7 +21,7 @@ - Python : 3.6-3.12 -_要在图像中显示界面,您需要使用 Chrome。如果未安装 Chrome 或提供了--no-chrome 参数,则将使用默认浏览器。_ +_要在图像中显示界面,您需要使用 Chrome。如果未安装 Chrome 或提供了--default-browser 参数,则将使用默认浏览器。_ > 从 [PyInstaller 4.0](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0) 开始,不再支持 Python 2.7。有关如何在 Python2.7 中使用此工具的步骤,请阅读下面的“[Python 2.7 支持](#python-27-支持)” @@ -79,12 +79,12 @@ _简单!_ ### 参数 -用法 `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +用法 `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | 参数 | 类型 | 描述 | | ------------------------------ | ---------- | ---------------------------------------------------------------------- | | filename | positional | 在用户界面中预先填写“脚本位置”字段。 | -| -nc, --no-chrome | optional | 使用默认浏览器(可能是 Chrome)打开用户界面。 不会尝试寻找 Chrome。 | +| -db, --default-browser | optional | 使用默认浏览器(可能是 Chrome)打开用户界面。 不会尝试寻找 Chrome。 | | -nu, --no-ui | optional | 不要试图在浏览器中打开用户界面,而只是打印出可以访问该应用程序的地址。 | | -c [CONFIG], --config [CONFIG] | optional | 提供配置文件(json)以预填充 UI。 这些可以在设置选项卡中生成。 | | -o [PATH], --output-dir [PATH] | optional | 设置默认输出目录。这仍然可以在 UI 中更改。 | diff --git a/README-Finnish.md b/README-Finnish.md index 233426a5..f9d54bc2 100644 --- a/README-Finnish.md +++ b/README-Finnish.md @@ -32,7 +32,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python : 3.6-3.12 -_Jos haluat nähdä käyttöliittymän, joka näkyy kuvissa, tarvitset Chromen. Jos Chromea ei ole asennettu tai --no-chrome vastaanotetaan, käytetään oletusselainta._ +_Jos haluat nähdä käyttöliittymän, joka näkyy kuvissa, tarvitset Chromen. Jos Chromea ei ole asennettu tai --default-browser vastaanotetaan, käytetään oletusselainta._ > [PyInstaller 4.0:sta lähtien](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0) (englanniksi), Python 2.7 ei ole enää tuettu. Lue "[Python 2.7 Tuki](#python-27-support)" alla ohjeisiin miten käyttää tätä työkalua Python 2.7:n kanssa. @@ -90,12 +90,12 @@ _Helppoa._ ### Argumentit -Käyttö: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [POLKU]] [tiedostonimi]` +Käyttö: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [POLKU]] [tiedostonimi]` | Argument | Type | Description | | ---------------------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------- | | tiedostonimi | sijainnillinen/valinnainen | Esi-täytä "Skriptin sijainti"-kenttä käyttöliittymässä. | -| -nc, --no-chrome | valinnainen | Avaa käyttöliittymän oletusselaimella (mahdollisesti Chrome). Ei yritä etsiä Chromea. | +| -db, --default-browser | valinnainen | Avaa käyttöliittymän oletusselaimella (mahdollisesti Chrome). Ei yritä etsiä Chromea. | | -nu, --no-ui | valinnainen | Älä yritä avata käyttöliittymää ja vain yksinkertaisesti printtaa osoite jossa ohjelmaa voi käyttää. | | -c [CONFIG], --config [CONFIG] | valinnainen | Anna konfiguraatiotiedosto (json) jolla esi-täyttää käyttöliittymä. Näitä voi generoida asetukset välilehdellä. | | -o [POLKU], --output-dir [POLKU] | valinnainen | Asettaa oletus-ulostulokansion. Tätä voi vaihtaa edelleen käyttöliittymässä. | diff --git a/README-Hebrew.md b/README-Hebrew.md index 036ebd40..8439f7dd 100644 --- a/README-Hebrew.md +++ b/README-Hebrew.md @@ -42,7 +42,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python: 3.6-3.12 -_כדי שהממשק יוצג בתמונות, תזדקק לכרום. אם כרום אינו מותקן או שה----no-chrome מועבר, ייעשה שימוש בדפדפן ברירת המחדל._ +_כדי שהממשק יוצג בתמונות, תזדקק לכרום. אם כרום אינו מותקן או שה----default-browser מועבר, ייעשה שימוש בדפדפן ברירת המחדל._ ### התקנה ושימוש @@ -102,7 +102,7 @@ _קללללל._ | פרמטר | סוג | תיאור | | ------------------------------------------------------------ | ------------------------------------- | -------------------------------------------------------------------------------------------------------------- | | filename | אופציונאלי, לא חובה. מיקום חובה ראשון | מלא מראש את השדה "מיקום סקריפט" בממשק המשתמש. | -| -nc, --no-chrome | אופציונאלי, לא חובה | פתח את ממשק המשתמש באמצעות דפדפן ברירת המחדל (שעשוי להיות Chrome). לא ינסה למצוא את כרום. | +| -db, --default-browser | אופציונאלי, לא חובה | פתח את ממשק המשתמש באמצעות דפדפן ברירת המחדל (שעשוי להיות Chrome). לא ינסה למצוא את כרום. | | -nu, --no-ui | אופציונאלי, לא חובה | אל תנסה לפתוח את ממשק המשתמש בדפדפן ופשוט תדפיס את הכתובת שבה ניתן לגשת לאפליקציה. | | -c [CONFIG], --config [CONFIG] | אופציונאלי, לא חובה | ספק קובץ תצורה (JSON) למילוי מראש של ממשק המשתמש. ניתן ליצור אותם בלשונית ההגדרות. | | -o [PATH], --output-dir [PATH] | אופציונאלי, לא חובה | הגדר את ספריית הפלט המוגדרת כברירת מחדל. עדיין ניתן לשנות זאת בממשק המשתמש. | diff --git a/README-Hindi.md b/README-Hindi.md index 59390c0d..da3b5cb9 100644 --- a/README-Hindi.md +++ b/README-Hindi.md @@ -40,7 +40,7 @@ - पाइथन: 3.6-3.12 -_इसे चित्रों में प्रदर्शित करने के लिए, आपको Chrome की आवश्यकता होगी। यदि Chrome स्थापित नहीं है या `--no-chrome` पास किया गया है, तो डिफ़ॉल्ट ब्राउज़र का उपयोग किया जाएगा।_ +_इसे चित्रों में प्रदर्शित करने के लिए, आपको Chrome की आवश्यकता होगी। यदि Chrome स्थापित नहीं है या `--default-browser` पास किया गया है, तो डिफ़ॉल्ट ब्राउज़र का उपयोग किया जाएगा।_ ### स्थापना और उपयोग @@ -100,7 +100,7 @@ _आसान।_ | तर्क | प्रकार | विवरण | | ------------------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | फ़ाइलनाम | स्थानिक/ऐच्छिक | UI में "स्क्रिप्ट स्थान" क्षेत्र को पूर्व-भरित करें। | -| -nc, --no-chrome | ऐच्छिक | डिफ़ॉल्ट ब्राउज़र का उपयोग करके UI खोलें (जो कि Chrome हो सकता है)। Chrome को खोजने का प्रयास नहीं किया जाएगा। | +| -db, --default-browser | ऐच्छिक | डिफ़ॉल्ट ब्राउज़र का उपयोग करके UI खोलें (जो कि Chrome हो सकता है)। Chrome को खोजने का प्रयास नहीं किया जाएगा। | | -nu, --no-ui | ऐच्छिक | ब्राउज़र में UI खोलने का प्रयास न करें और केवल उस पते को मुद्रित करें जहां एप्लिकेशन तक पहुँचा जा सकता है। | | -c [CONFIG], --config [CONFIG] | ऐच्छिक | UI को पूर्व-भरित करने के लिए एक कॉन्फ़िगरेशन फ़ाइल (JSON) प्रदान करें। इन्हें सेटिंग्स टैब में उत्पन्न किया जा सकता है। | | -o [PATH], --output-dir [PATH] | ऐच्छिक | डिफ़ॉल्ट आउटपुट निर्देशिका सेट करें। यह UI में अभी भी बदला जा सकता है। | diff --git a/README-Korean.md b/README-Korean.md index 638c9d86..b9618b6e 100644 --- a/README-Korean.md +++ b/README-Korean.md @@ -36,7 +36,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python : 3.6-3.12 -_이미지와 같이 인터페이스를 표시하려면, Chrome이 필요합니다. Chrome이 설치되어 있지 않거나, --no-chrome 매개변수와 실행된다면, 기본 브라우저가 사용됩니다._ +_이미지와 같이 인터페이스를 표시하려면, Chrome이 필요합니다. Chrome이 설치되어 있지 않거나, --default-browser 매개변수와 실행된다면, 기본 브라우저가 사용됩니다._ > [PyInstaller 4.0](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0)부터 Python 2.7를 지원하지 않습니다. 아래의 "[Python 2.7 지원](#python-27-지원)" 문단을 차례로 읽고 Python 2.7에서 사용법을 알아보세요. @@ -96,12 +96,12 @@ _참 쉽죠?_ ### 매개변수 -사용법: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +사용법: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | 매개변수 | 형식 | 설명 | | -------------------------------------------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------- | | filename | 위치적/선택적 | UI의 "스크립트 위치"를 미리 채웁니다(pre-fill). | -| -nc, --no-chrome | 선택적 | UI를 Chrome 이 아닌 기본 브라우저(Chrome이 기본값일 수 있음)로 엽니다. 앱은 Chrome 설치 여부를 탐색하지 않습니다. | +| -db, --default-browser | 선택적 | UI를 Chrome 이 아닌 기본 브라우저(Chrome이 기본값일 수 있음)로 엽니다. 앱은 Chrome 설치 여부를 탐색하지 않습니다. | | -nu, --no-ui | 선택적 | 추가 브라우저 창을 열지 않고, 앱에 접근할 수 있는 localhost 주소값만 출력됩니다. | | -c [구성], --config [구성] | 선택적 | UI를 미리 채울 수 있는 구성 파일(json)을 제공합니다. 설정 탭에서 생성됩니다. | | -o [경로], --output-dir [경로] | 선택적 | 출력 디렉토리 기본값을 지정합니다. 이 값은 UI에서 직접 바꿀 수도 있습니다. | diff --git a/README-Persian.md b/README-Persian.md index cd704a07..6aeee934 100644 --- a/README-Persian.md +++ b/README-Persian.md @@ -34,7 +34,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python : 3.6-3.12 -_برای نمایش رابط کاربری در تصاویر، به کروم نیاز دارید. اگر کروم نصب نشده باشد یا ارائه شده باشد، از مرورگر پیش فرض استفاده می شود--no-chrome_ +_برای نمایش رابط کاربری در تصاویر، به کروم نیاز دارید. اگر کروم نصب نشده باشد یا ارائه شده باشد، از مرورگر پیش فرض استفاده می شود--default-browser_ > از[pyinstaler 4.0](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0), پایتون 2.7 پشتیبانی طولانی نمی کند, بخوانید [پشتیبانی پایتون 2.7 را](#python-27-support) > در زیر مراحل نحوه استفاده از این ابزار با پایتون 2.7 را مشاهده می کنید @@ -100,12 +100,12 @@ _خیلی راحت :)_ ### مقادیر -استفاده: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +استفاده: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | مقادیر | نوع | توضیحات | | ------------------------------------------------------------ | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | filename | موقعیتی/اختیاری | فیلد محل کد را از قبل در رابط کاربری پر کنید | -| -nc, --no-chrome | اختیاری | رابط کاربری با استفاده از مرورگر پیشفرض (که می تواند کروم باشد) باز می شود(ولی تلاشی برای پیدا کردن کروم نمی کند). | +| -db, --default-browser | اختیاری | رابط کاربری با استفاده از مرورگر پیشفرض (که می تواند کروم باشد) باز می شود(ولی تلاشی برای پیدا کردن کروم نمی کند). | | -nu, --no-ui | اختیاری | سعی نکنید رابط کاربری را در یک مرورگر باز کنید و به سادگی آدرسی را که برنامه قابل دسترسی است چاپ کنید | | -c [CONFIG], --config [CONFIG] | اختیاری | یک فایل پیکربندی (جی سان) برای پر کردن رابط کاربری از قبل ارائه دهید, اینها را میتوان در تب تنظیمات ایجاد کرد | | -o [PATH], --output-dir [PATH] | اختیاری | دایرکتوری خروجی پیش فرض را تنظیم کنید. این هنوز هم در رابط کاربری قابل تغییر است | diff --git a/README-Turkish.md b/README-Turkish.md index 6e804911..a3d194af 100644 --- a/README-Turkish.md +++ b/README-Turkish.md @@ -32,7 +32,7 @@ Suomenkieliset käyttöohjeet löydät [täältä](./README-Finnish.md) - Python : 3.6-3.12 -_Görsellerde gösterilen arayüze sahip olmak için kroma ihtiyacınız olacak. chrome kurulu değilse veya --no-chrome sağlanmışsa, varsayılan tarayıcı kullanılacaktır._ +_Görsellerde gösterilen arayüze sahip olmak için kroma ihtiyacınız olacak. chrome kurulu değilse veya --default-browser sağlanmışsa, varsayılan tarayıcı kullanılacaktır._ > [PyInstaller 4.0](https://github.com/pyinstaller/pyinstaller/releases/tag/v4.0) itibariyle, Python 2.7 artık desteklenmemektedir. Bu aracın Python 2.7 ile nasıl kullanılacağına ilişkin adımlar için aşağıdaki "[Python 2.7 Destek](#python-27-destek)" bölümünü okuyun. @@ -92,12 +92,12 @@ _Bu kadar Kolay._ ### Argümanlar -Kullanım: `auto-py-to-exe [-nc] [-c [CONFIG]] [-o [PATH]] [filename]` +Kullanım: `auto-py-to-exe [-db] [-c [CONFIG]] [-o [PATH]] [filename]` | Argüman | Tip | Açıklama | | ------------------------------------------------------------ | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | filename | konumsal/opsiyonel | Kullanıcı arayüzündeki "Komut Dosyası Konumu" alanını önceden doldurun. | -| -nc, --no-chrome | opsiyonel | Varsayılan tarayıcıyı (Chrome olabilir) kullanarak kullanıcı arayüzünü kalemleyin. Chrome'u bulmaya çalışmaz. | +| -db, --default-browser | opsiyonel | Varsayılan tarayıcıyı (Chrome olabilir) kullanarak kullanıcı arayüzünü kalemleyin. Chrome'u bulmaya çalışmaz. | | -nu, --no-ui | opsiyonel | Kullanıcı arayüzünü bir tarayıcıda açmaya çalışmayın ve uygulamanın erişilebileceği adresi yazdırın. | | -c [CONFIG], --config [CONFIG] | opsiyonel | Kullanıcı arabirimini önceden doldurmak için bir yapılandırma dosyası (json) sağlayın. Bunlar ayarlar sekmesinde oluşturulabilir. | | -o [PATH], --output-dir [PATH] | opsiyonel | Varsayılan çıkış dizinini ayarlayın. Bu, kullanıcı arayüzünde hala değiştirilebilir. | diff --git a/README.md b/README.md index 6815c7d1..13e50e24 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Türkçe Talimatları [burada](./README-Turkish.md) bulabilirsiniz. - Python: 3.6-3.12 -_To have the interface displayed in the images, you will need Chrome. If Chrome is not installed or `--no-chrome` is passed, the default browser will be used._ +_To have the interface displayed in the images, you will need Chrome. If Chrome is not installed or `--default-browser` is passed, the default browser will be used._ ### Installation and Usage @@ -102,7 +102,7 @@ Use the help flag to get the usage: `auto-py-to-exe --help` | Argument | Type | Description | | ------------------------------------------------------------ | ------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | filename | positional/optional | Pre-fill the "Script Location" field in the UI. | -| -nc, --no-chrome | optional | Open the UI using the default browser (which may be Chrome). Will not try to find Chrome. | +| -db, --default-browser | optional | Open the UI using the default browser (which may be Chrome). Will not try to find Chrome. | | -nu, --no-ui | optional | Don't try to open the UI in a browser and simply print out the address where the application can be accessed. | | -c [CONFIG], --config [CONFIG] | optional | Provide a configuration file (JSON) to pre-fill the UI. These can be generated in the settings tab. | | -o [PATH], --output-dir [PATH] | optional | Set the default output directory. This can still be changed in the UI. | diff --git a/auto_py_to_exe/__main__.py b/auto_py_to_exe/__main__.py index 7adb00f2..11627722 100644 --- a/auto_py_to_exe/__main__.py +++ b/auto_py_to_exe/__main__.py @@ -38,10 +38,10 @@ def run(): "filename", nargs="?", type=validation.argparse_file_exists, help="pass a file into the interface", default=None ) parser.add_argument( - "-nc", - "--no-chrome", + "-db", + "--default-browser", action="store_true", - help="do not open in chrome's app mode", + help="use the default browser", ) parser.add_argument( "-nu", @@ -93,10 +93,10 @@ def run(): if args.no_ui: config.ui_open_mode = config.UIOpenMode.NONE - elif args.no_chrome: - config.ui_open_mode = config.UIOpenMode.USER_DEFAULT + elif args.default_browser: + config.ui_open_mode = config.UIOpenMode.DEFAULT_BROWSER else: - config.ui_open_mode = config.UIOpenMode.CHROME + config.ui_open_mode = config.UIOpenMode.CHROME_OR_EDGE # Validate --build-directory-override exists if supplied if (args.build_directory_override is not None) and (not os.path.isdir(args.build_directory_override)): diff --git a/auto_py_to_exe/config.py b/auto_py_to_exe/config.py index 2f467b6b..2ff65555 100644 --- a/auto_py_to_exe/config.py +++ b/auto_py_to_exe/config.py @@ -4,8 +4,8 @@ class UIOpenMode: NONE = 0 - CHROME = 1 - USER_DEFAULT = 2 + CHROME_OR_EDGE = 1 + DEFAULT_BROWSER = 2 # Temporary directory for packaging scripts to speed up consecutive builds. Created on application start. @@ -19,7 +19,7 @@ class UIOpenMode: # Argument-influenced configuration package_filename = None -ui_open_mode = UIOpenMode.CHROME +ui_open_mode = UIOpenMode.CHROME_OR_EDGE supplied_ui_configuration = None default_output_directory = os.path.abspath("output") language_hint = None diff --git a/auto_py_to_exe/ui.py b/auto_py_to_exe/ui.py index 7b2760b3..4da6eb10 100644 --- a/auto_py_to_exe/ui.py +++ b/auto_py_to_exe/ui.py @@ -4,19 +4,13 @@ import os import eel -from eel import chrome +from eel import chrome, edge from . import config, dialogs, packaging, utils LOGGING_HANDLER_NAME = "auto-py-to-exe logging handler" -class UIOpenMode: - NONE = 0 - CHROME = 1 - USER_DEFAULT = 2 - - # Setup eels root folder eel.init(config.FRONTEND_ASSET_FOLDER) @@ -60,6 +54,11 @@ def __can_use_chrome(): return chrome_instance_path is not None and os.path.exists(chrome_instance_path) +def __can_use_edge(): + """Identify if Edge is available for Eel to use""" + return edge.find_path() + + @eel.expose def initialise(): """Called by the UI when opened. Used to pass initial values and setup state we couldn't set until now.""" @@ -186,15 +185,19 @@ def start(open_mode): """Start the UI using Eel""" try: chrome_available = __can_use_chrome() - if open_mode == UIOpenMode.CHROME and chrome_available: - eel.start("index.html", size=(650, 672), port=0) - elif open_mode == UIOpenMode.USER_DEFAULT or (open_mode == UIOpenMode.CHROME and not chrome_available): + edge_available = __can_use_edge() + + if open_mode == config.UIOpenMode.CHROME_OR_EDGE and chrome_available: + eel.start("index.html", size=(650, 672), port=0, mode="chrome") + elif open_mode == config.UIOpenMode.CHROME_OR_EDGE and edge_available: + eel.start("index.html", size=(650, 673), port=0, mode="edge") + elif open_mode == config.UIOpenMode.DEFAULT_BROWSER or ( + open_mode == config.UIOpenMode.CHROME_OR_EDGE and not chrome_available and not edge_available + ): eel.start("index.html", size=(650, 672), port=0, mode="user default") else: port = utils.get_port() print("Server starting at http://localhost:" + str(port) + "/index.html") - eel.start( - "index.html", size=(650, 672), host="localhost", port=port, mode=None, close_callback=lambda x, y: None - ) + eel.start("index.html", host="localhost", port=port, mode=None, close_callback=lambda x, y: None) except (SystemExit, KeyboardInterrupt): pass # This is what the bottle server raises