From 98488e899a750703562d868d734251cfe032e294 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Fri, 25 Feb 2022 14:57:09 +0100 Subject: Enable database export --- src/base_tab/gamebase/PGNGameBase.cpp | 39 +++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 9 deletions(-) (limited to 'src/base_tab/gamebase/PGNGameBase.cpp') diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index bd83abc..dc6341c 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -68,11 +68,16 @@ void PGNGameBase::Save(std::vector to_ignore, Reset(); std::uint32_t id = 0; + bool several = false; while (NextGame()) { if (std::find(to_ignore.begin(), to_ignore.end(), id) == to_ignore.end()) { + if (several) { + new_pgn.Write("\n\n"); + } else { + several = true; + } Game *g = GetCurrentGame(); new_pgn.Write(g->GetPGN()); - new_pgn.Write("\n\n"); delete g; } id++; @@ -80,18 +85,34 @@ void PGNGameBase::Save(std::vector to_ignore, // Now add new games for (Game *g : new_games) { + if (several) { + new_pgn.Write("\n\n"); + } else { + several = true; + } new_pgn.Write(g->GetPGN()); - new_pgn.Write("\n\n"); } - // new_games->Reset(); - // while (new_games->NextGame()) { - // Game *g = new_games->GetCurrentGame(); - // new_pgn.Write(g->GetPGN()); - // delete g; - // } - new_pgn.Close(); wxCopyFile(tmp, file); wxRemoveFile(tmp); } + +void PGNGameBase::Save(GameBase *base) { + wxFile new_pgn(file, wxFile::write); + + base->Reset(); + bool several = false; + while (base->NextGame()) { + if (several) { + new_pgn.Write("\n\n"); + } else { + several = true; + } + Game *g = base->GetCurrentGame(); + new_pgn.Write(g->GetPGN()); + delete g; + } + + new_pgn.Close(); +} -- cgit v1.2.3