From 1293b59ed55423671dc204d3cb09822c9c599e55 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Sun, 25 Dec 2022 09:57:34 +0100 Subject: Improve tab management --- src/base_tab/BaseGameTab.cpp | 24 +++++++++++++++--------- src/base_tab/BaseImportTab.cpp | 2 +- 2 files changed, 16 insertions(+), 10 deletions(-) (limited to 'src/base_tab') diff --git a/src/base_tab/BaseGameTab.cpp b/src/base_tab/BaseGameTab.cpp index ae652cc..a652478 100644 --- a/src/base_tab/BaseGameTab.cpp +++ b/src/base_tab/BaseGameTab.cpp @@ -70,7 +70,7 @@ void BaseGameTab::OnSave(wxCommandEvent &event) { edited_games.end()); // Add edited game (since they are also deleted) base->Save(deleted, new_games_bases, new_games); - // CLose all opened games in this database + // Close all opened games in this database wxCommandEvent closeLinkedTabEvent(CLOSE_LINKED_TAB, GetId()); closeLinkedTabEvent.SetClientData(main_tab); ProcessEvent(closeLinkedTabEvent); @@ -82,17 +82,23 @@ void BaseGameTab::OnSave(wxCommandEvent &event) { } void BaseGameTab::OnOpenGame(wxListEvent &event) { - wxLogDebug("Open!"); long id = std::stoi(event.GetItem().GetText().ToStdString()); std::shared_ptr *g = new std::shared_ptr(base->GetGame(id)); if (g != NULL) { - edited[id]=*g; - deleted.push_back(id); - game_list->SetItemBackgroundColour(event.GetIndex(), *wxGREEN); - wxCommandEvent openGameEvent(OPEN_GAME_EVENT, GetId()); - openGameEvent.SetEventObject(this); - openGameEvent.SetClientData(g); - ProcessEvent(openGameEvent); + if(edited.find(id) != edited.end()){ + // TODO: Focus on the game tab and if close reopen it + wxLogDebug("Already opened!"); + } + else { + wxLogDebug("Open game"); + edited[id]=*g; + deleted.push_back(id); + game_list->SetItemBackgroundColour(event.GetIndex(), *wxGREEN); + wxCommandEvent openGameEvent(OPEN_GAME_EVENT, GetId()); + openGameEvent.SetEventObject(this); + openGameEvent.SetClientData(g); + ProcessEvent(openGameEvent); + } } } diff --git a/src/base_tab/BaseImportTab.cpp b/src/base_tab/BaseImportTab.cpp index 8b7cb1f..6c3ef5d 100644 --- a/src/base_tab/BaseImportTab.cpp +++ b/src/base_tab/BaseImportTab.cpp @@ -4,5 +4,5 @@ BaseImportTab::BaseImportTab(wxFrame *parent): TabBase_TabImport(parent) { - + } -- cgit v1.2.3