feat: Enhance editor card management and shortcut functionality
- Introduced new shortcut categories for graphics, screen, and sprite editors, improving accessibility and organization. - Updated DungeonEditorV2 and other editor classes to register cards with the EditorCardManager, allowing for better control and visibility management. - Refactored shortcut registration for dungeon, graphics, screen, and sprite editors, ensuring consistent user experience across the application. - Improved initialization processes to handle dynamic card visibility and shortcuts effectively.
This commit is contained in:
@@ -24,7 +24,32 @@ using ImGui::TableNextRow;
|
||||
using ImGui::TableSetupColumn;
|
||||
using ImGui::Text;
|
||||
|
||||
void SpriteEditor::Initialize() {}
|
||||
void SpriteEditor::Initialize() {
|
||||
// Register cards with EditorCardManager during initialization (once)
|
||||
auto& card_manager = gui::EditorCardManager::Get();
|
||||
|
||||
card_manager.RegisterCard({
|
||||
.card_id = "sprite.vanilla_editor",
|
||||
.display_name = "Vanilla Sprites",
|
||||
.icon = ICON_MD_SMART_TOY,
|
||||
.category = "Sprite",
|
||||
.shortcut_hint = "Alt+Shift+1",
|
||||
.visibility_flag = &show_vanilla_editor_,
|
||||
.priority = 10
|
||||
});
|
||||
|
||||
card_manager.RegisterCard({
|
||||
.card_id = "sprite.custom_editor",
|
||||
.display_name = "Custom Sprites",
|
||||
.icon = ICON_MD_ADD_CIRCLE,
|
||||
.category = "Sprite",
|
||||
.shortcut_hint = "Alt+Shift+2",
|
||||
.visibility_flag = &show_custom_editor_,
|
||||
.priority = 20
|
||||
});
|
||||
|
||||
printf("[SpriteEditor] Registered 2 cards with EditorCardManager\n");
|
||||
}
|
||||
|
||||
absl::Status SpriteEditor::Load() {
|
||||
gfx::ScopedTimer timer("SpriteEditor::Load");
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "app/editor/editor.h"
|
||||
#include "app/editor/sprite/zsprite.h"
|
||||
#include "app/gui/canvas.h"
|
||||
#include "app/gui/editor_card_manager.h"
|
||||
#include "app/gui/editor_layout.h"
|
||||
#include "app/rom.h"
|
||||
|
||||
@@ -83,8 +84,9 @@ class SpriteEditor : public Editor {
|
||||
void DrawAnimationFrames();
|
||||
void DrawToolset();
|
||||
|
||||
// Card visibility
|
||||
bool show_vanilla_editor_ = true;
|
||||
// Card visibility - ALL FALSE by default to prevent crash on ROM load
|
||||
// Cards only shown when user explicitly opens them via View menu or shortcuts
|
||||
bool show_vanilla_editor_ = false;
|
||||
bool show_custom_editor_ = false;
|
||||
|
||||
ImVector<int> active_sprites_; /**< Active sprites. */
|
||||
|
||||
Reference in New Issue
Block a user