From c97e151e1be7123d9d15e9ffcff1c46cecbb543a Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Tue, 27 Dec 2022 15:58:16 +0100 Subject: Improve game import --- src/base_tab/gamebase/GameBase.cpp | 3 ++- src/base_tab/gamebase/GameBase.hpp | 2 +- src/base_tab/gamebase/PGNGameBase.cpp | 6 +++--- src/base_tab/gamebase/PGNGameBase.hpp | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/base_tab/gamebase') diff --git a/src/base_tab/gamebase/GameBase.cpp b/src/base_tab/gamebase/GameBase.cpp index e8f9a59..4c7c1a3 100644 --- a/src/base_tab/gamebase/GameBase.cpp +++ b/src/base_tab/gamebase/GameBase.cpp @@ -4,8 +4,9 @@ std::shared_ptr OpenDatabase(const std::string &dbpath, bool createIfNotExist){ wxFileName file(dbpath); wxString ext = file.GetExt().Lower(); + bool create=createIfNotExist && !file.Exists(); if (ext == "pgn") { - if(createIfNotExist && !file.Exists()) + if(create) PGNGameBase::CreateDatabaseFile(dbpath); return std::shared_ptr(new PGNGameBase(dbpath)); } diff --git a/src/base_tab/gamebase/GameBase.hpp b/src/base_tab/gamebase/GameBase.hpp index 008b36e..6798330 100644 --- a/src/base_tab/gamebase/GameBase.hpp +++ b/src/base_tab/gamebase/GameBase.hpp @@ -8,7 +8,7 @@ class GameBase { public: virtual std::shared_ptr GetGame(std::uint32_t id) = 0; virtual void Save(std::vector to_delete, - std::vector> databases_to_import, + std::vector databases_to_import, std::vector> games_to_import) = 0; virtual std::shared_ptr GetCurrentGame() = 0; virtual bool NextGame() = 0; diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index 90f035a..0f1ce14 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -79,7 +79,7 @@ std::shared_ptr PGNGameBase::GetGame(std::uint32_t id) { } void PGNGameBase::Save(std::vector to_delete, - std::vector> databases_to_import, + std::vector databases_to_import, std::vector> games_to_import) { wxStandardPaths stdPaths = wxStandardPaths::Get(); wxString tmp = stdPaths.GetTempDir() + "/save_pgn_tmp.pgn"; @@ -102,8 +102,8 @@ void PGNGameBase::Save(std::vector to_delete, } // Now add new games - for (std::shared_ptr current : databases_to_import) { - current->Reset(); + for(auto dbpath: databases_to_import){ + std::shared_ptr current=OpenDatabase(dbpath); while (current->NextGame()) { if (several) { new_pgn.Write("\n\n"); diff --git a/src/base_tab/gamebase/PGNGameBase.hpp b/src/base_tab/gamebase/PGNGameBase.hpp index 3f145ca..0661617 100644 --- a/src/base_tab/gamebase/PGNGameBase.hpp +++ b/src/base_tab/gamebase/PGNGameBase.hpp @@ -14,7 +14,7 @@ public: std::shared_ptr GetCurrentGame(); std::string GetTag(std::string tag); void Save(std::vector to_delete, - std::vector> databases_to_import, + std::vector databases_to_import, std::vector> games_to_import); void Reset(); void Export(std::shared_ptr base); -- cgit v1.2.3