Skip to content

Commit f37c1f4

Browse files
Fix: View pop with confirmation (#5859)
* Improve view pop confirmation and update routing example Enhanced pop confirmation logic in ViewControl by introducing _allowPop flag and handling dialogs listener removal. Updated Python routing example to use ft.run(main) and added a new pop_view_confirm.py example demonstrating custom pop confirmation dialogs. * Refactor routing_navigation examples and add integration tests Refactored Python routing_navigation example apps to use 'if __name__ == "__main__"' for entry points and unified Flet imports. Updated GitHub Actions workflows to use kuhnroyal/flutter-fvm-config-action/setup@v3 for Flutter setup and improved test matrix. Added integration tests for routing_navigation examples to verify navigation and view logic. * Add bounds check to Pagelet and new integration tests Introduces a bounds check in Pagelet to display an error when height is unbounded and not explicitly set. Adds new integration tests and golden images for Pagelet sizing scenarios, including explicitly sized and auto-sized cases. Close #5562 * Refactor imports for consistency and clarity Reorganized and standardized import statements across multiple files, replacing relative and package imports with a consistent style. This improves code readability, maintainability, and reduces potential import conflicts. * Add drawer navigation example and tests Introduces a new drawer navigation example app and corresponding integration test. Refactors BasePage to use top/root view for drawer and related properties/methods, improving multi-view navigation support. * Update test scope and remove golden image Changed the pytest mark for test_cupertino_adaptive to use function scope instead of module scope. Deleted the macOS golden image for pagelet basic, possibly due to test update or asset cleanup. * Update macOS pagelet basic golden image Replaces the basic.png golden image for macOS pagelet integration tests to reflect updated UI output. * Remove unused logging and update test icon buttons Removed unused logging setup from drawer_navigation.py. Updated test_pagelet.py to remove explicit icon_color assignments for IconButton controls in integration tests. Updated golden images to reflect these changes.
1 parent 77a1958 commit f37c1f4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+749
-171
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -235,27 +235,11 @@ jobs:
235235
- name: Setup uv
236236
uses: astral-sh/setup-uv@v6
237237

238-
- name: Configure Flutter version
239-
uses: kuhnroyal/flutter-fvm-config-action/config@v3
240-
id: fvm-config-action
241-
with:
242-
path: '.fvmrc'
243-
244238
- name: Setup Flutter
245-
id: flutter-action
246-
uses: subosito/flutter-action@v2
247-
with:
248-
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
249-
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
250-
cache: false
251-
252-
# TODO: Remove when https://github.com/actions/runner-images/issues/13341 is fixed
253-
- name: Cache Flutter
254-
id: cache-flutter
255-
uses: actions/cache@v4
239+
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
256240
with:
257-
path: ${{ steps.flutter-action.outputs.CACHE-PATH }}
258-
key: ${{ steps.flutter-action.outputs.CACHE-KEY }}
241+
path: '.fvmrc'
242+
cache: true
259243

260244
- name: Build Flutter macOS client
261245
shell: bash

.github/workflows/macos-integration-tests.yml

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,18 @@ jobs:
3636
strategy:
3737
fail-fast: false
3838
matrix:
39-
suite: [apps, examples, controls/core, controls/material, controls/cupertino, controls/theme, controls/types]
39+
suite:
40+
- apps
41+
- examples/apps
42+
- examples/core
43+
- examples/cupertino
44+
- examples/material
45+
- controls/core
46+
- controls/cupertino
47+
- controls/material
48+
- controls/theme
49+
- controls/types
50+
4051
name: ${{ matrix.suite }} Integration Tests
4152
steps:
4253
- name: Checkout repository
@@ -45,27 +56,11 @@ jobs:
4556
- name: Setup uv
4657
uses: astral-sh/setup-uv@v6
4758

48-
- name: Configure Flutter version
49-
uses: kuhnroyal/flutter-fvm-config-action/config@v3
50-
id: fvm-config-action
51-
with:
52-
path: '.fvmrc'
53-
5459
- name: Setup Flutter
55-
id: flutter-action
56-
uses: subosito/flutter-action@v2
60+
uses: kuhnroyal/flutter-fvm-config-action/setup@v3
5761
with:
58-
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
59-
channel: ${{ steps.fvm-config-action.outputs.FLUTTER_CHANNEL }}
60-
cache: false
61-
62-
# TODO: Remove when https://github.com/actions/runner-images/issues/13341 is fixed
63-
- name: Cache Flutter
64-
id: cache-flutter
65-
uses: actions/cache@v4
66-
with:
67-
path: ${{ steps.flutter-action.outputs.CACHE-PATH }}
68-
key: ${{ steps.flutter-action.outputs.CACHE-KEY }}
62+
path: '.fvmrc'
63+
cache: true
6964

7065
- name: Show tool versions
7166
run: |

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import 'package:flet/src/utils/edge_insets.dart';
21
import 'package:flutter/material.dart';
32

43
import '../extensions/control.dart';
54
import '../models/control.dart';
65
import '../utils/borders.dart';
76
import '../utils/colors.dart';
7+
import '../utils/edge_insets.dart';
88
import '../utils/misc.dart';
99
import '../utils/numbers.dart';
1010
import '../utils/text.dart';

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import 'package:flet/src/utils/numbers.dart';
21
import 'package:flutter/material.dart';
32

43
import '../models/control.dart';
54
import '../utils/auto_complete.dart';
5+
import '../utils/numbers.dart';
66
import 'base_controls.dart';
77

88
class AutoCompleteControl extends StatefulWidget {

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
import 'package:flet/flet.dart';
21
import 'package:flutter/material.dart';
32

3+
import '../extensions/control.dart';
4+
import '../models/control.dart';
5+
import '../utils/borders.dart';
6+
import '../utils/colors.dart';
7+
import '../utils/edge_insets.dart';
8+
import '../utils/misc.dart';
9+
import '../utils/numbers.dart';
10+
import 'base_controls.dart';
11+
412
class BottomAppBarControl extends StatelessWidget {
513
final Control control;
614

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
1-
import 'package:flet/flet.dart';
21
import 'package:flutter/material.dart';
32

3+
import '../extensions/control.dart';
4+
import '../models/control.dart';
5+
import '../utils/buttons.dart';
6+
import '../utils/colors.dart';
7+
import '../utils/launch_url.dart';
8+
import '../utils/misc.dart';
9+
import '../utils/numbers.dart';
10+
import '../widgets/error.dart';
11+
import '../widgets/flet_store_mixin.dart';
12+
import 'base_controls.dart';
13+
414
class ButtonControl extends StatefulWidget {
515
final Control control;
616

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
import 'dart:async';
22
import 'dart:io';
3-
import 'dart:typed_data';
43
import 'dart:ui' as ui;
54

6-
import 'package:flet/src/extensions/control.dart';
7-
import 'package:flet/src/utils/alignment.dart';
8-
import 'package:flet/src/utils/borders.dart';
9-
import 'package:flet/src/utils/colors.dart';
10-
import 'package:flet/src/utils/drawing.dart';
11-
import 'package:flet/src/utils/numbers.dart';
125
import 'package:flutter/material.dart';
6+
import 'package:flutter/services.dart';
137
import 'package:http/http.dart' as http;
148

9+
import '../extensions/control.dart';
1510
import '../models/control.dart';
11+
import '../utils/alignment.dart';
12+
import '../utils/borders.dart';
13+
import '../utils/colors.dart';
1614
import '../utils/dash_path.dart';
15+
import '../utils/drawing.dart';
1716
import '../utils/hashing.dart';
1817
import '../utils/images.dart';
18+
import '../utils/numbers.dart';
1919
import '../utils/text.dart';
2020
import '../utils/transforms.dart';
2121
import 'base_controls.dart';

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
import 'package:flet/flet.dart';
21
import 'package:flutter/material.dart';
32

3+
import '../extensions/control.dart';
4+
import '../models/control.dart';
5+
import '../utils/colors.dart';
6+
import '../utils/images.dart';
7+
import '../utils/numbers.dart';
8+
import 'base_controls.dart';
9+
410
class CircleAvatarControl extends StatelessWidget {
511
final Control control;
612

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1-
import 'package:flet/flet.dart';
21
import 'package:flutter/material.dart';
32

3+
import '../extensions/control.dart';
4+
import '../models/control.dart';
5+
import '../utils/alignment.dart';
6+
import '../utils/animations.dart';
7+
import '../utils/borders.dart';
8+
import '../utils/box.dart';
9+
import '../utils/colors.dart';
10+
import '../utils/edge_insets.dart';
11+
import '../utils/events.dart';
12+
import '../utils/gradient.dart';
13+
import '../utils/images.dart';
14+
import '../utils/launch_url.dart';
15+
import '../utils/misc.dart';
16+
import '../utils/numbers.dart';
17+
import '../widgets/flet_store_mixin.dart';
18+
import 'base_controls.dart';
19+
420
class ContainerControl extends StatelessWidget with FletStoreMixin {
521
final Control control;
622

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import 'dart:async';
22

33
import 'package:collection/collection.dart';
4-
import 'package:flet/src/utils/numbers.dart';
54
import 'package:flutter/gestures.dart';
65
import 'package:flutter/material.dart';
76

87
import '../extensions/control.dart';
98
import '../models/control.dart';
9+
import '../utils/numbers.dart';
1010
import '../utils/popup_menu.dart';
1111
import '../utils/transforms.dart';
1212
import '../widgets/error.dart';

0 commit comments

Comments
 (0)