Skip to content

Commit b9a703b

Browse files
committed
Deprecate FletApp.show_app_startup_screen / app_startup_screen_message via @deprecated
Use the standard @deprecated decorator (like DragTargetEvent.x/y) instead of a docstring note: the two settings are now deprecated property getters/setters that proxy to boot_screen_options (spinner_size / startup_message). Since they are properties, they're no longer constructor kwargs — set them as attributes or migrate to boot_screen_options. Drop the now-dead Dart legacy fallback in flet_app_control.dart and the unused legacyBootScreenOptions helper (the legacy fields are no longer serialized).
1 parent 85422fc commit b9a703b

3 files changed

Lines changed: 58 additions & 32 deletions

File tree

packages/flet/lib/src/controls/flet_app_control.dart

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import '../flet_app_errors_handler.dart';
55
import '../flet_backend.dart';
66
import '../models/control.dart';
77
import '../utils/numbers.dart';
8-
import '../widgets/boot_screen.dart';
98
import 'base_controls.dart';
109

1110
class FletAppControl extends StatefulWidget {
@@ -37,13 +36,9 @@ class _FletAppControlState extends State<FletAppControl> {
3736
var reconnectTimeoutMs = widget.control.getInt("reconnect_timeout_ms");
3837
var bootScreenName = widget.control.getString("boot_screen_name", "flet")!;
3938
var rawBootScreenOptions = widget.control.get("boot_screen_options");
40-
// New boot_screen_options take precedence; otherwise fall back to the
41-
// deprecated show/message startup-screen settings.
4239
var bootScreenOptions = rawBootScreenOptions is Map
4340
? Map<String, dynamic>.from(rawBootScreenOptions)
44-
: legacyBootScreenOptions(
45-
widget.control.getBool("show_app_startup_screen", false)!,
46-
widget.control.getString("app_startup_screen_message"));
41+
: <String, dynamic>{};
4742
var appErrorMessage = widget.control.getString("app_error_message");
4843

4944
return LayoutControl(

packages/flet/lib/src/widgets/boot_screen.dart

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,3 @@ Widget resolveBootScreen({
2323
}
2424
return FletBootScreen(options: options, status: status);
2525
}
26-
27-
/// Builds built-in "flet" boot screen [options] from the legacy
28-
/// show/message startup-screen settings, for backward compatibility.
29-
Map<String, dynamic> legacyBootScreenOptions(bool show, String? message) {
30-
if (!show) return const {};
31-
return {
32-
"spinner_size": 30,
33-
if (message != null && message.isNotEmpty) "startup_message": message,
34-
};
35-
}

sdk/python/packages/flet/src/flet/controls/core/flet_app.py

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from flet.controls.base_control import control
55
from flet.controls.control_event import ControlEventHandler, Event, EventHandler
66
from flet.controls.layout_control import LayoutControl
7+
from flet.utils.deprecated import deprecated
78

89
__all__ = ["FletApp", "FletAppOutputEvent"]
910

@@ -77,22 +78,6 @@ class FletApp(LayoutControl):
7778
[boot screen docs](https://flet.dev/docs/publish/#boot-screen).
7879
"""
7980

80-
show_app_startup_screen: bool = False
81-
"""
82-
Whether to show the app startup screen.
83-
84-
Deprecated: use :attr:`boot_screen_options` instead, e.g.
85-
`boot_screen_options={"spinner_size": 30}`.
86-
"""
87-
88-
app_startup_screen_message: Optional[str] = None
89-
"""
90-
Message to display on the app startup screen.
91-
92-
Deprecated: use :attr:`boot_screen_options` instead, e.g.
93-
`boot_screen_options={"startup_message": "Loading…"}`.
94-
"""
95-
9681
app_error_message: Optional[str] = None
9782
"""
9883
Template message to display when the app fails to load.
@@ -113,3 +98,59 @@ class FletApp(LayoutControl):
11398
`force_pyodide=True`; root-level Pyodide pages have nowhere to
11499
bubble the event.
115100
"""
101+
102+
@property
103+
@deprecated(
104+
reason="Use `boot_screen_options` instead, e.g. "
105+
"boot_screen_options={'spinner_size': 30}.",
106+
version="0.86.0",
107+
delete_version="0.89.0",
108+
)
109+
def show_app_startup_screen(self) -> bool:
110+
"""
111+
Whether to show the app startup screen.
112+
"""
113+
return bool((self.boot_screen_options or {}).get("spinner_size", 0))
114+
115+
@show_app_startup_screen.setter
116+
@deprecated(
117+
reason="Use `boot_screen_options` instead, e.g. "
118+
"boot_screen_options={'spinner_size': 30}.",
119+
version="0.86.0",
120+
delete_version="0.89.0",
121+
)
122+
def show_app_startup_screen(self, value: bool) -> None:
123+
options = dict(self.boot_screen_options or {})
124+
if value:
125+
options.setdefault("spinner_size", 30)
126+
else:
127+
options.pop("spinner_size", None)
128+
self.boot_screen_options = options
129+
130+
@property
131+
@deprecated(
132+
reason="Use `boot_screen_options` instead, e.g. "
133+
"boot_screen_options={'startup_message': '...'}.",
134+
version="0.86.0",
135+
delete_version="0.89.0",
136+
)
137+
def app_startup_screen_message(self) -> Optional[str]:
138+
"""
139+
Message to display on the app startup screen.
140+
"""
141+
return (self.boot_screen_options or {}).get("startup_message")
142+
143+
@app_startup_screen_message.setter
144+
@deprecated(
145+
reason="Use `boot_screen_options` instead, e.g. "
146+
"boot_screen_options={'startup_message': '...'}.",
147+
version="0.86.0",
148+
delete_version="0.89.0",
149+
)
150+
def app_startup_screen_message(self, value: Optional[str]) -> None:
151+
options = dict(self.boot_screen_options or {})
152+
if value is not None:
153+
options["startup_message"] = value
154+
else:
155+
options.pop("startup_message", None)
156+
self.boot_screen_options = options

0 commit comments

Comments
 (0)