How fvffv/drivedesktop works
DriveDesktop is a cross-platform Avalonia client for a cloud-drive service. Its main workflow takes a signed-in user from browsing and searching files through preview, file operations, transfer, and sharing; settings and usage analytics support that workflow. A separate plugin system extends file menus and app entry points using isolated plugin processes. The README documents capabilities beyond the sampled excerpts, so those branches are represented at subsystem level; links are limited to documented or sampled interactions.
Main entry points: PluginManager.cs Plugin manager · FileTransmissionService.cs Transfer center · ICloudDriveApi.cs Cloud API contract · PluginSession.cs Plugin sessions
Components 25
Desktop client
- Application startup
App.axaml.cs - Main window
Views/MainWindow.axaml.cs - Home view
Views/Home.axaml.cs
File workflows
- File management
ViewModels/FilePageViewModel.cs - Search and filters
ViewModels/SearchPageViewModel.cs - Content previews
Components/UserControls/DocumentViewDialog.axaml.cs - Sharing
ViewModels/FileSharePageViewModel.cs - Transfer center
Services/FileTransmissionService.cs - Chunked uploads
Services/MultipartUploadService.cs - Transfer view model
ViewModels/FileTransmissionViewModel.cs
Account services
- Cloud API contract
Services/ICloudDriveApi.cs - Web API client
Services/WebApiService.cs - Account and preferences
Services/UserInfoService.cs - User settings
ViewModels/SettingPageViewModel.cs - Usage dashboard
ViewModels/StatisticsDashboardPageViewModel.cs
Plugin platform
- Plugin management UI
Services/Plugins/DesktopPluginService.cs - Plugin manager
PluginPlatform/Drive.Plugin.Hosting/PluginManager.cs - Plugin sessions
PluginPlatform/Drive.Plugin.Hosting/PluginSession.cs - Plugin runner
PluginPlatform/Drive.Plugin.Runner/Program.cs - Plugin SDK
PluginPlatform/Drive.Plugin.SDK/PluginContext.cs - Plugin storage
PluginPlatform/Drive.Plugin.Hosting/PluginStorage.cs
Built-in plugins
- Archive preview
PluginPlatform/plugins/ArchivePreviewPlugin/Plugin.cs - Image tools
PluginPlatform/plugins/ImageToolsPlugin/Plugin.cs - Portrait retouch
PluginPlatform/plugins/PortraitRetouchPlugin/Plugin.cs
Other components
- Drive user
Connections 30
- Drive user → Main window: uses
- Application startup → Main window: opens
- Main window → Home view: hosts
- Home view → File management: presents
- Drive user → File management: browses and acts
- File management → Cloud API contract: requests file operations
- Search and filters → Cloud API contract: requests search
- Drive user → Search and filters: searches files
- Drive user → Content previews: opens content
- Drive user → Sharing: manages shares
- Sharing → Transfer center: requests shared download
- Drive user → Transfer view model: controls tasks
- Transfer view model → Transfer center: controls transfers
- Transfer center → Cloud API contract: requests transfer data
- Transfer center → Chunked uploads: uploads chunks
- Transfer center → Account and preferences: reads account context
- Cloud API contract → Web API client: implemented by
- User settings → Account and preferences: updates preferences
- Usage dashboard → Cloud API contract: requests usage data
- Drive user → Plugin management UI: manages plugins
- Application startup → Plugin management UI: starts and shuts down
- Plugin management UI → Plugin manager: scans and controls
- Plugin manager → Plugin sessions: creates sessions
- Plugin sessions → Plugin runner: launches process
- Plugin runner → Plugin SDK: hosts plugin context
- Plugin SDK → Plugin sessions: sends host requests
- Plugin sessions → Plugin storage: dispatches storage operations
- Plugin manager → Archive preview: loads enabled plugin
- Plugin manager → Image tools: loads enabled plugin
- Plugin manager → Portrait retouch: loads enabled plugin