53 lines
2.2 KiB
Dart
53 lines
2.2 KiB
Dart
import 'delete_flow.dart';
|
|
import 'drop_flow.dart';
|
|
import 'explorer_controller.dart';
|
|
import 'explorer_jobs.dart';
|
|
import 'explorer_pane.dart';
|
|
import 'explorer_select.dart';
|
|
import 'open_flow.dart';
|
|
import 'rename_flow.dart';
|
|
import 'rsync_flow.dart';
|
|
import 'search_flow.dart';
|
|
import 'tools_flow.dart';
|
|
import 'transfer_flow.dart';
|
|
import 'view_dialogs.dart';
|
|
import 'write_guard.dart';
|
|
import '../../platform/windows/recycle_bin.dart' show RecycleBinBackend;
|
|
|
|
/// 약속 (E5d-6): 탐색기 하나의 흐름 모듈 묶음 - 버튼 · 줄 메뉴 · 단축키 · 끌어 놓기가 같은 것을 쓴다 (작업 목록 · 담아 둔 것이 하나).
|
|
/// 처음 쓸 때 만든다. 화면 배치에서 오는 것 (다른 창의 폴더 · 창이 둘인지 · 앱 휴지통을 쓰는 기기인지) 은 함수로 받는다
|
|
class ExplorerFlows {
|
|
ExplorerFlows(this.ctl, this.sel,
|
|
{required this.androidTrash, required this.recycleBin, required this.otherDirOf, required this.otherDir, required this.twoPanes});
|
|
|
|
final ExplorerController ctl;
|
|
final ExplorerSelect sel;
|
|
final bool Function() androidTrash;
|
|
final RecycleBinBackend Function() recycleBin;
|
|
|
|
/// [pane] 옆 창의 지금 폴더 (두 창일 때만, 압축 풀 곳)
|
|
final String? Function(ExplorerPane pane) otherDirOf;
|
|
|
|
/// 복사 · 이동 갈 곳 (두 창 · 숨은 다른 창, 없으면 담아 두기)
|
|
final String? Function() otherDir;
|
|
final bool Function() twoPanes;
|
|
|
|
late final guard = ExplorerGuard(ctl);
|
|
late final jobs = ExplorerJobs(ctl);
|
|
late final transfers = ExplorerTransfers(ctl, guard, jobs);
|
|
late final rsync = ExplorerRsyncFlow(ctl, jobs, transfers);
|
|
late final deletes = ExplorerDeleteFlow(ctl, sel, guard, androidTrash: androidTrash, recycleBin: recycleBin);
|
|
late final opener = ExplorerOpener(ctl, sel, guard, otherDirOf: otherDirOf);
|
|
late final renames = ExplorerRenames(ctl, guard);
|
|
late final tools = ExplorerTools(ctl, deletes, transfers);
|
|
late final dialogs = ExplorerViewDialogs(ctl, twoPanes: twoPanes);
|
|
late final search = ExplorerSearch(ctl, opener, transfers, deletes, otherDir: otherDir);
|
|
late final drops = ExplorerDrops(ctl, sel, guard, transfers);
|
|
|
|
void dispose() {
|
|
search.dispose();
|
|
transfers.dispose();
|
|
jobs.dispose();
|
|
}
|
|
}
|