Browse Source

重构-重命名

master
hejl 2 months ago
parent
commit
efd610da8d
  1. 20
      win_text_editor/lib/framework/controllers/tab_items_controller.dart
  2. 8
      win_text_editor/lib/framework/widgets/app_scaffold.dart
  3. 8
      win_text_editor/lib/framework/widgets/tab_view.dart
  4. 6
      win_text_editor/lib/menus/menu_actions.dart
  5. 4
      win_text_editor/lib/modules/content_search/widgets/content_search_view.dart

20
win_text_editor/lib/framework/controllers/tab_manager.dart → win_text_editor/lib/framework/controllers/tab_items_controller.dart

@ -4,9 +4,9 @@ import 'package:win_text_editor/modules/content_search/controllers/content_searc @@ -4,9 +4,9 @@ import 'package:win_text_editor/modules/content_search/controllers/content_searc
import 'package:win_text_editor/shared/base/base_content_controller.dart';
import 'package:win_text_editor/framework/controllers/logger.dart';
class TabManager with ChangeNotifier {
class TabItemsController with ChangeNotifier {
final List<AppTab> _tabs = [];
final Map<String, BaseContentController> _tabControllers = {}; // Tab的Controller
final Map<String, BaseContentController> _contentControllers = {}; // Tab的Controller
String? _activeTabId;
List<AppTab> get tabs => _tabs;
@ -37,7 +37,7 @@ class TabManager with ChangeNotifier { @@ -37,7 +37,7 @@ class TabManager with ChangeNotifier {
// provider
final controller = createContentController(newTab);
if (controller != null) {
_tabControllers[id] = controller;
_contentControllers[id] = controller;
}
_activeTabId = id;
notifyListeners();
@ -63,14 +63,14 @@ class TabManager with ChangeNotifier { @@ -63,14 +63,14 @@ class TabManager with ChangeNotifier {
BaseContentController? get activeContentController {
if (_activeTabId == null) return null;
final controller = _tabControllers[_activeTabId];
final controller = _contentControllers[_activeTabId];
return controller is BaseContentController ? controller : null;
}
void closeTab(String tabId) {
final controller = _tabControllers[tabId];
final controller = _contentControllers[tabId];
controller?.dispose(); // Controller
_tabControllers.remove(tabId); // Controller引用
_contentControllers.remove(tabId); // Controller引用
_tabs.removeWhere((tab) => tab.id == tabId); // Tab
if (_activeTabId == tabId) {
@ -80,16 +80,16 @@ class TabManager with ChangeNotifier { @@ -80,16 +80,16 @@ class TabManager with ChangeNotifier {
}
void registerController(String tabId, BaseContentController controller) {
_tabControllers[tabId] = controller;
_contentControllers[tabId] = controller;
}
T? getController<T extends ChangeNotifier>(String tabId) {
return _tabControllers[tabId] as T?;
return _contentControllers[tabId] as T?;
}
void disposeController(String tabId) {
_tabControllers[tabId]?.dispose();
_tabControllers.remove(tabId);
_contentControllers[tabId]?.dispose();
_contentControllers.remove(tabId);
}
void setActiveTab(String tabId) {

8
win_text_editor/lib/framework/widgets/app_scaffold.dart

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
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/framework/widgets/file_explorer_pane.dart';
import 'package:win_text_editor/framework/controllers/tab_manager.dart';
import 'package:win_text_editor/framework/widgets/tab_view.dart';
import 'package:win_text_editor/menus/app_menu.dart';
import 'package:win_text_editor/framework/controllers/file_provider.dart';
@ -15,7 +15,7 @@ class AppScaffold extends StatelessWidget { @@ -15,7 +15,7 @@ class AppScaffold extends StatelessWidget {
return MultiProvider(
providers: [
ChangeNotifierProvider(create: (_) => FileProvider()),
ChangeNotifierProvider(create: (_) => TabManager()),
ChangeNotifierProvider(create: (_) => TabItemsController()),
],
child: Scaffold(
backgroundColor: Colors.grey[100],
@ -26,7 +26,7 @@ class AppScaffold extends StatelessWidget { @@ -26,7 +26,7 @@ class AppScaffold extends StatelessWidget {
child: Row(
children: [
// -
Consumer<TabManager>(
Consumer<TabItemsController>(
builder: (context, tabManager, child) {
return FileExplorerPane(
onFileDoubleTap: (path) => tabManager.handleFileDoubleTap(path),
@ -36,7 +36,7 @@ class AppScaffold extends StatelessWidget { @@ -36,7 +36,7 @@ class AppScaffold extends StatelessWidget {
),
//
Expanded(
child: Consumer<TabManager>(
child: Consumer<TabItemsController>(
builder:
(_, manager, __) =>
TabView(tabs: manager.tabs, currentTabId: manager.activeTabId),

8
win_text_editor/lib/framework/widgets/tab_view.dart

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/shared/components/text_editor.dart';
import 'package:win_text_editor/framework/controllers/tab_manager.dart';
import 'package:win_text_editor/framework/controllers/tab_items_controller.dart';
import 'package:win_text_editor/framework/models/tab_model.dart';
import 'package:win_text_editor/modules/content_search/widgets/content_search_view.dart';
@ -32,8 +32,8 @@ class _TabViewState extends State<TabView> { @@ -32,8 +32,8 @@ class _TabViewState extends State<TabView> {
return _TabItem(
tab: tab,
isActive: tab.id == widget.currentTabId,
onClose: () => context.read<TabManager>().closeTab(tab.id),
onTap: () => context.read<TabManager>().setActiveTab(tab.id),
onClose: () => context.read<TabItemsController>().closeTab(tab.id),
onTap: () => context.read<TabItemsController>().setActiveTab(tab.id),
);
},
),
@ -41,7 +41,7 @@ class _TabViewState extends State<TabView> { @@ -41,7 +41,7 @@ class _TabViewState extends State<TabView> {
}
Widget _buildTabContent() {
final tabManager = Provider.of<TabManager>(context, listen: false);
final tabManager = Provider.of<TabItemsController>(context, listen: false);
final activeIndex = widget.tabs.indexWhere((t) => t.id == widget.currentTabId);
if (activeIndex == -1) return const Center(child: Text('无活动标签页'));

6
win_text_editor/lib/menus/menu_actions.dart

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:file_picker/file_picker.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/framework/controllers/tab_manager.dart';
import 'package:win_text_editor/framework/controllers/tab_items_controller.dart';
import 'package:win_text_editor/menus/menu_constants.dart';
import 'package:win_text_editor/framework/controllers/file_provider.dart';
import 'package:collection/collection.dart';
@ -48,7 +48,7 @@ class MenuActions { @@ -48,7 +48,7 @@ class MenuActions {
}
static Future<void> _openContentSearch(BuildContext context) async {
final tabManager = Provider.of<TabManager>(context, listen: false);
final tabManager = Provider.of<TabItemsController>(context, listen: false);
// Create new tab with unique ID
final tabId = DateTime.now().millisecondsSinceEpoch.toString();
@ -63,7 +63,7 @@ class MenuActions { @@ -63,7 +63,7 @@ class MenuActions {
}
static Future<void> _openTemplateParser(BuildContext context) async {
final tabManager = Provider.of<TabManager>(context, listen: false);
final tabManager = Provider.of<TabItemsController>(context, listen: false);
// 使 firstWhereOrNull
final existingTab = tabManager.tabs.firstWhereOrNull(

4
win_text_editor/lib/modules/content_search/widgets/content_search_view.dart

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:win_text_editor/framework/controllers/tab_manager.dart';
import 'package:win_text_editor/framework/controllers/tab_items_controller.dart';
import '../controllers/content_search_controller.dart';
import 'directory_settings.dart';
import 'search_settings.dart';
@ -18,7 +18,7 @@ class ContentSearchView extends StatefulWidget { @@ -18,7 +18,7 @@ class ContentSearchView extends StatefulWidget {
class ContentSearchViewState extends State<ContentSearchView> {
late final ContentSearchController _controller;
get tabManager => Provider.of<TabManager>(context, listen: false);
get tabManager => Provider.of<TabItemsController>(context, listen: false);
@override
void initState() {

Loading…
Cancel
Save