24 changed files with 198 additions and 154 deletions
@ -1,2 +1,2 @@
@@ -1,2 +1,2 @@
|
||||
outline_name_black_list: |
||||
- 历史,日志,名称,比例,数量,金额,次数,属性,对应,分类,姓名,单位,总数,行使,子项,占比,记录,列表,目标,字段,字符串,动作 |
||||
- 历史,日志,名称,比例,数量,金额,次数,属性,对应,分类,姓名,单位,总数,行使,子项,占比,记录,列表,目标,字段,字符串,动作,方式 |
@ -1,13 +0,0 @@
@@ -1,13 +0,0 @@
|
||||
import 'package:win_text_editor/shared/base/base_content_controller.dart'; |
||||
|
||||
class OutlineController extends BaseContentController { |
||||
@override |
||||
void onOpenFile(String filePath) { |
||||
// TODO: implement onOpenFile |
||||
} |
||||
|
||||
@override |
||||
void onOpenFolder(String folderPath) { |
||||
// TODO: implement onOpenFolder |
||||
} |
||||
} |
@ -1,73 +0,0 @@
@@ -1,73 +0,0 @@
|
||||
import 'package:flutter/material.dart'; |
||||
import 'package:provider/provider.dart'; |
||||
import 'package:win_text_editor/framework/controllers/tab_items_controller.dart'; |
||||
import 'package:win_text_editor/modules/outline/controllers/outline_controller.dart'; |
||||
import 'package:win_text_editor/modules/outline/controllers/outline_provider.dart'; // 新增导入 |
||||
import 'package:win_text_editor/modules/outline/widgets/outline_explorer.dart'; |
||||
|
||||
class OutlineView extends StatefulWidget { |
||||
final String tabId; |
||||
const OutlineView({super.key, required this.tabId}); |
||||
|
||||
@override |
||||
State<OutlineView> createState() => _OutlineViewState(); |
||||
} |
||||
|
||||
class _OutlineViewState extends State<OutlineView> { |
||||
late final OutlineController _controller; |
||||
late final OutlineProvider _outlineProvider; // 新增OutlineProvider实例 |
||||
bool _isControllerFromTabManager = false; |
||||
|
||||
get tabManager => Provider.of<TabItemsController>(context, listen: false); |
||||
|
||||
@override |
||||
void initState() { |
||||
super.initState(); |
||||
|
||||
_outlineProvider = OutlineProvider(); // 初始化OutlineProvider |
||||
|
||||
final controllerFromManager = tabManager.getController(widget.tabId); |
||||
if (controllerFromManager != null) { |
||||
_controller = controllerFromManager; |
||||
_isControllerFromTabManager = true; |
||||
} else { |
||||
_controller = OutlineController(); |
||||
_isControllerFromTabManager = false; |
||||
tabManager.registerController(widget.tabId, _controller); |
||||
} |
||||
} |
||||
|
||||
@override |
||||
void dispose() { |
||||
if (!_isControllerFromTabManager) { |
||||
_controller.dispose(); |
||||
} |
||||
_outlineProvider.dispose(); // 确保销毁provider |
||||
super.dispose(); |
||||
} |
||||
|
||||
@override |
||||
Widget build(BuildContext context) { |
||||
return ChangeNotifierProvider<OutlineProvider>.value( |
||||
value: _outlineProvider, // 提供OutlineProvider |
||||
child: Row( |
||||
children: [ |
||||
const VerticalDivider(width: 1), |
||||
SizedBox( |
||||
width: 300, |
||||
child: OutlineExplorer( |
||||
onFileDoubleTap: (path) { |
||||
// 处理文件双击 |
||||
}, |
||||
onFolderDoubleTap: (path) { |
||||
// 处理文件夹双击 |
||||
}, |
||||
), |
||||
), |
||||
const VerticalDivider(width: 1), |
||||
const Expanded(child: Center(child: Text('大纲'))), |
||||
], |
||||
), |
||||
); |
||||
} |
||||
} |
Loading…
Reference in new issue