Now games can be imported

This commit is contained in:
Loic Guegan 2022-02-26 12:48:52 +01:00
parent e0a1894928
commit b1a82ff568
5 changed files with 38 additions and 7 deletions

View file

@ -24,5 +24,19 @@ void AppendGameDialog::OnImport(wxCommandEvent &event) {
std::vector<GameBase *> new_games_bases;
std::vector<Game *> new_games;
wxArrayInt selections;
game_list->GetSelections(selections);
for (int &i : selections) {
TabInfos *tinfo = tinfos[i];
if (tinfo->type == TabInfos::BASE) {
new_games_bases.push_back(static_cast<GameBase *>(tinfo->GetBase()));
} else if (tinfo->type == TabInfos::GAME) {
new_games.push_back(static_cast<Game *>(tinfo->GetGame()));
}
}
base->Save(to_ignore, new_games_bases, new_games);
this->Close();
}

View file

@ -1,6 +1,6 @@
#include "BaseTab.hpp"
#include <wx/filename.h>
#include "AppendGameDialog.hpp"
#include <wx/filename.h>
BaseTab::BaseTab(wxFrame *parent, std::string base_file)
: BasePanelBF(parent), base_file(base_file), TabInfos(TabInfos::BASE),
@ -25,8 +25,11 @@ BaseTab::BaseTab(wxFrame *parent, std::string base_file)
}
void BaseTab::OnImport(wxCommandEvent &event) {
AppendGameDialog *dia=new AppendGameDialog(this,base);
AppendGameDialog *dia = new AppendGameDialog(this, base);
dia->ShowModal();
game_list->DeleteAllItems();
deleted.clear();
LoadFile();
}
void BaseTab::OnDelete(wxCommandEvent &event) {

View file

@ -84,6 +84,20 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_ignore,
}
// Now add new games
for (GameBase *current : new_games_bases) {
current->Reset();
while (current->NextGame()) {
if (several) {
new_pgn.Write("\n\n");
} else {
several = true;
}
Game *g = current->GetCurrentGame();
new_pgn.Write(g->GetPGN());
delete g;
}
}
for (Game *g : new_games) {
if (several) {
new_pgn.Write("\n\n");