Commit Graph

58 Commits

Author SHA1 Message Date
scawful
5cc5c08122 Add Overworld accessors and enhance testing framework
- Introduced new methods in `Controller`, `EditorManager`, and `OverworldEditor` to access the `Overworld` instance, improving modularity and interaction with the overworld data.
- Added `GetTile` method in `Overworld` to retrieve tile data based on coordinates, enhancing functionality for tile manipulation.
- Implemented a new testing framework with automated GUI tests, including `CanvasSelectionTest` and `FrameworkSmokeTest`, to validate user interactions and ensure robustness.
- Updated `CMakeLists.txt` to include new test files and dependencies, streamlining the build process for testing.
- Refactored logging behavior to ensure proper file handling during logging operations, improving reliability in logging outputs.
2025-09-30 19:32:34 -04:00
scawful
2d10437888 Remove clipboard functionality and enhance performance monitoring features
- Deleted clipboard-related files (clipboard.cc, clipboard.h, clipboard.mm) to streamline the codebase.
- Added a performance dashboard in the EditorManager to monitor performance metrics and improve user experience.
- Integrated performance monitoring capabilities across various editors, allowing for detailed timing of critical operations.
- Updated the graphics system with batch processing for texture updates, significantly improving rendering performance.
- Introduced a memory pool allocator for efficient memory management during graphics operations.
2025-09-28 23:30:32 -04:00
scawful
86067fc066 Refactor welcome screen behavior in EditorManager to improve user control
- Updated the logic for displaying the welcome screen to only show it if it hasn't been manually closed by the user.
- Introduced a new flag to track whether the welcome screen was manually closed, enhancing user experience by preventing unwanted re-displays.
- Reset the welcome screen state when a ROM is loaded, ensuring a fresh start for the user.
- Minor adjustments to comments for clarity and maintainability.
2025-09-27 10:55:47 -04:00
scawful
9fc84c9a0c Remove DrawHomepage method from EditorManager and adjust welcome screen layout for improved UI consistency 2025-09-27 10:24:18 -04:00
scawful
41a3ee6ce2 Enhance editor UI and functionality with improved command palette and display settings
- Updated the command palette UI to include a search input with focus management, allowing users to filter and categorize commands more effectively.
- Enhanced the global search UI with tabbed results for recent files and labels, improving organization and accessibility.
- Refactored the display settings to be accessible via a popup, allowing customization without needing to load a ROM.
- Improved the welcome screen with enhanced particle effects and customization options, making it more visually appealing and user-friendly.
- Added functionality for global font scaling and theme management within the display settings, enhancing user experience.
2025-09-27 10:12:54 -04:00
scawful
730d01fcff Implement SaveRomAs functionality and enhance session management
- Added SaveRomAs method to allow users to save ROM files with specified filenames, ensuring proper file extensions are applied.
- Updated the DrawMenuBar method to utilize SaveRomAs, providing feedback on save success or failure through toast notifications.
- Enhanced session management by introducing RemoveSession method to mark sessions as closed instead of removing them, improving user experience when managing active sessions.
- Updated session handling logic to ensure closed sessions are properly skipped in the UI, maintaining clarity in session management.
2025-09-27 09:42:51 -04:00
scawful
1057a3f037 Implement welcome screen and enhance session management in EditorManager
- Added a welcome screen that can be accessed from the View menu, improving user experience for new users.
- Enhanced session management by allowing the reuse of empty sessions when loading ROMs, reducing unnecessary session creation.
- Improved the session table layout for better readability and added a custom overworld feature flag for each session.
- Updated the DrawWelcomeScreen method for better visual integration and added a glow effect to the decorative line.
2025-09-26 20:42:48 -04:00
scawful
281fc84499 Refactor project structure and enhance project management features
- Updated the Rom class to use core::ResourceLabelManager for better namespace clarity.
- Introduced a comprehensive YazeProject structure consolidating project metadata, settings, and resource management.
- Enhanced project management capabilities with methods for creating, opening, saving, and validating projects.
- Implemented support for ZScream project format import and export, improving compatibility with existing projects.
- Added workspace settings and feature flags to streamline user configurations and project setup.
2025-09-26 18:02:04 -04:00
scawful
a53e759043 Implement multi-session support and welcome screen in EditorManager
- Removed the homepage display logic and replaced it with a welcome screen that appears when no ROM is loaded or no active editors are present.
- Enhanced session management by iterating through all sessions to check for active editors, allowing for better multi-session docking.
- Introduced new methods for generating unique editor titles based on session context and added feature flags for per-session configurations.
- Added safeguards for ROM loading state checks in editor methods to prevent operations on unloaded ROMs.
2025-09-26 17:32:21 -04:00
scawful
015a5600c5 Enhance EditorManager with session management and workspace preset improvements
- Introduced session renaming functionality, allowing users to customize session names for better organization.
- Implemented duplicate session detection to prevent loading the same ROM in multiple sessions.
- Enhanced workspace preset management with improved error handling and validation during loading and saving.
- Updated UI elements to support lazy loading of workspace presets, ensuring they are available when needed.
- Refactored session display logic to provide clearer naming and improved user experience in session management.
2025-09-25 17:22:48 -04:00
scawful
83dbee155b Implement workspace and session management features in EditorManager
- Added functionality for creating, duplicating, and closing sessions, enhancing user experience with multiple ROMs.
- Integrated session management UI elements, including a session switcher and session manager, for better navigation.
- Introduced workspace layout management features, allowing users to save and load layouts, and reset to defaults.
- Updated popup manager to include workspace help and session limit warnings, improving user guidance.
- Enhanced UI drawing functions to support new session and layout management features, ensuring a cohesive user interface.
2025-09-25 15:18:11 -04:00
scawful
41adb1b70e Enhance testing framework and UI integration for YAZE
- Added a comprehensive testing framework with support for unit, integration, and UI tests, improving overall test coverage and reliability.
- Integrated ImGui Test Engine for UI testing, allowing for real-time feedback and visualization of test results.
- Updated CMake configuration to conditionally include testing components based on build options, enhancing flexibility for developers.
- Introduced a new command in the CLI for running asset loading tests on ROMs, providing a straightforward way to validate functionality.
- Enhanced error handling and resource management during testing, ensuring stability and clarity in test execution.
- Improved user interface with a dedicated test dashboard for monitoring test progress and results, enhancing developer experience.
2025-09-25 13:26:56 -04:00
scawful
e77786ea6c Implement user settings and workspace preset management in EditorManager
- Added LoadUserSettings and SaveUserSettings methods to handle user preferences such as font scaling and autosave settings.
- Introduced RefreshWorkspacePresets, SaveWorkspacePreset, and LoadWorkspacePreset methods for managing workspace layout presets.
- Integrated autosave functionality with a timer and user notifications via ToastManager.
- Enhanced the UI with options for saving/loading workspace presets and adjusting autosave settings.
2025-09-13 10:58:21 -04:00
scawful
b012bd1404 Refactor EditorManager to utilize RomSession for improved ROM handling
- Replaced the previous ROM management system with a RomSession structure to encapsulate ROM and editor set data.
- Streamlined the initialization and loading processes for ROMs, reducing memory overhead and improving clarity.
- Updated methods to reference the new RomSession structure, enhancing maintainability and readability.
- Removed unused editor set management code, simplifying the overall architecture of the EditorManager.
2025-08-12 18:42:14 -04:00
scawful
cb2473e656 Refactor LoadAssets method in EditorManager to streamline asset loading 2025-05-05 11:42:37 -04:00
scawful
dcd7a81432 Refactor asset loading in EditorManager to iterate over active editors; streamline loading process for better scalability and maintainability. 2025-04-29 13:38:47 -04:00
scawful
c2a0cd930c Refactor DrawRomSelector method in EditorManager to return absl::Status for improved error handling; update method signature in header file and adjust menu drawing logic accordingly. 2025-04-16 22:34:57 -04:00
scawful
00d30efbf1 Add short name handling for ROMs in Rom class; update EditorManager to use short names in the ROM selector for improved UI clarity. 2025-04-16 17:33:48 -04:00
scawful
42cfb3bcb2 Refactor overworld constructors to accept Rom pointers 2025-04-12 11:27:23 -04:00
scawful
d8826739bf Refactor editor classes to accept a ROM pointer in constructors, enhancing dependency management and initialization across all editor types. 2025-04-11 16:54:47 -04:00
scawful
216ee23f51 Refactor EditorManager to utilize EditorSet for managing multiple editors per ROM, enhance ROM loading and saving processes, and improve popup management integration. 2025-04-11 02:57:50 -04:00
scawful
b6bed9e92e Refactor EditorManager and integrate PopupManager for improved popup handling 2025-04-11 02:56:33 -04:00
scawful
80655313d1 Refactor EditorManager to extract LoadAssets method for improved code organization and readability 2025-03-11 21:26:55 -04:00
scawful
61e35f2819 Implement docking support in the main editor window; enhance editor activation management 2025-03-11 21:05:04 -04:00
scawful
1452d3c381 Add project management features to EditorManager; implement new project, open project, and save project functionalities 2025-03-11 15:44:55 -04:00
scawful
33de8d2c77 Add "Load Last ROM" shortcut and streamline ROM asset loading in EditorManager 2025-03-11 14:04:13 -04:00
scawful
5607ef7702 Refactor Editor and SettingsEditor classes to manage context; update keyboard shortcuts display logic 2025-03-10 11:25:49 -04:00
scawful
ecac4e5b60 Add new keyboard shortcuts for saving and displaying help; refactor shortcut management 2025-03-09 19:28:10 -04:00
scawful
02ae11ec9e Add ShortcutManager for handling keyboard shortcuts in the editor 2025-03-09 18:15:16 -04:00
scawful
bc1701f490 Refactor EditorManager: Update Initialize method signature and streamline active editors initialization; remove unused menu items and related code 2025-03-07 19:10:45 -05:00
scawful
d7692ddddd Enhance EditorManager with new help and demo menus, and refactor existing menu structure 2025-03-03 18:48:31 -05:00
scawful
a28ad9c516 Enhance EditorManager: add assembly and palette editors to the view menu, and improve menu initialization for better readability 2025-02-28 00:48:12 -05:00
scawful
b8d1568b08 Implement menu system: add file and edit menus with recent files support and various actions 2025-02-10 11:51:17 -05:00
scawful
169bd09495 Refactor EditorManager: remove DrawRomMenu method and simplify Close function 2025-02-10 11:50:17 -05:00
Justin Scofield
02a86c41da Refactored EditorManager to consolidate popup drawing methods into a single DrawPopups method and added a DrawMenuBar method. Replaced DrawYazeMenu with DrawHomepage for displaying a welcome message and options for opening a ROM. Introduced a LoadRom method to handle ROM loading and updated related methods to set the current_rom_ pointer. Added settings_editor_ to the list of active editors. 2025-01-05 20:54:02 -05:00
scawful
d3eca0f950 Make ExperimentFlags a singleton, remove inheritance relationships 2024-12-31 18:13:53 -05:00
scawful
5ff7eaa526 Add yaze_config.h for version management and update version check logic 2024-12-31 12:50:14 -05:00
scawful
33dc1983bc Add Rom dependency injection to OverworldEditor 2024-12-31 11:43:33 -05:00
scawful
a8dcfe3d05 Remove dynamic layout code 2024-12-29 09:58:34 -05:00
scawful
e05e7c35db remove app namespace 2024-12-28 21:28:51 -05:00
scawful
21314702e8 Add EditorContext, refactor utils, add system managers 2024-11-19 23:10:23 -05:00
scawful
d664762344 Implement dynamic layout support and enhance window management commands in EditorManager 2024-11-18 14:07:22 -05:00
scawful
731eb456ab Refactor editor includes and update source files for improved organization 2024-11-18 14:05:08 -05:00
scawful
d118857e2e Add keybinding save and load functionality to CommandManager 2024-11-10 09:03:50 -05:00
scawful
ba5c86f0ba Refactor recent files management: consolidate RecentFilesManager into project.h and remove redundant recent_files.h 2024-11-09 20:38:00 -05:00
scawful
0ca27cd35c Refactor EditorManager to improve code consistency and readability by standardizing spacing and updating key press conditions in popups 2024-11-08 00:14:40 -05:00
scawful
46d7dc446e Add CommandManager::ShowWhichKey and include src in build 2024-09-19 20:59:56 -04:00
scawful
374eebfac4 header include cleanup 2024-09-07 09:55:01 -04:00
scawful
2681e46a7b Refactor file paths for extension headers 2024-08-30 02:22:08 -04:00
scawful
205e085a41 add constant manager 2024-08-29 13:08:45 -04:00