Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update file paths and keyboard references for latest flutter version 3.19 #1019

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 9 additions & 6 deletions lib/src/helper/pluto_key_manager_event.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter/services.dart';

class PlutoKeyManagerEvent {
FocusNode focusNode;
RawKeyEvent event;
KeyEvent event;

PlutoKeyManagerEvent({
required this.focusNode,
Expand All @@ -12,9 +12,9 @@ class PlutoKeyManagerEvent {

bool get needsThrottle => isMoving || isTab || isPageUp || isPageDown;

bool get isKeyDownEvent => event.runtimeType == RawKeyDownEvent;
bool get isKeyDownEvent => event.runtimeType == KeyDownEvent;

bool get isKeyUpEvent => event.runtimeType == RawKeyUpEvent;
bool get isKeyUpEvent => event.runtimeType == KeyUpEvent;

bool get isMoving => isHorizontal || isVertical;

Expand Down Expand Up @@ -94,15 +94,18 @@ class PlutoKeyManagerEvent {
}

bool get isShiftPressed {
return event.isShiftPressed;
// return event.isShiftPressed;
return event.logicalKey.keyId == LogicalKeyboardKey.shift.keyId;
}

bool get isCtrlPressed {
return event.isMetaPressed || event.isControlPressed;
// return event.isMetaPressed || event.isControlPressed;
return event.logicalKey.keyId == LogicalKeyboardKey.control.keyId;
}

bool get isAltPressed {
return event.isAltPressed;
// return event.isAltPressed;
return event.logicalKey.keyId == LogicalKeyboardKey.alt.keyId;
}

bool get isModifierPressed {
Expand Down
2 changes: 1 addition & 1 deletion lib/src/manager/pluto_grid_key_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ class PlutoGridKeyManager {
if (stateManager.configuration.shortcut.handle(
keyEvent: keyEvent,
stateManager: stateManager,
state: RawKeyboard.instance,
state: HardwareKeyboard.instance,
)) {
return;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/src/manager/shortcut/pluto_grid_shortcut.dart
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class PlutoGridShortcut {
bool handle({
required PlutoKeyManagerEvent keyEvent,
required PlutoGridStateManager stateManager,
required RawKeyboard state,
required HardwareKeyboard state,
}) {
for (final action in actions.entries) {
if (action.key.accepts(keyEvent.event, state)) {
Expand Down
18 changes: 14 additions & 4 deletions lib/src/manager/shortcut/pluto_grid_shortcut_action.dart
Original file line number Diff line number Diff line change
Expand Up @@ -250,10 +250,14 @@ class PlutoGridActionDefaultTab extends PlutoGridShortcutAction {

final saveIsEditing = stateManager.isEditing;

keyEvent.event.isShiftPressed
// keyEvent.event.isShiftPressed
// ? _moveCellPrevious(stateManager)
// : _moveCellNext(stateManager);
keyEvent.event.logicalKey.keyId == LogicalKeyboardKey.shiftLeft.keyId ||
keyEvent.event.logicalKey.keyId ==
LogicalKeyboardKey.shiftRight.keyId
? _moveCellPrevious(stateManager)
: _moveCellNext(stateManager);

stateManager.setEditing(stateManager.autoEditing || saveIsEditing);
}

Expand Down Expand Up @@ -408,7 +412,10 @@ class PlutoGridActionDefaultEnterKey extends PlutoGridShortcutAction {
}

if (enterKeyAction.isEditingAndMoveDown) {
if (keyEvent.event.isShiftPressed) {
if (keyEvent.event.logicalKey.keyId ==
LogicalKeyboardKey.shiftRight.keyId ||
keyEvent.event.logicalKey.keyId ==
LogicalKeyboardKey.shiftLeft.keyId) {
stateManager.moveCurrentCell(
PlutoMoveDirection.up,
notify: false,
Expand All @@ -420,7 +427,10 @@ class PlutoGridActionDefaultEnterKey extends PlutoGridShortcutAction {
);
}
} else if (enterKeyAction.isEditingAndMoveRight) {
if (keyEvent.event.isShiftPressed) {
if (keyEvent.event.logicalKey.keyId ==
LogicalKeyboardKey.shiftRight.keyId ||
keyEvent.event.logicalKey.keyId ==
LogicalKeyboardKey.shiftLeft.keyId) {
stateManager.moveCurrentCell(
PlutoMoveDirection.left,
force: true,
Expand Down
4 changes: 2 additions & 2 deletions lib/src/pluto_grid.dart
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@ class PlutoGridState extends PlutoStateWithChange<PlutoGrid> {
}
}

KeyEventResult _handleGridFocusOnKey(FocusNode focusNode, RawKeyEvent event) {
KeyEventResult _handleGridFocusOnKey(FocusNode focusNode, KeyEvent event) {
if (_keyManager.eventResult.isSkip == false) {
_keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: focusNode,
Expand All @@ -608,7 +608,7 @@ class PlutoGridState extends PlutoStateWithChange<PlutoGrid> {
Widget build(BuildContext context) {
return FocusScope(
onFocusChange: _stateManager.setKeepFocus,
onKey: _handleGridFocusOnKey,
onKeyEvent: _handleGridFocusOnKey,
child: _GridContainer(
stateManager: _stateManager,
child: LayoutBuilder(
Expand Down
4 changes: 2 additions & 2 deletions lib/src/ui/cells/popup_cell.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ mixin PopupCellState<T extends PopupCell> on State<T>
..text =
widget.column.formattedValueForDisplayInEditing(widget.cell.value);

textFocus = FocusNode(onKey: _handleKeyboardFocusOnKey);
textFocus = FocusNode(onKeyEvent: _handleKeyboardFocusOnKey);
}

@override
Expand Down Expand Up @@ -175,7 +175,7 @@ mixin PopupCellState<T extends PopupCell> on State<T>
}
}

KeyEventResult _handleKeyboardFocusOnKey(FocusNode node, RawKeyEvent event) {
KeyEventResult _handleKeyboardFocusOnKey(FocusNode node, KeyEvent event) {
var keyManager = PlutoKeyManagerEvent(
focusNode: node,
event: event,
Expand Down
4 changes: 2 additions & 2 deletions lib/src/ui/cells/text_cell.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ mixin TextCellState<T extends TextCell> on State<T> implements TextFieldProps {
void initState() {
super.initState();

cellFocus = FocusNode(onKey: _handleOnKey);
cellFocus = FocusNode(onKeyEvent: _handleOnKey);

widget.stateManager.setTextEditingController(_textController);

Expand Down Expand Up @@ -172,7 +172,7 @@ mixin TextCellState<T extends TextCell> on State<T> implements TextFieldProps {
});
}

KeyEventResult _handleOnKey(FocusNode node, RawKeyEvent event) {
KeyEventResult _handleOnKey(FocusNode node, KeyEvent event) {
var keyManager = PlutoKeyManagerEvent(
focusNode: node,
event: event,
Expand Down
4 changes: 2 additions & 2 deletions lib/src/ui/columns/pluto_column_filter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class PlutoColumnFilterState extends PlutoStateWithChange<PlutoColumnFilter> {
initState() {
super.initState();

_focusNode = FocusNode(onKey: _handleOnKey);
_focusNode = FocusNode(onKeyEvent: _handleOnKey);

widget.column.setFilterFocusNode(_focusNode);

Expand Down Expand Up @@ -145,7 +145,7 @@ class PlutoColumnFilterState extends PlutoStateWithChange<PlutoColumnFilter> {
stateManager.notifyListeners();
}

KeyEventResult _handleOnKey(FocusNode node, RawKeyEvent event) {
KeyEventResult _handleOnKey(FocusNode node, KeyEvent event) {
var keyManager = PlutoKeyManagerEvent(
focusNode: node,
event: event,
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
44 changes: 44 additions & 0 deletions packages/pluto_grid_export/example/ios/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Uncomment this line to define a global platform for your project
# platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}

def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end

File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
use_frameworks!
use_modular_headers!

flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import FlutterMacOS
import Foundation

import file_saver
import path_provider_macos
import path_provider_foundation
import printing

func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
Expand Down
43 changes: 43 additions & 0 deletions packages/pluto_grid_export/example/macos/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
platform :osx, '10.14'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
}

def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
end

File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_macos_podfile_setup

target 'Runner' do
use_frameworks!
use_modular_headers!

flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
end

post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_macos_build_settings(target)
end
end
8 changes: 4 additions & 4 deletions test/src/helper/pluto_key_manager_event_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ void main() {

late PlutoKeyManagerEvent? keyManagerEvent;

KeyEventResult callback(FocusNode node, RawKeyEvent event) {
KeyEventResult callback(FocusNode node, KeyEvent event) {
keyManagerEvent = PlutoKeyManagerEvent(
focusNode: node,
event: event,
Expand All @@ -28,12 +28,12 @@ void main() {

Future<void> buildWidget({
required WidgetTester tester,
required KeyEventResult Function(FocusNode, RawKeyEvent) callback,
required KeyEventResult Function(FocusNode, KeyEvent) callback,
}) async {
await tester.pumpWidget(MaterialApp(
home: FocusScope(
autofocus: true,
onKey: callback,
onKeyEvent: callback,
child: Focus(
focusNode: focusNode,
child: const SizedBox(width: 100, height: 100),
Expand Down Expand Up @@ -62,7 +62,7 @@ void main() {
(tester) async {
late PlutoKeyManagerEvent keyManagerEvent;

KeyEventResult callback(FocusNode node, RawKeyEvent event) {
KeyEventResult callback(FocusNode node, KeyEvent event) {
keyManagerEvent = PlutoKeyManagerEvent(
focusNode: node,
event: event,
Expand Down
28 changes: 14 additions & 14 deletions test/src/manager/pluto_grid_key_manager_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -98,8 +98,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -150,8 +150,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -204,8 +204,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -258,8 +258,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -311,8 +311,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down Expand Up @@ -440,8 +440,8 @@ void main() {
await tester.pumpWidget(
MaterialApp(
home: Material(
child: RawKeyboardListener(
onKey: (event) {
child: KeyboardListener(
onKeyEvent: (event) {
keyManager.subject.add(PlutoKeyManagerEvent(
focusNode: FocusNode(),
event: event,
Expand Down