Browse Source

增加文件双击支持

master
hejl 2 months ago
parent
commit
bbf74a31b0
  1. 83
      win_text_editor/lib/app/components/file_explorer.dart
  2. 14
      win_text_editor/lib/app/core/file_explorer_pane.dart
  3. 35
      win_text_editor/lib/app/modules/base_view.dart
  4. 25
      win_text_editor/lib/app/modules/content_search/content_search_view.dart
  5. 57
      win_text_editor/lib/app/modules/template_parser/template_parser_view.dart
  6. 142
      win_text_editor/pubspec.lock
  7. 3
      win_text_editor/windows/flutter/generated_plugin_registrant.cc
  8. 1
      win_text_editor/windows/flutter/generated_plugins.cmake

83
win_text_editor/lib/app/components/file_explorer.dart

@ -8,7 +8,10 @@ import '../providers/file_provider.dart'; @@ -8,7 +8,10 @@ import '../providers/file_provider.dart';
import 'dart:math';
class FileExplorer extends StatefulWidget {
const FileExplorer({super.key});
final Function(String)? onFileDoubleTap;
final Function(String)? onFolderDoubleTap;
const FileExplorer({super.key, this.onFileDoubleTap, this.onFolderDoubleTap});
@override
State<FileExplorer> createState() => _FileExplorerState();
@ -53,8 +56,15 @@ class _FileExplorerState extends State<FileExplorer> { @@ -53,8 +56,15 @@ class _FileExplorerState extends State<FileExplorer> {
final fileProvider = Provider.of<FileProvider>(context, listen: false);
if (node.isDirectory) {
await fileProvider.loadDirectoryContents(node);
//
if (widget.onFolderDoubleTap != null) {
widget.onFolderDoubleTap!(node.path);
}
} else {
// Handle file opening
//
if (widget.onFileDoubleTap != null) {
widget.onFileDoubleTap!(node.path);
}
}
}
@ -115,6 +125,8 @@ class _FileExplorerState extends State<FileExplorer> { @@ -115,6 +125,8 @@ class _FileExplorerState extends State<FileExplorer> {
key: ValueKey(node.path),
node: node,
onTap: () => _handleNodeTap(context, node),
onFileDoubleTap: widget.onFileDoubleTap,
onFolderDoubleTap: widget.onFolderDoubleTap,
);
},
),
@ -128,51 +140,64 @@ class _FileExplorerState extends State<FileExplorer> { @@ -128,51 +140,64 @@ class _FileExplorerState extends State<FileExplorer> {
),
);
}
}
//
int _countVisibleNodes(List<FileNode> nodes) {
int count = 0;
for (final node in nodes) {
count++;
if (node.isDirectory && node.isExpanded) {
count += _countVisibleNodes(node.children);
//
int _countVisibleNodes(List<FileNode> nodes) {
int count = 0;
for (final node in nodes) {
count++;
if (node.isDirectory && node.isExpanded) {
count += _countVisibleNodes(node.children);
}
}
return count;
}
return count;
}
//
FileNode _getVisibleNode(List<FileNode> nodes, int index) {
int current = 0;
for (final node in nodes) {
if (current == index) return node;
current++;
if (node.isDirectory && node.isExpanded) {
final childCount = _countVisibleNodes(node.children);
if (index - current < childCount) {
return _getVisibleNode(node.children, index - current);
//
FileNode _getVisibleNode(List<FileNode> nodes, int index) {
int current = 0;
for (final node in nodes) {
if (current == index) return node;
current++;
if (node.isDirectory && node.isExpanded) {
final childCount = _countVisibleNodes(node.children);
if (index - current < childCount) {
return _getVisibleNode(node.children, index - current);
}
current += childCount;
}
current += childCount;
}
throw Exception('Index out of bounds: $index (max: ${current - 1})');
}
throw Exception('Index out of bounds: $index (max: ${current - 1})');
}
class _FileNodeWidget extends StatelessWidget {
final FileNode node;
final VoidCallback onTap;
final Function(String)? onFileDoubleTap;
final Function(String)? onFolderDoubleTap;
const _FileNodeWidget({Key? key, required this.node, required this.onTap}) : super(key: key);
const _FileNodeWidget({
Key? key,
required this.node,
required this.onTap,
required this.onFileDoubleTap,
required this.onFolderDoubleTap,
}) : super(key: key);
@override
Widget build(BuildContext context) {
//final editorProvider = Provider.of<EditorProvider>(context, listen: false);
return InkWell(
onTap: onTap,
splashColor: Colors.transparent, //
highlightColor: Colors.grey.withOpacity(0.1), // 使
onDoubleTap: () {
if (node.isDirectory && onFolderDoubleTap != null) {
onFolderDoubleTap!(node.path);
} else if (!node.isDirectory && onFileDoubleTap != null) {
onFileDoubleTap!(node.path);
}
},
splashColor: Colors.transparent,
highlightColor: Colors.grey.withOpacity(0.1),
child: Container(
padding: const EdgeInsets.symmetric(vertical: 0),
child: ListTile(

14
win_text_editor/lib/app/core/file_explorer_pane.dart

@ -5,7 +5,10 @@ import 'package:win_text_editor/app/providers/file_provider.dart'; @@ -5,7 +5,10 @@ import 'package:win_text_editor/app/providers/file_provider.dart';
import 'package:win_text_editor/app/components/file_explorer.dart';
class FileExplorerPane extends StatelessWidget {
const FileExplorerPane({super.key});
final Function(String)? onFileDoubleTap;
final Function(String)? onFolderDoubleTap;
const FileExplorerPane({super.key, this.onFileDoubleTap, this.onFolderDoubleTap});
@override
Widget build(BuildContext context) {
@ -17,10 +20,13 @@ class FileExplorerPane extends StatelessWidget { @@ -17,10 +20,13 @@ class FileExplorerPane extends StatelessWidget {
width: _calculateWidth(context, fileProvider),
child: Column(
children: [
//
_buildHeader(context),
//
const Expanded(child: FileExplorer()),
Expanded(
child: FileExplorer(
onFileDoubleTap: onFileDoubleTap,
onFolderDoubleTap: onFolderDoubleTap,
),
),
],
),
),

35
win_text_editor/lib/app/modules/base_view.dart

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/app/core/tab_manager.dart';
abstract class BaseView extends StatefulWidget {
final String tabId;
const BaseView({super.key, required this.tabId});
@override
State<BaseView> createState() => BaseViewState();
//
void openFolder(String folderPath);
//
void openFile(String filePath);
}
class BaseViewState extends State<BaseView> {
late TabManager _tabManager;
TabManager get tabManager => _tabManager;
@override
void initState() {
super.initState();
_tabManager = Provider.of<TabManager>(context, listen: false);
}
@override
Widget build(BuildContext context) {
return Container(); //
}
}

25
win_text_editor/lib/app/modules/content_search/content_search_view.dart

@ -1,29 +1,38 @@ @@ -1,29 +1,38 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/app/core/tab_manager.dart';
import 'package:win_text_editor/app/modules/base_view.dart';
import 'content_search_controller.dart';
import 'directory_settings.dart';
import 'search_settings.dart';
import 'results_view.dart';
class ContentSearchView extends StatefulWidget {
final String tabId;
class ContentSearchView extends BaseView {
const ContentSearchView({super.key, required String tabId}) : super(tabId: tabId);
const ContentSearchView({super.key, required this.tabId});
@override
void openFolder(String folderPath) {
//
print('Opening folder: $folderPath');
}
@override
void openFile(String filePath) {
//
print('Opening file: $filePath');
}
@override
State<ContentSearchView> createState() => ContentSearchViewState();
State<BaseView> createState() => ContentSearchViewState();
}
class ContentSearchViewState extends State<ContentSearchView> {
class ContentSearchViewState extends BaseViewState {
late final ContentSearchController _controller;
@override
void initState() {
super.initState();
_controller = ContentSearchController(
tabManager: Provider.of<TabManager>(context, listen: false),
);
_controller = ContentSearchController(tabManager: super.tabManager);
}
@override

57
win_text_editor/lib/app/modules/template_parser/template_parser_view.dart

@ -1,24 +1,27 @@ @@ -1,24 +1,27 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/app/core/tab_manager.dart';
import 'package:win_text_editor/app/components/text_editor.dart';
import 'package:win_text_editor/app/modules/base_view.dart';
class TemplateParserView extends StatefulWidget {
final String tabId;
class TemplateParserView extends BaseView {
const TemplateParserView({super.key, required String tabId}) : super(tabId: tabId);
const TemplateParserView({super.key, required this.tabId});
@override
void openFolder(String folderPath) {
//
print('Opening folder: $folderPath');
}
@override
void openFile(String filePath) {
//
print('Opening file: $filePath');
}
@override
State<TemplateParserView> createState() => TemplateParserViewState();
State<BaseView> createState() => TemplateParserViewState();
}
class TemplateParserViewState extends State<TemplateParserView> {
late TabManager _provider;
String? _editor1FileName;
String? _editor2FileName;
String _editor1Content = '';
String _editor2Content = '';
int _activeEditorIndex = 0; // 01
class TemplateParserViewState extends BaseViewState {
final GlobalKey<TextEditorState> _editor1Key = GlobalKey();
final GlobalKey<TextEditorState> _editor2Key = GlobalKey();
@ -28,15 +31,7 @@ class TemplateParserViewState extends State<TemplateParserView> { @@ -28,15 +31,7 @@ class TemplateParserViewState extends State<TemplateParserView> {
@override
void initState() {
super.initState();
_provider = Provider.of<TabManager>(context, listen: false);
_provider.registerTextTabController(widget.tabId, this);
final tab = _provider.getTabById(widget.tabId);
if (tab != null) {
_editor1Content = tab.content;
_editor2Content = tab.content;
_editor1FileName = tab.fileName;
_editor2FileName = tab.fileName;
}
WidgetsBinding.instance.addPostFrameCallback((_) {
_setupFocusListeners();
});
@ -47,11 +42,6 @@ class TemplateParserViewState extends State<TemplateParserView> { @@ -47,11 +42,6 @@ class TemplateParserViewState extends State<TemplateParserView> {
@override
Widget build(BuildContext context) {
final tab = _provider.getTabById(widget.tabId);
if (tab == null) {
return const Center(child: Text('选项卡不存在'));
}
return SingleChildScrollView(
child: ConstrainedBox(
constraints: const BoxConstraints(minHeight: 400),
@ -62,17 +52,10 @@ class TemplateParserViewState extends State<TemplateParserView> { @@ -62,17 +52,10 @@ class TemplateParserViewState extends State<TemplateParserView> {
child: SizedBox(
height: MediaQuery.of(context).size.height / 2 - 100,
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: _activeEditorIndex == 0 ? Colors.blue : Colors.transparent,
width: 2.0,
),
),
child: TextEditor(
key: _editor1Key,
tabId: '${widget.tabId}_1',
title: '源文本', //
initialContent: _editor1Content,
),
),
),
@ -82,16 +65,12 @@ class TemplateParserViewState extends State<TemplateParserView> { @@ -82,16 +65,12 @@ class TemplateParserViewState extends State<TemplateParserView> {
height: MediaQuery.of(context).size.height / 2 - 100,
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: _activeEditorIndex == 1 ? Colors.blue : Colors.transparent,
width: 2.0,
),
border: Border.all(color: Colors.transparent, width: 2.0),
),
child: TextEditor(
key: _editor2Key,
tabId: '${widget.tabId}_2',
title: '目标文本', //
initialContent: _editor2Content,
),
),
),

142
win_text_editor/pubspec.lock

@ -6,7 +6,7 @@ packages: @@ -6,7 +6,7 @@ packages:
description:
name: async
sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.12.0"
bitsdojo_window:
@ -14,7 +14,7 @@ packages: @@ -14,7 +14,7 @@ packages:
description:
name: bitsdojo_window
sha256: "88ef7765dafe52d97d7a3684960fb5d003e3151e662c18645c1641c22b873195"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.6"
bitsdojo_window_linux:
@ -22,7 +22,7 @@ packages: @@ -22,7 +22,7 @@ packages:
description:
name: bitsdojo_window_linux
sha256: "9519c0614f98be733e0b1b7cb15b827007886f6fe36a4fb62cf3d35b9dd578ab"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.4"
bitsdojo_window_macos:
@ -30,7 +30,7 @@ packages: @@ -30,7 +30,7 @@ packages:
description:
name: bitsdojo_window_macos
sha256: f7c5be82e74568c68c5b8449e2c5d8fd12ec195ecd70745a7b9c0f802bb0268f
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.4"
bitsdojo_window_platform_interface:
@ -38,7 +38,7 @@ packages: @@ -38,7 +38,7 @@ packages:
description:
name: bitsdojo_window_platform_interface
sha256: "65daa015a0c6dba749bdd35a0f092e7a8ba8b0766aa0480eb3ef808086f6e27c"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.2"
bitsdojo_window_windows:
@ -46,7 +46,7 @@ packages: @@ -46,7 +46,7 @@ packages:
description:
name: bitsdojo_window_windows
sha256: fa982cf61ede53f483e50b257344a1c250af231a3cdc93a7064dd6dc0d720b68
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.6"
boolean_selector:
@ -54,7 +54,7 @@ packages: @@ -54,7 +54,7 @@ packages:
description:
name: boolean_selector
sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
characters:
@ -62,7 +62,7 @@ packages: @@ -62,7 +62,7 @@ packages:
description:
name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.4.0"
clock:
@ -70,7 +70,7 @@ packages: @@ -70,7 +70,7 @@ packages:
description:
name: clock
sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.1.2"
collection:
@ -78,7 +78,7 @@ packages: @@ -78,7 +78,7 @@ packages:
description:
name: collection
sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.19.1"
cross_file:
@ -86,7 +86,7 @@ packages: @@ -86,7 +86,7 @@ packages:
description:
name: cross_file
sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.3.4+2"
expandable:
@ -94,7 +94,7 @@ packages: @@ -94,7 +94,7 @@ packages:
description:
name: expandable
sha256: "9604d612d4d1146dafa96c6d8eec9c2ff0994658d6d09fed720ab788c7f5afc2"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "5.0.1"
fake_async:
@ -102,7 +102,7 @@ packages: @@ -102,7 +102,7 @@ packages:
description:
name: fake_async
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
ffi:
@ -110,7 +110,7 @@ packages: @@ -110,7 +110,7 @@ packages:
description:
name: ffi
sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
file_picker:
@ -118,7 +118,7 @@ packages: @@ -118,7 +118,7 @@ packages:
description:
name: file_picker
sha256: "77f8e81d22d2a07d0dee2c62e1dda71dc1da73bf43bb2d45af09727406167964"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "10.1.9"
flutter:
@ -126,20 +126,12 @@ packages: @@ -126,20 +126,12 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_js:
dependency: "direct main"
description:
name: flutter_js
sha256: "0d22d73a474b5b80c3ab5508e7c3eab6fb20beea9dec45bbd21088cfd27a5e61"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.8.3"
flutter_lints:
dependency: "direct dev"
description:
name: flutter_lints
sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.0.3"
flutter_plugin_android_lifecycle:
@ -147,7 +139,7 @@ packages: @@ -147,7 +139,7 @@ packages:
description:
name: flutter_plugin_android_lifecycle
sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.0.28"
flutter_syntax_view:
@ -155,7 +147,7 @@ packages: @@ -155,7 +147,7 @@ packages:
description:
name: flutter_syntax_view
sha256: c5017bbedfdcf538daba765e16541fcb26434071655ca00cea7cbc205a70246a
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "4.1.7"
flutter_test:
@ -168,28 +160,12 @@ packages: @@ -168,28 +160,12 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
http:
dependency: transitive
description:
name: http
sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b"
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
http_parser:
dependency: transitive
description:
name: http_parser
sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.1.2"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "10.0.8"
leak_tracker_flutter_testing:
@ -197,7 +173,7 @@ packages: @@ -197,7 +173,7 @@ packages:
description:
name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "3.0.9"
leak_tracker_testing:
@ -205,7 +181,7 @@ packages: @@ -205,7 +181,7 @@ packages:
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
lints:
@ -213,7 +189,7 @@ packages: @@ -213,7 +189,7 @@ packages:
description:
name: lints
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.1"
matcher:
@ -221,7 +197,7 @@ packages: @@ -221,7 +197,7 @@ packages:
description:
name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.12.17"
material_color_utilities:
@ -229,7 +205,7 @@ packages: @@ -229,7 +205,7 @@ packages:
description:
name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.11.1"
meta:
@ -237,7 +213,7 @@ packages: @@ -237,7 +213,7 @@ packages:
description:
name: meta
sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.16.0"
nested:
@ -245,7 +221,7 @@ packages: @@ -245,7 +221,7 @@ packages:
description:
name: nested
sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
path:
@ -253,7 +229,7 @@ packages: @@ -253,7 +229,7 @@ packages:
description:
name: path
sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.9.1"
path_provider:
@ -261,7 +237,7 @@ packages: @@ -261,7 +237,7 @@ packages:
description:
name: path_provider
sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.5"
path_provider_android:
@ -269,7 +245,7 @@ packages: @@ -269,7 +245,7 @@ packages:
description:
name: path_provider_android
sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.2.17"
path_provider_foundation:
@ -277,7 +253,7 @@ packages: @@ -277,7 +253,7 @@ packages:
description:
name: path_provider_foundation
sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.4.1"
path_provider_linux:
@ -285,7 +261,7 @@ packages: @@ -285,7 +261,7 @@ packages:
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
@ -293,7 +269,7 @@ packages: @@ -293,7 +269,7 @@ packages:
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
@ -301,7 +277,7 @@ packages: @@ -301,7 +277,7 @@ packages:
description:
name: path_provider_windows
sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.3.0"
platform:
@ -309,7 +285,7 @@ packages: @@ -309,7 +285,7 @@ packages:
description:
name: platform
sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "3.1.6"
plugin_platform_interface:
@ -317,7 +293,7 @@ packages: @@ -317,7 +293,7 @@ packages:
description:
name: plugin_platform_interface
sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.8"
provider:
@ -325,7 +301,7 @@ packages: @@ -325,7 +301,7 @@ packages:
description:
name: provider
sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "6.1.5"
screen_retriever:
@ -333,7 +309,7 @@ packages: @@ -333,7 +309,7 @@ packages:
description:
name: screen_retriever
sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.1.9"
sky_engine:
@ -346,7 +322,7 @@ packages: @@ -346,7 +322,7 @@ packages:
description:
name: source_span
sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.10.1"
stack_trace:
@ -354,7 +330,7 @@ packages: @@ -354,7 +330,7 @@ packages:
description:
name: stack_trace
sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.12.1"
stream_channel:
@ -362,7 +338,7 @@ packages: @@ -362,7 +338,7 @@ packages:
description:
name: stream_channel
sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
string_scanner:
@ -370,23 +346,15 @@ packages: @@ -370,23 +346,15 @@ packages:
description:
name: string_scanner
sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.4.1"
sync_http:
dependency: transitive
description:
name: sync_http
sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.3.1"
syncfusion_flutter_core:
dependency: transitive
description:
name: syncfusion_flutter_core
sha256: "9f0a4593f7642b2f106e329734d0e5fc746baf8d0a59495eec586cd0d9ba7d02"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "22.2.12"
syncfusion_flutter_datagrid:
@ -394,7 +362,7 @@ packages: @@ -394,7 +362,7 @@ packages:
description:
name: syncfusion_flutter_datagrid
sha256: ae93228333ebed39bc59c90bc40cfd3d5a0361591a330fe551b355d3a49a265c
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "22.2.12"
term_glyph:
@ -402,7 +370,7 @@ packages: @@ -402,7 +370,7 @@ packages:
description:
name: term_glyph
sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.2.2"
test_api:
@ -410,23 +378,15 @@ packages: @@ -410,23 +378,15 @@ packages:
description:
name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
url: "https://pub.flutter-io.cn"
source: hosted
version: "1.4.0"
vector_math:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "2.1.4"
vm_service:
@ -434,7 +394,7 @@ packages: @@ -434,7 +394,7 @@ packages:
description:
name: vm_service
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "14.3.1"
web:
@ -442,7 +402,7 @@ packages: @@ -442,7 +402,7 @@ packages:
description:
name: web
sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
win32:
@ -450,7 +410,7 @@ packages: @@ -450,7 +410,7 @@ packages:
description:
name: win32
sha256: "329edf97fdd893e0f1e3b9e88d6a0e627128cc17cc316a8d67fda8f1451178ba"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "5.13.0"
window_manager:
@ -458,7 +418,7 @@ packages: @@ -458,7 +418,7 @@ packages:
description:
name: window_manager
sha256: "8699323b30da4cdbe2aa2e7c9de567a6abd8a97d9a5c850a3c86dcd0b34bbfbf"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "0.3.9"
xdg_directories:
@ -466,7 +426,7 @@ packages: @@ -466,7 +426,7 @@ packages:
description:
name: xdg_directories
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.flutter-io.cn"
url: "https://pub.dev"
source: hosted
version: "1.1.0"
sdks:

3
win_text_editor/windows/flutter/generated_plugin_registrant.cc

@ -7,15 +7,12 @@ @@ -7,15 +7,12 @@
#include "generated_plugin_registrant.h"
#include <bitsdojo_window_windows/bitsdojo_window_plugin.h>
#include <flutter_js/flutter_js_plugin.h>
#include <screen_retriever/screen_retriever_plugin.h>
#include <window_manager/window_manager_plugin.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
BitsdojoWindowPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("BitsdojoWindowPlugin"));
FlutterJsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterJsPlugin"));
ScreenRetrieverPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ScreenRetrieverPlugin"));
WindowManagerPluginRegisterWithRegistrar(

1
win_text_editor/windows/flutter/generated_plugins.cmake

@ -4,7 +4,6 @@ @@ -4,7 +4,6 @@
list(APPEND FLUTTER_PLUGIN_LIST
bitsdojo_window_windows
flutter_js
screen_retriever
window_manager
)

Loading…
Cancel
Save