Implement FileSystemService and refactor disk I/O operations#97
Implement FileSystemService and refactor disk I/O operations#97
Conversation
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>
|
👋 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
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>
This change introduces a new
FileSystemServiceclass as a stateless singleton to centralize all disk I/O operations, decoupling them from the UI components.Key changes:
FileSystemServiceinsrc/Explorer/FileSystemService.handsrc/Explorer/FileSystemService.cpp.FileSystemService.ExplorerDialog,FileList, andFavesDialogto useFileSystemService.Explorer.cpp.Explorer.vcxprojto include new files.PR created automatically by Jules for task 1939071048650355189 started by @funap