-
Notifications
You must be signed in to change notification settings - Fork 7
Add Project module (TFPM): .tfproj support, Project menu, Files panel and Recent Projects #95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Warning Rate limit exceeded@mkh-user has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 7 minutes and 27 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
WalkthroughAdds a Project system: new Project autoload singleton, .tfproj handling in editor/open flows, project menu and action scripts, UI windows/scenes for New/Open/Recent/Settings, Files panel and project_file_item, factory/threaded loader tweaks, theme/constants updates, icon caching, and documentation updates. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Menu as Project Menu
participant Factory
participant Project as ProjectAPI
participant Editor as Editor
participant Files as Files Panel
User->>Menu: Click "Open Project"
Menu->>Factory: Show FileDialog (*.tfproj)
Factory-->>User: File dialog shown
User->>Factory: Select .tfproj
Factory->>Project: load_project(path)
Project->>Project: read & validate ConfigFile
Project-->>Editor: emit project_opened
Project-->>Files: emit load_files(include, exclude)
Files->>Files: build tree, set all_files
Editor->>Editor: update window title
sequenceDiagram
autonumber
participant User
participant EditorAPI as EditorAPI
participant Project as ProjectAPI
User->>EditorAPI: Open file (path)
alt path ends with .tfproj
EditorAPI->>Project: load_project(path)
EditorAPI-->>User: return (project loaded)
else non-project file
EditorAPI->>Project: if has_project() and path ∉ all_files then close_project()
EditorAPI->>EditorAPI: continue normal file load
end
sequenceDiagram
autonumber
actor User
participant NewWin as NewProject Window
participant FS as File System
participant Factory
User->>NewWin: Fill fields, press Create
NewWin->>NewWin: validate inputs
NewWin->>FS: write ConfigFile (.tfproj)
alt saved
NewWin->>Factory: accept_dialog("Project created")
NewWin-->>User: close window
else fail
NewWin->>Factory: accept_dialog("Save failed")
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60–90 minutes Poem
Pre-merge checks and finishing touches and finishing touches and finishing touches and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Type of Change
Description
This will close #9. Provides Text Forge Project Module (TFPM) as handling core for projects.
Testing
In progress
Impact
Nothing yet
Additional Information
Nothing yet
Todos
createdandmodifiedto project filefilesection (see Feature: Project #68)The selected image will be saved in the program's data folder (with a random name) and the project file will only keep its name.
Checklist
Summary by CodeRabbit
New Features
Improvements
Style
Bug Fixes
Documentation