Skip to content

Implement FileSystemService and refactor disk I/O operations#97

Open
funap wants to merge 4 commits intomainfrom
feature/filesystem-service-1939071048650355189
Open

Implement FileSystemService and refactor disk I/O operations#97
funap wants to merge 4 commits intomainfrom
feature/filesystem-service-1939071048650355189

Conversation

@funap
Copy link
Copy Markdown
Owner

@funap funap commented Apr 29, 2026

This change introduces a new FileSystemService class as a stateless singleton to centralize all disk I/O operations, decoupling them from the UI components.
Key changes:

  • Created FileSystemService in src/Explorer/FileSystemService.h and src/Explorer/FileSystemService.cpp.
  • Migrated directory scanning, file operations (create, delete, copy, move), drive information, and shell utility functions to FileSystemService.
  • Refactored ExplorerDialog, FileList, and FavesDialog to use FileSystemService.
  • Cleaned up redundant functions from Explorer.cpp.
  • Updated Explorer.vcxproj to include new files.
  • Restored CRLF line endings for consistency with the project.

PR created automatically by Jules for task 1939071048650355189 started by @funap

This change introduces a new FileSystemService class as a stateless singleton to centralize all disk I/O operations, decoupling them from the UI components.

- Created FileSystemService in src/Explorer/
- Migrated directory scanning, file operations, and shell utility functions
- Refactored ExplorerDialog, FileList, and FavesDialog to use the service
- Cleaned up redundant functions from Explorer.cpp
- Updated Explorer.vcxproj to include new files

Co-authored-by: funap <31555185+funap@users.noreply.github.com>
@google-labs-jules
Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

google-labs-jules Bot and others added 3 commits April 29, 2026 08:41
This change centralizes disk I/O operations into a stateless FileSystemService singleton and refactors the FileList component to use an encapsulated FileSystemEntry class instead of the legacy FileListData structure.

Key changes:
- Introduced FileSystemService for all file/directory operations (scanning, creation, deletion, copy/move).
- Replaced struct FileListData with class FileSystemEntry, using accessor methods and IsDirectory() check.
- Refactored ExplorerDialog and FileList to delegate disk operations to the service.
- Improved directory scanning logic to return a vector of entries, reducing direct Win32 API calls in UI components.
- Fixed various path formatting and character encoding issues during migration.
- Updated Explorer.vcxproj with new source files.

Co-authored-by: funap <31555185+funap@users.noreply.github.com>
…ures

- Centralized all disk I/O operations into a stateless FileSystemService singleton.
- Replaced legacy FileListData struct with an encapsulated FileSystemEntry class.
- Removed Windows-specific types (HRESULT, DWORD, FILETIME, etc.) from the service's public interface to improve portability and decoupling.
- Refactored ExplorerDialog, FileList, and FavesDialog to delegate disk operations to the new service.
- Improved directory scanning performance and reliability by returning structured entries.
- Maintained separation of concerns by keeping UI interactions in dialog classes and business logic in the service.
- Updated project files and ensured consistent line endings.

Co-authored-by: funap <31555185+funap@users.noreply.github.com>
This change centralizes disk I/O operations into a stateless FileSystemService singleton and refactors the FileList component to use an encapsulated FileSystemEntry class.

Key changes:
- Created FileSystemService in src/Explorer/ for all disk-related operations.
- Replaced legacy FileListData struct with FileSystemEntry class using private members and accessors.
- Used size_t for file sizes and time_t for timestamps in the service interface.
- Removed Windows-specific return types (HRESULT, BOOL) from public service methods.
- Refactored ExplorerDialog, FileList, and FavesDialog to delegate disk operations to the service.
- Fixed directory name display logic and path conversion bugs.
- Updated Explorer.vcxproj with new source files.
- Ensured consistent CRLF line endings.

Co-authored-by: funap <31555185+funap@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant