aboutsummaryrefslogtreecommitdiff
path: root/src/base_tab/BaseGameTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/base_tab/BaseGameTab.cpp')
-rw-r--r--src/base_tab/BaseGameTab.cpp95
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;
- // }
- // }
-}