diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-25 09:57:34 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-25 09:57:34 +0100 |
| commit | 1293b59ed55423671dc204d3cb09822c9c599e55 (patch) | |
| tree | dc044f6de4aadd5e7ded4bf0447b8ab4dd33708e /src/base_tab | |
| parent | d298c59206ccb8c3e511fad9884e1cb0bd98b793 (diff) | |
Improve tab management
Diffstat (limited to 'src/base_tab')
| -rw-r--r-- | src/base_tab/BaseGameTab.cpp | 24 | ||||
| -rw-r--r-- | src/base_tab/BaseImportTab.cpp | 2 |
2 files changed, 16 insertions, 10 deletions
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<Game> *g = new std::shared_ptr<Game>(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) { - + } |
