refactor(editor): improve card visibility checks across various editors

- Updated multiple editor components to check visibility flags before rendering cards, ensuring that only visible cards are displayed.
- Refactored card rendering logic in GraphicsEditor, ScreenEditor, MessageEditor, MusicEditor, SpriteEditor, and Emulator to enhance user experience and performance.
- Improved maintainability by centralizing visibility checks and ensuring consistent behavior across different editor types.

Benefits:
- Streamlines the rendering process, leading to a more efficient UI experience.
- Enhances code clarity and maintainability by standardizing visibility handling across editors.
This commit is contained in:
scawful
2025-10-15 14:55:49 -04:00
parent 71a573aee4
commit b8ccc2a6cd
10 changed files with 361 additions and 189 deletions

View File

@@ -48,23 +48,32 @@ absl::Status MusicEditor::Update() {
instrument_card.SetDefaultSize(600, 500);
assembly_card.SetDefaultSize(700, 600);
// Music Tracker Card
if (tracker_card.Begin(card_registry->GetVisibilityFlag("music.tracker"))) {
DrawTrackerView();
// Music Tracker Card - Check visibility flag exists and is true before rendering
bool* tracker_visible = card_registry->GetVisibilityFlag("music.tracker");
if (tracker_visible && *tracker_visible) {
if (tracker_card.Begin(tracker_visible)) {
DrawTrackerView();
}
tracker_card.End();
}
tracker_card.End();
// Instrument Editor Card
if (instrument_card.Begin(card_registry->GetVisibilityFlag("music.instrument_editor"))) {
DrawInstrumentEditor();
// Instrument Editor Card - Check visibility flag exists and is true before rendering
bool* instrument_visible = card_registry->GetVisibilityFlag("music.instrument_editor");
if (instrument_visible && *instrument_visible) {
if (instrument_card.Begin(instrument_visible)) {
DrawInstrumentEditor();
}
instrument_card.End();
}
instrument_card.End();
// Assembly View Card
if (assembly_card.Begin(card_registry->GetVisibilityFlag("music.assembly"))) {
assembly_editor_.InlineUpdate();
// Assembly View Card - Check visibility flag exists and is true before rendering
bool* assembly_visible = card_registry->GetVisibilityFlag("music.assembly");
if (assembly_visible && *assembly_visible) {
if (assembly_card.Begin(assembly_visible)) {
assembly_editor_.InlineUpdate();
}
assembly_card.End();
}
assembly_card.End();
return absl::OkStatus();
}