Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
49fbaab
Draft: flet debug CLI command
FeodorFitsner Nov 26, 2025
fd0ebbe
Refactor Flutter command execution in CLI commands
FeodorFitsner Nov 26, 2025
398d5f7
Add release mode option to debug command
FeodorFitsner Nov 26, 2025
4a443a6
Remove default Impeller meta-data from Android config
FeodorFitsner Nov 26, 2025
c34f553
Refactor build command to use BaseBuildCommand
FeodorFitsner Nov 26, 2025
0a23cc7
Update minimal Flutter version to 3.38.3
FeodorFitsner Nov 26, 2025
96739fb
Add devices command and refactor build/debug initialization
FeodorFitsner Nov 26, 2025
1cc6ad9
Refactor device listing and cleanup handling
FeodorFitsner Nov 26, 2025
875a56f
Add device timeout and connection filters to CLI
FeodorFitsner Nov 26, 2025
b1315e9
Improve device platform labeling and verbose logging
FeodorFitsner Nov 27, 2025
535fc3f
Add emulators command and improve argument parsing
FeodorFitsner Nov 27, 2025
93d8d8b
Update build_base.py
FeodorFitsner Nov 27, 2025
cb47dd8
Refactor platform handling in CLI commands
FeodorFitsner Nov 27, 2025
02877c5
Add confirmation prompt for Android SDK installation
FeodorFitsner Nov 27, 2025
f71321a
Add emulator deletion support to CLI
FeodorFitsner Nov 28, 2025
ebc7c67
Add docs for flet devices and emulators CLI commands
FeodorFitsner Nov 28, 2025
0978de0
Refactor emulator command arguments and actions
FeodorFitsner Nov 28, 2025
f00d361
Improve Flutter SDK installation and detection
FeodorFitsner Nov 29, 2025
d3e4236
Refactor version retrieval and clean up CLI commands
FeodorFitsner Nov 30, 2025
2f7b6c7
Handle ListTile click events in RadioControl
FeodorFitsner Nov 30, 2025
6bb0e6f
Merge branch 'main' into flet-debug
FeodorFitsner Nov 30, 2025
34ac8ae
Register path_provider_foundation plugin for macOS
FeodorFitsner Nov 30, 2025
dd0dec1
Fix image rendering in MatplotlibChart
FeodorFitsner Dec 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"flutter": "3.38.2"
"flutter": "3.38.3"
}
2 changes: 2 additions & 0 deletions client/macos/Flutter/GeneratedPluginRegistrant.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import geolocator_apple
import media_kit_libs_macos_video
import media_kit_video
import package_info_plus
import path_provider_foundation
import record_macos
import rive_common
import screen_retriever_macos
Expand All @@ -31,6 +32,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin"))
MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin"))
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
RecordMacOsPlugin.register(with: registry.registrar(forPlugin: "RecordMacOsPlugin"))
RivePlugin.register(with: registry.registrar(forPlugin: "RivePlugin"))
ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin"))
Expand Down
24 changes: 4 additions & 20 deletions client/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,10 @@ packages:
dependency: transitive
description:
name: device_info_plus
sha256: dd0e8e02186b2196c7848c9d394a5fd6e5b57a43a546082c5820b1ec72317e33
sha256: "4df8babf73058181227e18b08e6ea3520cf5fc5d796888d33b7cb0f33f984b7c"
url: "https://pub.dev"
source: hosted
version: "12.2.0"
version: "12.3.0"
device_info_plus_platform_interface:
dependency: transitive
description:
Expand Down Expand Up @@ -782,14 +782,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
objective_c:
dependency: transitive
description:
name: objective_c
sha256: "1f81ed9e41909d44162d7ec8663b2c647c202317cc0b56d3d56f6a13146a0b64"
url: "https://pub.dev"
source: hosted
version: "9.1.0"
package_info_plus:
dependency: transitive
description:
Expand Down Expand Up @@ -842,10 +834,10 @@ packages:
dependency: transitive
description:
name: path_provider_foundation
sha256: "6192e477f34018ef1ea790c56fffc7302e3bc3efede9e798b934c252c8c105ba"
sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4"
url: "https://pub.dev"
source: hosted
version: "2.5.0"
version: "2.5.1"
path_provider_linux:
dependency: transitive
description:
Expand Down Expand Up @@ -974,14 +966,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.1.5+1"
pub_semver:
dependency: transitive
description:
name: pub_semver
sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
url: "https://pub.dev"
source: hosted
version: "2.2.0"
record:
dependency: transitive
description:
Expand Down
27 changes: 27 additions & 0 deletions packages/flet/lib/src/controls/radio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import '../utils/text.dart';
import '../utils/theme.dart';
import '../widgets/error.dart';
import 'base_controls.dart';
import 'list_tile.dart';

class RadioControl extends StatefulWidget {
final Control control;
Expand All @@ -22,6 +23,7 @@ class RadioControl extends StatefulWidget {

class _RadioControlState extends State<RadioControl> {
late final FocusNode _focusNode;
Listenable? _tileClicksNotifier;

@override
void initState() {
Expand All @@ -30,13 +32,38 @@ class _RadioControlState extends State<RadioControl> {
_focusNode.addListener(_onFocusChange);
}

@override
void didChangeDependencies() {
super.didChangeDependencies();
final newNotifier = ListTileClicks.of(context)?.notifier;

// If the inherited source changed, swap listeners
if (!identical(_tileClicksNotifier, newNotifier)) {
_tileClicksNotifier?.removeListener(_handleTileClick);
_tileClicksNotifier = newNotifier;
_tileClicksNotifier?.addListener(_handleTileClick);
}
}

void _onFocusChange() {
widget.control.triggerEvent(_focusNode.hasFocus ? "focus" : "blur");
}

void _handleTileClick() {
if (widget.control.disabled) {
return;
}
final radioGroup = RadioGroup.maybeOf<String>(context);
if (radioGroup != null) {
final value = widget.control.getString("value", "")!;
radioGroup.onChanged(value);
}
}

@override
void dispose() {
_focusNode.removeListener(_onFocusChange);
_tileClicksNotifier?.removeListener(_handleTileClick);
_focusNode.dispose();
super.dispose();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ async def _receive_loop(self):

self.canvas.shapes = [
fc.Image(
src_bytes=content,
src=content,
x=0,
y=0,
width=self.figure.bbox.size[0] / self.__dpr,
Expand Down
13 changes: 10 additions & 3 deletions sdk/python/packages/flet-cli/src/flet_cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
import flet.version
import flet_cli.commands.build
import flet_cli.commands.create
import flet_cli.commands.doctor # Adding the doctor command
import flet_cli.commands.debug
import flet_cli.commands.devices
import flet_cli.commands.doctor
import flet_cli.commands.emulators
import flet_cli.commands.pack
import flet_cli.commands.publish
import flet_cli.commands.run
import flet_cli.commands.serve
from flet.version import update_version


# Source https://stackoverflow.com/a/26379693
Expand Down Expand Up @@ -69,7 +71,9 @@ def get_parser() -> argparse.ArgumentParser:
"--version",
"-V",
action="version",
version=flet.version.version if flet.version.version else update_version(),
version=flet.version.version
if flet.version.version
else flet.version.from_git(),
)

sp = parser.add_subparsers(dest="command")
Expand All @@ -78,9 +82,12 @@ def get_parser() -> argparse.ArgumentParser:
flet_cli.commands.create.Command.register_to(sp, "create")
flet_cli.commands.run.Command.register_to(sp, "run")
flet_cli.commands.build.Command.register_to(sp, "build")
flet_cli.commands.debug.Command.register_to(sp, "debug")
flet_cli.commands.pack.Command.register_to(sp, "pack")
flet_cli.commands.publish.Command.register_to(sp, "publish")
flet_cli.commands.serve.Command.register_to(sp, "serve")
flet_cli.commands.emulators.Command.register_to(sp, "emulators")
flet_cli.commands.devices.Command.register_to(sp, "devices")
flet_cli.commands.doctor.Command.register_to(sp, "doctor")

# set "run" as the default subparser
Expand Down
Loading
Loading