diff options
Diffstat (limited to 'src/base_tab/BaseGameTab.cpp')
| -rw-r--r-- | src/base_tab/BaseGameTab.cpp | 95 |
1 files changed, 17 insertions, 78 deletions
diff --git a/src/base_tab/BaseGameTab.cpp b/src/base_tab/BaseGameTab.cpp index ecf4935..cc2cf3d 100644 --- a/src/base_tab/BaseGameTab.cpp +++ b/src/base_tab/BaseGameTab.cpp @@ -1,18 +1,13 @@ #include "BaseGameTab.hpp" #include <wx/filename.h> -wxDEFINE_EVENT(OPEN_GAME_EVENT, wxCommandEvent); - - -BaseGameTab::BaseGameTab(wxFrame *parent, std::shared_ptr<GameBase> base, TabInfos *main_tab) - : TabBase_TabGames(parent), main_tab(main_tab),base(base) { +BaseGameTab::BaseGameTab(wxFrame *parent, std::shared_ptr<GameBase> base) + : TabBase_TabGames(parent),base(base) { glm=std::make_shared<GameListManager>(game_list); Reset(base); - this->Bind(wxEVT_BUTTON, &BaseGameTab::OnDelete, this, ID_DELETE_BUTTON); - this->Bind(wxEVT_LIST_ITEM_ACTIVATED, &BaseGameTab::OnOpenGame, this, wxID_ANY); this->Bind(wxEVT_BUTTON, &BaseGameTab::OnApplyFilter, this, ID_APPLY_FILTER_BUTTON); this->Bind(wxEVT_TEXT_ENTER, &BaseGameTab::OnApplyFilter, this, ID_SEARCH_TERMS); @@ -28,15 +23,6 @@ void BaseGameTab::OnApplyFilter(wxCommandEvent &event){ } } -void BaseGameTab::OnImport(wxCommandEvent &event) { - // AppendGameDialog *dia = new AppendGameDialog(this, base); - // dia->ShowModal(); - // glm->Clear(); - // deleted.clear(); - // edited.clear(); - // LoadFile(); -} - void BaseGameTab::OnDelete(wxCommandEvent &event) { for(auto i: glm->GetSelectedItems()){ deleted.push_back(glm->GetItemGameId(i)); @@ -44,56 +30,25 @@ void BaseGameTab::OnDelete(wxCommandEvent &event) { } } -void BaseGameTab::OnSave(wxCommandEvent &event) { - // std::vector<std::shared_ptr<GameBase>> new_games_bases; - - // // Build edited games vector - // std::vector<std::shared_ptr<Game>> edited_games; - // for (auto itr = edited.begin(); itr != edited.end(); itr++) { - // edited_games.push_back(itr->second); - // } - - // // Combine new_games and edited games - // std::vector<std::shared_ptr<Game>> new_games; - // new_games.insert( - // new_games.end(), edited_games.begin(), - // 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 - // wxCommandEvent closeLinkedTabEvent(CLOSE_LINKED_TAB, GetId()); - // closeLinkedTabEvent.SetClientData(main_tab); - // ProcessEvent(closeLinkedTabEvent); - - // glm->Clear(); - // edited.clear(); - // deleted.clear(); - // LoadFile(); -} - -void BaseGameTab::OnOpenGame(wxListEvent &event) { - long id = std::stoi(event.GetItem().GetText().ToStdString()); - std::shared_ptr<Game> *g = new std::shared_ptr<Game>(base->GetGame(id)); - wxLogDebug("kjkj"); - - if (g != NULL) { - 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); - glm->MarkItemAsOpen(event.GetIndex()); - wxCommandEvent openGameEvent(OPEN_GAME_EVENT, GetId()); - openGameEvent.SetEventObject(this); - openGameEvent.SetClientData(g); - ProcessEvent(openGameEvent); +std::shared_ptr<Game> BaseGameTab::OpenGame(long gameid, long item) { + if(edited.find(gameid) != edited.end()){ + // TODO: Focus on the game tab and if close reopen it + wxLogDebug("Already opened!"); + } + else { + std::shared_ptr<Game> g = base->GetGame(gameid); + if(g){ + edited[gameid]=g; + deleted.push_back(gameid); + glm->MarkItemAsOpen(item); + return g; } } + + return nullptr; } + std::vector<std::shared_ptr<Game>> BaseGameTab::GetEditedGames(){ std::vector<std::shared_ptr<Game>> games; for(auto it = edited.begin(); it != edited.end(); it++){ @@ -123,21 +78,5 @@ void BaseGameTab::Reset(std::shared_ptr<GameBase> base){ } } -void BaseGameTab::OnExport(wxCommandEvent &event) { - // wxFileDialog openFileDialog(this, _("Export database"), "", "", - // "Database files (*.pgn)|*.pgn", - // wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - // if (openFileDialog.ShowModal() != wxID_CANCEL) { - // std::string path = openFileDialog.GetPath().ToStdString(); - // wxFileName file(base_file); - // wxString ext = file.GetExt().Lower(); - // GameBase *base; - // if (ext == "pgn") { - // base = new PGNGameBase(path); - // base->Export(this->base); - // delete base; - // } - // } -} |
