Skip to content

Commit c46da8b

Browse files
authored
feat(editor-safe-area): add convenience constructors none, symmetric, and fromLTRB (#742)
* feat(editor-safe-area): add constructors for no padding, symmetric padding, and custom edge padding * refactor: clean up imports and remove unused filtered_widget references * chore(release): bump version to 11.18.2 and update changelog
1 parent 5060fb9 commit c46da8b

File tree

11 files changed

+40
-10
lines changed

11 files changed

+40
-10
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## 11.18.2
4+
- **FEAT**(EditorSafeArea): Add convenience constructors `none`, `symmetric`, and `fromLTRB` for easier safe area configuration.
5+
- **FIX**(HelperLines): Resolves the issue of horizontal lines not showing up when the editor overflows the screen.
6+
37
## 11.18.1
48
- **FIX**(filter-editor): Ensure that the applied filters can also be removed.
59

lib/core/models/editor_configs/utils/editor_safe_area.dart

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,36 @@ class EditorSafeArea {
4444
this.bottom = true,
4545
});
4646

47+
/// Creates an [EditorSafeArea] with no safe area padding on any edge.
48+
const EditorSafeArea.none()
49+
: top = false,
50+
left = false,
51+
right = false,
52+
bottom = false;
53+
54+
/// Creates an [EditorSafeArea] with symmetric safe area padding.
55+
///
56+
/// If [vertical] is `true`, padding is applied to the top and bottom edges.
57+
/// If [horizontal] is `true`, padding is applied to the left and right edges.
58+
const EditorSafeArea.symmetric({
59+
bool vertical = false,
60+
bool horizontal = false,
61+
}) : top = vertical,
62+
bottom = vertical,
63+
left = horizontal,
64+
right = horizontal;
65+
66+
/// Creates an [EditorSafeArea] with the specified padding for each edge.
67+
///
68+
/// Similar to [EdgeInsets.fromLTRB], this constructor allows you to specify
69+
/// the safe area padding for each edge individually.
70+
const EditorSafeArea.fromLTRB(
71+
this.left,
72+
this.top,
73+
this.right,
74+
this.bottom,
75+
);
76+
4777
/// If `true`, applies safe area padding to the top edge.
4878
final bool top;
4979

lib/features/crop_rotate_editor/crop_rotate_editor.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import '/features/crop_rotate_editor/widgets/outside_gestures/crop_rotate_gestur
2121
import '/features/crop_rotate_editor/widgets/outside_gestures/outside_gesture_listener.dart';
2222
import '/plugins/defer_pointer/defer_pointer.dart';
2323
import '/pro_image_editor.dart';
24+
import '/shared/extensions/double_extension.dart';
2425
import '/shared/mixins/extended_loop.dart';
2526
import '/shared/services/content_recorder/widgets/record_invisible_widget.dart';
2627
import '/shared/services/layer_transform_generator.dart';
@@ -33,8 +34,6 @@ import '/shared/widgets/extended/mouse_region/extended_rebuild_mouse_region.dart
3334
import '/shared/widgets/layer/layer_stack.dart';
3435
import '/shared/widgets/screen_resize_detector.dart';
3536
import '/shared/widgets/transform/transformed_content_generator.dart';
36-
import '../../shared/extensions/double_extension.dart';
37-
import '../filter_editor/widgets/filtered_widget.dart';
3837
import 'enums/crop_area_part.dart';
3938
import 'enums/crop_rotate_angle_side.dart';
4039
import 'mixins/crop_area_history.dart';

lib/features/filter_editor/filter_editor.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ import '/shared/utils/file_constructor_utils.dart';
1818
import '/shared/widgets/layer/layer_stack.dart';
1919
import '/shared/widgets/transform/transformed_content_generator.dart';
2020
import 'constants/identity_matrix_constant.dart';
21-
import 'types/filter_matrix.dart';
2221
import 'utils/lerp_color_matrix_utils.dart';
23-
import 'widgets/filtered_widget.dart';
2422

23+
export 'types/filter_matrix.dart';
2524
export 'utils/filter_generator/filter_addons.dart';
2625
export 'utils/filter_generator/filter_model.dart';
2726
export 'utils/filter_generator/filter_presets.dart';
2827
export 'widgets/filter_editor_item_list.dart';
28+
export 'widgets/filtered_widget.dart';
2929

3030
/// The `FilterEditor` widget allows users to editing images with filters
3131
///

lib/features/main_editor/main_editor.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import '/shared/utils/transparent_image_generator_utils.dart';
3030
import '/shared/widgets/adaptive_dialog.dart';
3131
import '/shared/widgets/extended/interactive_viewer/extended_interactive_viewer.dart';
3232
import '/shared/widgets/screen_resize_detector.dart';
33-
import '../filter_editor/types/filter_matrix.dart';
3433
import '../filter_editor/widgets/filter_generator.dart';
3534
import '../paint_editor/models/paint_editor_response_model.dart';
3635
import '../paint_editor/widgets/paint_editor_layer_editor.dart';

lib/features/main_editor/widgets/main_editor_helper_lines.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class MainEditorHelperLines extends StatelessWidget {
6969
final scale = viewer?.scaleFactor ?? 1;
7070

7171
final offset = viewer?.offset ?? Offset.zero;
72-
final screenSize = sizesManager.screen;
72+
final screenSize = sizesManager.editorSize;
7373
final editorBodySize = sizesManager.bodySize;
7474

7575
if (configs.helperLines.isDisabledAtZoom && scale > 1) {

lib/features/paint_editor/paint_editor.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import '/shared/widgets/extended/interactive_viewer/extended_interactive_viewer.
2929
import '/shared/widgets/layer/layer_stack.dart';
3030
import '/shared/widgets/slider_bottom_sheet.dart';
3131
import '/shared/widgets/transform/transformed_content_generator.dart';
32-
import '../filter_editor/widgets/filtered_widget.dart';
3332
import '../main_editor/services/layer_copy_manager.dart';
3433
import 'controllers/paint_controller.dart';
3534
import 'models/paint_editor_response_model.dart';

lib/features/tune_editor/tune_editor.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import '/shared/services/content_recorder/widgets/content_recorder.dart';
1616
import '/shared/utils/file_constructor_utils.dart';
1717
import '/shared/widgets/layer/layer_stack.dart';
1818
import '/shared/widgets/transform/transformed_content_generator.dart';
19-
import '../filter_editor/widgets/filtered_widget.dart';
2019
import 'utils/tune_presets.dart';
2120
import 'widgets/tune_editor_appbar.dart';
2221

lib/pro_image_editor.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export 'core/utils/image_converter.dart';
6666
export '/shared/utils/parser/int_parser.dart';
6767
export '/shared/utils/parser/double_parser.dart';
6868
export '/shared/utils/parser/size_parser.dart';
69+
export '/core/models/editor_configs/utils/editor_safe_area.dart';
6970

7071
/// Widgets
7172
export 'shared/widgets/animated/fade_in_up.dart';

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: pro_image_editor
22
description: "A Flutter image editor: Seamlessly enhance your images with user-friendly editing features."
3-
version: 11.18.1
3+
version: 11.18.2
44
homepage: https://github.com/hm21/pro_image_editor/
55
repository: https://github.com/hm21/pro_image_editor/
66
documentation: https://github.com/hm21/pro_image_editor/

0 commit comments

Comments
 (0)