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.

This commit is contained in:
scawful
2025-04-16 22:34:57 -04:00
parent a01d554f15
commit c2a0cd930c
2 changed files with 5 additions and 11 deletions

View File

@@ -392,27 +392,22 @@ void EditorManager::DrawHomepage() {
}
}
void EditorManager::DrawRomSelector() {
absl::Status status;
absl::Status EditorManager::DrawRomSelector() {
SameLine((GetWindowWidth() / 2) - 100);
if (current_rom_ && current_rom_->is_loaded()) {
SetNextItemWidth(GetWindowWidth() / 6);
if (BeginCombo("##ROMSelector", current_rom_->short_name().c_str())) {
for (const auto &rom : roms_) {
if (MenuItem(rom->short_name().c_str())) {
status = SetCurrentRom(rom.get());
RETURN_IF_ERROR(SetCurrentRom(rom.get()));
}
}
EndCombo();
}
if (!status.ok()) {
std::string error_message = status.message().data();
throw std::runtime_error(error_message);
}
} else {
Text("No ROM loaded");
}
return absl::OkStatus();
}
void EditorManager::DrawMenuBar() {
@@ -422,7 +417,7 @@ void EditorManager::DrawMenuBar() {
if (BeginMenuBar()) {
gui::DrawMenu(gui::kMainMenu);
DrawRomSelector();
status_ = DrawRomSelector();
SameLine(GetWindowWidth() - GetStyle().ItemSpacing.x -
CalcTextSize(ICON_MD_DISPLAY_SETTINGS).x - 110);

View File

@@ -65,8 +65,7 @@ class EditorManager {
private:
void DrawHomepage();
void DrawRomSelector();
absl::Status DrawRomSelector();
absl::Status LoadRom();
absl::Status LoadAssets();
absl::Status SaveRom();