aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-25 09:57:34 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-25 09:57:34 +0100
commit1293b59ed55423671dc204d3cb09822c9c599e55 (patch)
treedc044f6de4aadd5e7ded4bf0447b8ab4dd33708e /src/base_tab
parentd298c59206ccb8c3e511fad9884e1cb0bd98b793 (diff)
Improve tab management
Diffstat (limited to 'src/base_tab')
-rw-r--r--src/base_tab/BaseGameTab.cpp24
-rw-r--r--src/base_tab/BaseImportTab.cpp2
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)
{
-
+
}