Skip to content

Commit 93f5558

Browse files
committed
Fix padding deprecation warnings and frozen-app Python detection
- Replace all ft.padding.symmetric/only() with ft.Padding.symmetric/only() (deprecated since Flet 0.80, removed in 0.83) - When running as frozen AppImage, use shutil.which("python3") instead of sys.executable (which would be the AppImage itself, re-launching the GUI)
1 parent 279d595 commit 93f5558

1 file changed

Lines changed: 19 additions & 15 deletions

File tree

gui.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
# ── Project layout ────────────────────────────────────────────────────────────
2424

2525
PROJECT_DIR = Path(__file__).parent
26-
PYTHON = sys.executable
26+
if getattr(sys, "frozen", False):
27+
import shutil as _shutil
28+
PYTHON = _shutil.which("python3") or _shutil.which("python") or "python3"
29+
else:
30+
PYTHON = sys.executable
2731

2832
SCRIPTS = {
2933
"downloader": PROJECT_DIR / "downloader.py",
@@ -207,7 +211,7 @@ def __init__(self, page: ft.Page) -> None:
207211
expand=True,
208212
spacing=0,
209213
auto_scroll=True,
210-
padding=ft.padding.symmetric(horizontal=8, vertical=6),
214+
padding=ft.Padding.symmetric(horizontal=8, vertical=6),
211215
)
212216

213217
self._badge = ft.Text("", size=11, color=C_PRIMARY)
@@ -243,7 +247,7 @@ def __init__(self, page: ft.Page) -> None:
243247
self._clear_btn,
244248
],
245249
),
246-
padding=ft.padding.only(top=8, bottom=4),
250+
padding=ft.Padding.only(top=8, bottom=4),
247251
),
248252
# Scrollable text area — fixed height so form area gets the rest
249253
ft.Container(
@@ -412,7 +416,7 @@ def _chip(label: str, color: str) -> ft.Container:
412416
content=ft.Text(label, size=10, color=color, weight=ft.FontWeight.BOLD),
413417
bgcolor=ft.Colors.with_opacity(0.12, color),
414418
border_radius=12,
415-
padding=ft.padding.symmetric(horizontal=8, vertical=3),
419+
padding=ft.Padding.symmetric(horizontal=8, vertical=3),
416420
)
417421

418422
def _status_chip(done: int, total: int) -> ft.Container:
@@ -473,7 +477,7 @@ def _run_btn(text: str, icon: str, on_click: callable) -> ft.FilledButton:
473477
style=ft.ButtonStyle(
474478
bgcolor=C_PRIMARY,
475479
color=ft.Colors.BLACK,
476-
padding=ft.padding.symmetric(horizontal=16, vertical=10),
480+
padding=ft.Padding.symmetric(horizontal=16, vertical=10),
477481
),
478482
on_click=on_click,
479483
)
@@ -487,7 +491,7 @@ def _outlined_btn(text: str, icon: str, on_click: callable) -> ft.OutlinedButton
487491
),
488492
style=ft.ButtonStyle(
489493
side=ft.BorderSide(1, C_PRIMARY),
490-
padding=ft.padding.symmetric(horizontal=14, vertical=10),
494+
padding=ft.Padding.symmetric(horizontal=14, vertical=10),
491495
),
492496
on_click=on_click,
493497
)
@@ -563,7 +567,7 @@ def _go(_):
563567
bgcolor=ft.Colors.with_opacity(0.08, ft.Colors.WHITE),
564568
color=ft.Colors.WHITE,
565569
side=ft.BorderSide(1, ft.Colors.with_opacity(0.12, ft.Colors.WHITE)),
566-
padding=ft.padding.symmetric(horizontal=12, vertical=8),
570+
padding=ft.Padding.symmetric(horizontal=12, vertical=8),
567571
),
568572
on_click=_go,
569573
)
@@ -1289,13 +1293,13 @@ def _const_row(script: str, name: str, desc: str, default: str,
12891293
options=[ft.dropdown.Option(key=val, text=label) for label, val in options],
12901294
expand=True, dense=True,
12911295
bgcolor=C_OUTPUT_BG, border_color=accent, text_size=12,
1292-
content_padding=ft.padding.symmetric(horizontal=8, vertical=4),
1296+
content_padding=ft.Padding.symmetric(horizontal=8, vertical=4),
12931297
)
12941298
else:
12951299
ctrl = ft.TextField(
12961300
value=cur, expand=True, dense=True,
12971301
bgcolor=C_OUTPUT_BG, border_color=accent,
1298-
text_size=12, content_padding=ft.padding.symmetric(horizontal=8, vertical=6),
1302+
text_size=12, content_padding=ft.Padding.symmetric(horizontal=8, vertical=6),
12991303
on_change=lambda e: None, # ensures Flet syncs typed value to ctrl.value
13001304
)
13011305

@@ -1312,7 +1316,7 @@ def _reset(_, c=ctrl, s=script, n=name, d=default):
13121316
return ft.Row(controls=[
13131317
ft.Container(
13141318
ft.Text(script, size=10, color=accent, weight=ft.FontWeight.BOLD),
1315-
width=74, padding=ft.padding.symmetric(horizontal=4, vertical=2),
1319+
width=74, padding=ft.Padding.symmetric(horizontal=4, vertical=2),
13161320
border_radius=4,
13171321
bgcolor=ft.Colors.with_opacity(0.12, accent),
13181322
),
@@ -1379,7 +1383,7 @@ def _save_all(_):
13791383
on_click=_save_all,
13801384
style=ft.ButtonStyle(
13811385
bgcolor=C_PRIMARY, color=ft.Colors.BLACK,
1382-
padding=ft.padding.symmetric(horizontal=28, vertical=14),
1386+
padding=ft.Padding.symmetric(horizontal=28, vertical=14),
13831387
),
13841388
)
13851389
refresh_btn_settings = ft.OutlinedButton(
@@ -1388,7 +1392,7 @@ def _save_all(_):
13881392
on_click=lambda _: _do_refresh(),
13891393
style=ft.ButtonStyle(
13901394
side=ft.BorderSide(1, C_SECONDARY), color=C_SECONDARY,
1391-
padding=ft.padding.symmetric(horizontal=20, vertical=14),
1395+
padding=ft.Padding.symmetric(horizontal=20, vertical=14),
13921396
),
13931397
)
13941398

@@ -1458,7 +1462,7 @@ def _build_pages() -> list:
14581462
page_content = ft.Container(
14591463
content=pages[0],
14601464
expand=True,
1461-
padding=ft.padding.only(left=16, right=16, top=16, bottom=8),
1465+
padding=ft.Padding.only(left=16, right=16, top=16, bottom=8),
14621466
)
14631467

14641468
# Right-side panel: scrollable page content + pinned console
@@ -1467,7 +1471,7 @@ def _build_pages() -> list:
14671471
page_content,
14681472
ft.Container(
14691473
content=console.container,
1470-
padding=ft.padding.only(left=16, right=16, bottom=12),
1474+
padding=ft.Padding.only(left=16, right=16, bottom=12),
14711475
),
14721476
],
14731477
spacing=0,
@@ -1543,7 +1547,7 @@ def _rebuild() -> None:
15431547
weight=ft.FontWeight.BOLD,
15441548
text_align=ft.TextAlign.CENTER),
15451549
], horizontal_alignment=ft.CrossAxisAlignment.CENTER, spacing=2),
1546-
padding=ft.padding.only(bottom=12),
1550+
padding=ft.Padding.only(bottom=12),
15471551
),
15481552
)
15491553

0 commit comments

Comments
 (0)