From 1d78e106adf4cc5894f299d597c02a9b7e508173 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Mon, 26 Dec 2022 12:51:48 +0100 Subject: Debug database tab --- src/base_tab/BaseGameTab.cpp | 129 ++++++++++++++++++++++--------------------- 1 file changed, 65 insertions(+), 64 deletions(-) (limited to 'src/base_tab/BaseGameTab.cpp') diff --git a/src/base_tab/BaseGameTab.cpp b/src/base_tab/BaseGameTab.cpp index 29729c4..4d16562 100644 --- a/src/base_tab/BaseGameTab.cpp +++ b/src/base_tab/BaseGameTab.cpp @@ -5,23 +5,19 @@ wxDEFINE_EVENT(OPEN_GAME_EVENT, wxCommandEvent); -BaseGameTab::BaseGameTab(wxFrame *parent, std::string base_file, TabInfos *main_tab) - : TabBase_TabGames(parent), base_file(base_file), - base(NULL),main_tab(main_tab) { +BaseGameTab::BaseGameTab(wxFrame *parent, std::shared_ptr base, TabInfos *main_tab) + : TabBase_TabGames(parent), main_tab(main_tab),base(base) { + + glm=std::make_shared(game_list); + Reset(base); - glm=new GameListManager(game_list); this->Bind(wxEVT_BUTTON, &BaseGameTab::OnDelete, this, ID_DELETE_BUTTON); - this->Bind(wxEVT_BUTTON, &BaseGameTab::OnSave, this, ID_SAVE_BUTTON); - this->Bind(wxEVT_BUTTON, &BaseGameTab::OnExport, this, ID_EXPORT_BUTTON); this->Bind(wxEVT_LIST_ITEM_ACTIVATED, &BaseGameTab::OnOpenGame, this, wxID_ANY); - this->Bind(wxEVT_BUTTON, &BaseGameTab::OnImport, this, ID_IMPORT_BUTTON); this->Bind(wxEVT_BUTTON, &BaseGameTab::OnApplyFilter, this, ID_APPLY_FILTER_BUTTON); this->Bind(wxEVT_TEXT_ENTER, &BaseGameTab::OnApplyFilter, this, ID_SEARCH_TERMS); - current_base->SetLabel(base_file); search_terms->SetHint("e.g: Paul Morphy"); - LoadFile(); } void BaseGameTab::OnApplyFilter(wxCommandEvent &event){ @@ -34,12 +30,12 @@ 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(); + // AppendGameDialog *dia = new AppendGameDialog(this, base); + // dia->ShowModal(); + // glm->Clear(); + // deleted.clear(); + // edited.clear(); + // LoadFile(); } void BaseGameTab::OnDelete(wxCommandEvent &event) { @@ -50,35 +46,37 @@ void BaseGameTab::OnDelete(wxCommandEvent &event) { } void BaseGameTab::OnSave(wxCommandEvent &event) { - std::vector> new_games_bases; - - // Build edited games vector - std::vector> 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> 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); + // std::vector> new_games_bases; + + // // Build edited games vector + // std::vector> 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> 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(); + // // 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 *g = new std::shared_ptr(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 @@ -97,33 +95,21 @@ void BaseGameTab::OnOpenGame(wxListEvent &event) { } } -void BaseGameTab::ApplyPreferences() {} - -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; - } +std::vector> BaseGameTab::GetEditedGames(){ + std::vector> games; + for(auto it = edited.begin(); it != edited.end(); it++){ + games.push_back(it->second); } + return(games); } -void BaseGameTab::LoadFile() { - wxFileName file(base_file); - wxString ext = file.GetExt().Lower(); - if (ext == "pgn") { - base = std::shared_ptr(new PGNGameBase(base_file)); - SetLabel(file.GetName() + "(PGN)"); - } +void BaseGameTab::Reset(std::shared_ptr base){ + glm->Clear(); + edited.clear(); + deleted.clear(); + // Load all games (for now :) + this->base=base; if (base != NULL) { while (base->NextGame()) { glm->AddGame( @@ -135,8 +121,23 @@ void BaseGameTab::LoadFile() { base->GetTag("ECO")); } } +} - wxCommandEvent event(REFRESH_TAB_TITLE, GetId()); - event.SetEventObject(this); - ProcessEvent(event); +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; + // } + // } } + + -- cgit v1.2.3