Skip to content

Added features such as a directory tree, drag-and-drop repository detection, and error pop-ups for repository scanning. - #2712

Open
lucienlmy wants to merge 10 commits into
sourcegit-scm:developfrom
lucienlmy:develop
Open

lucienlmy wants to merge 10 commits into
sourcegit-scm:developfrom
lucienlmy:develop

Conversation

@lucienlmy

@lucienlmy lucienlmy commented Sep 15, 2026

Copy link
Copy Markdown

Add features such as dragging and dropping repositories to add new tabs on the interface, additional repository directory tree display, and pop-up windows for repository scanning errors,See the commint instructions for details

c82b1e4c7de27681

Implemented file drag-and-drop functionality for the launcher window, allowing users to quickly open a target repository by dragging its folder directly into the window, thereby enhancing ease of use.
…owsing functionality

Introduced a repository management panel to the welcome page, featuring:
1.  Added a `RecentRepo` model to store information about recently accessed repositories.
2.  Implemented a directory tree structure that scans the clone directory and displays Git repositories.
3.  Added a `RecentRepositories` list to Preferences for persistent storage of recent repository paths.
4.  Added multi-language support for the repository management and directory tree interfaces.
5.  Implemented interaction logic such as expanding/collapsing tree nodes, context menus, and opening repositories via double-click.
6.  Automatically records repositories to the recent list upon opening, retaining up to 20 entries.
7.  Supports refreshing the clone directory scan results and filtering out hidden folders and `node_modules` directories.
… and corresponding i18n support

1. Added localization strings (zh_CN and en_US) for scan error prompts and button labels (Continue/Stop/Open Path).
2. Created the `ScanError` dialog view and logic class to handle error notifications and the Pause/Resume/Open Directory functions.
3. Optimized directory scanning logic: exceptions are caught and an error dialog is displayed, allowing users to choose whether to continue scanning, stop scanning, or open the path where the error occurred.
4. Added a scan-stop status flag to enable early termination of the scanning process.
Added features related to directory tree caching, including creating the cache data model, adding cache properties to preferences, implementing logic for loading and saving the cache, reading cached data upon loading the welcome page, and registering JSON serialization support to ensure proper storage of the cached data.
…tory tree

Implemented natural sorting logic to optimize the display order of directories and files. This resolves the issue where alphanumeric sorting produces counter-intuitive results for directory names containing numbers; by using regular expressions to split text and numeric components for separate comparison, the sorting order now better aligns with human reading habits.
…epositories from the DirectoryTree and integrated it into the Command Palette

1. Added the `GetAllRepositories` method to the DirectoryTree view model to retrieve all nodes in the directory tree marked as repositories.
2. Added the `CollectVisibleDirectoryTreeRepos` method to the Command Palette view model to identify unopened repositories in the directory tree that match search filter criteria and add them to the results list.
…context menu

1. adjust the first column width of welcome page grid from 250 to 320 to fit longer menu items
2. add a separator and a refresh directory tree menu item to the right-click menu of welcome page, which triggers the directory tree scan async method
…splaying

Added a call to `EnsureRecentLoaded` at the beginning of the `LoadFromCache` method to ensure necessary initialization is completed before loading the cache, thereby preventing potential null reference or state inconsistency issues.
Introduced the `Native.SystemFileIcon` utility class to retrieve Windows system file icons and implemented an icon caching mechanism based on file extensions; added a value converter in `PathConverters` to convert file paths into system icons; and added icon display controls to the change list and file tree views, while retaining default file icons for non-Windows systems.
…b bar

To improve the interaction experience for tab reordering via drag-and-drop, the drag effect is set to "move" and the event is marked as handled when drag data matching the expected format hovers over a tab item.
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