Skip to content

Commit dd4f4bd

Browse files
authored
feat(tools): E4 Dateimanager – FileBrowserService, Screen, Tests + Shell-Verkabelung (#18)
feat(tools): E4 Dateimanager – FileBrowserService, Screen, Tests + Shell-Verkabelung
2 parents 1ad3d73 + 3fb6657 commit dd4f4bd

4 files changed

Lines changed: 856 additions & 6 deletions

File tree

‎lib/layouts/hub/hub_shell.dart‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:linux_assistant/layouts/linux_health/overview.dart';
77
import 'package:linux_assistant/layouts/main_screen/main_search.dart';
88
import 'package:linux_assistant/layouts/security_check/overview.dart';
99
import 'package:linux_assistant/layouts/settings/settings_start.dart';
10+
import 'package:linux_assistant/layouts/tools/file_manager.dart';
1011
import 'package:linux_assistant/layouts/tools/quick_notes.dart';
1112
import 'package:linux_assistant/main.dart';
1213
import 'package:linux_assistant/services/app_launcher.dart';
@@ -22,10 +23,10 @@ enum HubSection { dashboard, search, storage, health, security }
2223
///
2324
/// Two kinds live here: [HubTool.browser] fires a detached process launch and
2425
/// never changes the active section, while screen-based tools
25-
/// ([HubTool.quickNotes]; file manager and system monitor follow with E3/E4)
26-
/// render inside the hub frame like a section – the frame then tracks them in
27-
/// [_screenTool].
28-
enum HubTool { browser, quickNotes }
26+
/// ([HubTool.quickNotes], [HubTool.fileManager]; the system monitor follows
27+
/// with E3) render inside the hub frame like a section – the frame then
28+
/// tracks them in [_screenTool].
29+
enum HubTool { browser, quickNotes, fileManager }
2930

3031
/// Whether a section displays live system stats.
3132
///
@@ -225,6 +226,8 @@ class _HubShellState extends State<HubShell>
225226
return Icons.public;
226227
case HubTool.quickNotes:
227228
return Icons.edit_note;
229+
case HubTool.fileManager:
230+
return Icons.folder_open;
228231
}
229232
}
230233

@@ -234,6 +237,8 @@ class _HubShellState extends State<HubShell>
234237
return _tr(context, de: 'Browser', en: 'Browser');
235238
case HubTool.quickNotes:
236239
return _tr(context, de: 'Quick Notes', en: 'Quick Notes');
240+
case HubTool.fileManager:
241+
return _tr(context, de: 'Dateimanager', en: 'File manager');
237242
}
238243
}
239244

@@ -273,6 +278,8 @@ class _HubShellState extends State<HubShell>
273278
switch (key) {
274279
case HubTool.quickNotes:
275280
return const QuickNotesPage();
281+
case HubTool.fileManager:
282+
return const FileManagerPage();
276283
case HubTool.browser:
277284
// Never on screen: the browser tool launches an external process
278285
// and is never assigned as the active content key.
@@ -364,8 +371,8 @@ class _HubShellState extends State<HubShell>
364371
),
365372
// Werkzeuge-Sektion (Admin-Hub, Spec: docs/design/feature-spec-admin-hub.md).
366373
// Browser startet detached (kein Sectionswechsel); Quick Notes
367-
// rendert im Hub-Frame (Screen-Tool). E3/E4 (Dateimanager,
368-
// Systemmonitor) werden hier als weitere HubTool-Einträge
374+
// und Dateimanager rendern im Hub-Frame (Screen-Tools). E3
375+
// (Systemmonitor) wird hier als weiterer HubTool-Eintrag
369376
// ergänzt.
370377
if (!collapsed) _sectionLabel(context, t),
371378
for (final tool in HubTool.values)
@@ -406,6 +413,9 @@ class _HubShellState extends State<HubShell>
406413
case HubTool.quickNotes:
407414
_selectTool(HubTool.quickNotes);
408415
break;
416+
case HubTool.fileManager:
417+
_selectTool(HubTool.fileManager);
418+
break;
409419
}
410420
}
411421

0 commit comments

Comments
 (0)