diff --git a/lib/src/widgets/delegate.dart b/lib/src/widgets/delegate.dart index 043229b4..60da483f 100644 --- a/lib/src/widgets/delegate.dart +++ b/lib/src/widgets/delegate.dart @@ -60,16 +60,12 @@ class EditorTextSelectionGestureDetectorBuilder { /// The [State] of the [EditableText] for which the builder will provide a /// [EditorTextSelectionGestureDetector]. @protected - EditorState? getEditor() { - return delegate.getEditableTextKey().currentState; - } + EditorState? get editor => delegate.getEditableTextKey().currentState; /// The [RenderObject] of the [EditableText] for which the builder will /// provide a [EditorTextSelectionGestureDetector]. @protected - RenderEditor? getRenderEditor() { - return getEditor()!.renderEditor; - } + RenderEditor? get renderEditor => editor?.renderEditor; /// Handler for [EditorTextSelectionGestureDetector.onTapDown]. /// @@ -83,7 +79,7 @@ class EditorTextSelectionGestureDetectorBuilder { /// which triggers this callback. @protected void onTapDown(TapDownDetails details) { - getRenderEditor()!.handleTapDown(details); + renderEditor!.handleTapDown(details); // The selection overlay should only be shown when the user is interacting // through a touch screen (via either a finger or a stylus). // A mouse shouldn't trigger the selection overlay. @@ -110,7 +106,7 @@ class EditorTextSelectionGestureDetectorBuilder { assert(delegate.getForcePressEnabled()); shouldShowSelectionToolbar = true; if (delegate.getSelectionEnabled()) { - getRenderEditor()!.selectWordsInRange( + renderEditor!.selectWordsInRange( details.globalPosition, null, SelectionChangedCause.forcePress, @@ -132,13 +128,13 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onForcePressEnd(ForcePressDetails details) { assert(delegate.getForcePressEnabled()); - getRenderEditor()!.selectWordsInRange( + renderEditor!.selectWordsInRange( details.globalPosition, null, SelectionChangedCause.forcePress, ); if (shouldShowSelectionToolbar) { - getEditor()!.showToolbar(); + editor!.showToolbar(); } } @@ -153,7 +149,7 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onSingleTapUp(TapUpDetails details) { if (delegate.getSelectionEnabled()) { - getRenderEditor()!.selectWordEdge(SelectionChangedCause.tap); + renderEditor!.selectWordEdge(SelectionChangedCause.tap); } } @@ -182,7 +178,7 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onSingleLongTapStart(LongPressStartDetails details) { if (delegate.getSelectionEnabled()) { - getRenderEditor()!.selectPositionAt( + renderEditor!.selectPositionAt( from: details.globalPosition, cause: SelectionChangedCause.longPress, ); @@ -201,7 +197,7 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onSingleLongTapMoveUpdate(LongPressMoveUpdateDetails details) { if (delegate.getSelectionEnabled()) { - getRenderEditor()!.selectPositionAt( + renderEditor!.selectPositionAt( from: details.globalPosition, cause: SelectionChangedCause.longPress, ); @@ -219,7 +215,7 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onSingleLongTapEnd(LongPressEndDetails details) { if (shouldShowSelectionToolbar) { - getEditor()!.showToolbar(); + editor!.showToolbar(); } } @@ -235,9 +231,9 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onDoubleTapDown(TapDownDetails details) { if (delegate.getSelectionEnabled()) { - getRenderEditor()!.selectWord(SelectionChangedCause.tap); + renderEditor!.selectWord(SelectionChangedCause.tap); if (shouldShowSelectionToolbar) { - getEditor()!.showToolbar(); + editor!.showToolbar(); } } } @@ -252,7 +248,7 @@ class EditorTextSelectionGestureDetectorBuilder { /// which triggers this callback. @protected void onDragSelectionStart(DragStartDetails details) { - getRenderEditor()!.handleDragStart(details); + renderEditor!.handleDragStart(details); } /// Handler for [EditorTextSelectionGestureDetector.onDragSelectionUpdate]. @@ -267,7 +263,7 @@ class EditorTextSelectionGestureDetectorBuilder { @protected void onDragSelectionUpdate( DragStartDetails startDetails, DragUpdateDetails updateDetails) { - getRenderEditor()!.extendSelection(updateDetails.globalPosition, + renderEditor!.extendSelection(updateDetails.globalPosition, cause: SelectionChangedCause.drag); } @@ -281,7 +277,7 @@ class EditorTextSelectionGestureDetectorBuilder { /// which triggers this callback. @protected void onDragSelectionEnd(DragEndDetails details) { - getRenderEditor()!.handleDragEnd(details); + renderEditor!.handleDragEnd(details); } /// Returns a [EditorTextSelectionGestureDetector] configured with diff --git a/lib/src/widgets/editor.dart b/lib/src/widgets/editor.dart index 25e13748..7893fff9 100644 --- a/lib/src/widgets/editor.dart +++ b/lib/src/widgets/editor.dart @@ -599,7 +599,7 @@ class _QuillEditorSelectionGestureDetectorBuilder void onForcePressStart(ForcePressDetails details) { super.onForcePressStart(details); if (delegate.getSelectionEnabled() && shouldShowSelectionToolbar) { - getEditor()!.showToolbar(); + editor!.showToolbar(); } } @@ -609,12 +609,10 @@ class _QuillEditorSelectionGestureDetectorBuilder @override void onSingleLongTapMoveUpdate(LongPressMoveUpdateDetails details) { if (_state.widget.onSingleLongTapMoveUpdate != null) { - final renderEditor = getRenderEditor(); - if (renderEditor != null) { - if (_state.widget.onSingleLongTapMoveUpdate!( - details, renderEditor.getPositionForOffset)) { - return; - } + if (renderEditor != null && + _state.widget.onSingleLongTapMoveUpdate!( + details, renderEditor!.getPositionForOffset)) { + return; } } if (!delegate.getSelectionEnabled()) { @@ -623,7 +621,7 @@ class _QuillEditorSelectionGestureDetectorBuilder switch (Theme.of(_state.context).platform) { case TargetPlatform.iOS: case TargetPlatform.macOS: - getRenderEditor()!.selectPositionAt( + renderEditor!.selectPositionAt( from: details.globalPosition, cause: SelectionChangedCause.longPress, ); @@ -632,7 +630,7 @@ class _QuillEditorSelectionGestureDetectorBuilder case TargetPlatform.fuchsia: case TargetPlatform.linux: case TargetPlatform.windows: - getRenderEditor()!.selectWordsInRange( + renderEditor!.selectWordsInRange( details.globalPosition - details.offsetFromOrigin, details.globalPosition, SelectionChangedCause.longPress, @@ -647,16 +645,15 @@ class _QuillEditorSelectionGestureDetectorBuilder if (_state.widget.controller.document.isEmpty()) { return false; } - final pos = getRenderEditor()!.getPositionForOffset(details.globalPosition); - final result = - getEditor()!.widget.controller.document.queryChild(pos.offset); + final pos = renderEditor!.getPositionForOffset(details.globalPosition); + final result = editor!.widget.controller.document.queryChild(pos.offset); if (result.node == null) { return false; } final line = result.node as Line; final segmentResult = line.queryChild(result.offset, false); if (segmentResult.node == null && line.length == 1) { - getEditor()!.widget.controller.updateSelection( + editor!.widget.controller.updateSelection( TextSelection.collapsed(offset: pos.offset), ChangeSource.LOCAL); return true; } @@ -666,12 +663,10 @@ class _QuillEditorSelectionGestureDetectorBuilder @override void onTapDown(TapDownDetails details) { if (_state.widget.onTapDown != null) { - final renderEditor = getRenderEditor(); - if (renderEditor != null) { - if (_state.widget.onTapDown!( - details, renderEditor.getPositionForOffset)) { - return; - } + if (renderEditor != null && + _state.widget.onTapDown!( + details, renderEditor!.getPositionForOffset)) { + return; } } super.onTapDown(details); @@ -687,16 +682,13 @@ class _QuillEditorSelectionGestureDetectorBuilder @override void onSingleTapUp(TapUpDetails details) { if (_state.widget.onTapUp != null) { - final renderEditor = getRenderEditor(); - if (renderEditor != null) { - if (_state.widget.onTapUp!( - details, renderEditor.getPositionForOffset)) { - return; - } + if (renderEditor != null && + _state.widget.onTapUp!(details, renderEditor!.getPositionForOffset)) { + return; } } - getEditor()!.hideToolbar(); + editor!.hideToolbar(); final positionSelected = _isPositionSelected(details); @@ -712,12 +704,12 @@ class _QuillEditorSelectionGestureDetectorBuilder // If `Shift` key is pressed then // extend current selection instead. if (isShiftClick(details.kind)) { - getRenderEditor()! + renderEditor! ..extendSelection(details.globalPosition, cause: SelectionChangedCause.tap) ..onSelectionCompleted(); } else { - getRenderEditor()! + renderEditor! ..selectPosition(cause: SelectionChangedCause.tap) ..onSelectionCompleted(); } @@ -728,7 +720,7 @@ class _QuillEditorSelectionGestureDetectorBuilder // On macOS/iOS/iPadOS a touch tap places the cursor at the edge // of the word. try { - getRenderEditor()! + renderEditor! ..selectWordEdge(SelectionChangedCause.tap) ..onSelectionCompleted(); } finally { @@ -741,7 +733,7 @@ class _QuillEditorSelectionGestureDetectorBuilder case TargetPlatform.linux: case TargetPlatform.windows: try { - getRenderEditor()! + renderEditor! ..selectPosition(cause: SelectionChangedCause.tap) ..onSelectionCompleted(); } finally { @@ -755,12 +747,10 @@ class _QuillEditorSelectionGestureDetectorBuilder @override void onSingleLongTapStart(LongPressStartDetails details) { if (_state.widget.onSingleLongTapStart != null) { - final renderEditor = getRenderEditor(); - if (renderEditor != null) { - if (_state.widget.onSingleLongTapStart!( - details, renderEditor.getPositionForOffset)) { - return; - } + if (renderEditor != null && + _state.widget.onSingleLongTapStart!( + details, renderEditor!.getPositionForOffset)) { + return; } } @@ -768,7 +758,7 @@ class _QuillEditorSelectionGestureDetectorBuilder switch (Theme.of(_state.context).platform) { case TargetPlatform.iOS: case TargetPlatform.macOS: - getRenderEditor()!.selectPositionAt( + renderEditor!.selectPositionAt( from: details.globalPosition, cause: SelectionChangedCause.longPress, ); @@ -777,7 +767,7 @@ class _QuillEditorSelectionGestureDetectorBuilder case TargetPlatform.fuchsia: case TargetPlatform.linux: case TargetPlatform.windows: - getRenderEditor()!.selectWord(SelectionChangedCause.longPress); + renderEditor!.selectWord(SelectionChangedCause.longPress); Feedback.forLongPress(_state.context); break; default: @@ -789,15 +779,14 @@ class _QuillEditorSelectionGestureDetectorBuilder @override void onSingleLongTapEnd(LongPressEndDetails details) { if (_state.widget.onSingleLongTapEnd != null) { - final renderEditor = getRenderEditor(); if (renderEditor != null) { if (_state.widget.onSingleLongTapEnd!( - details, renderEditor.getPositionForOffset)) { + details, renderEditor!.getPositionForOffset)) { return; } if (delegate.getSelectionEnabled()) { - renderEditor.onSelectionCompleted(); + renderEditor!.onSelectionCompleted(); } } }