diff options
Diffstat (limited to 'src/base_tab/gamebase')
| -rw-r--r-- | src/base_tab/gamebase/GameBase.cpp | 3 | ||||
| -rw-r--r-- | src/base_tab/gamebase/GameBase.hpp | 2 | ||||
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.cpp | 6 | ||||
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.hpp | 2 |
4 files changed, 7 insertions, 6 deletions
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<GameBase> 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<GameBase>(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<Game> GetGame(std::uint32_t id) = 0; virtual void Save(std::vector<std::uint32_t> to_delete, - std::vector<std::shared_ptr<GameBase>> databases_to_import, + std::vector<std::string> databases_to_import, std::vector<std::shared_ptr<Game>> games_to_import) = 0; virtual std::shared_ptr<Game> 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<Game> PGNGameBase::GetGame(std::uint32_t id) { } void PGNGameBase::Save(std::vector<std::uint32_t> to_delete, - std::vector<std::shared_ptr<GameBase>> databases_to_import, + std::vector<std::string> databases_to_import, std::vector<std::shared_ptr<Game>> games_to_import) { wxStandardPaths stdPaths = wxStandardPaths::Get(); wxString tmp = stdPaths.GetTempDir() + "/save_pgn_tmp.pgn"; @@ -102,8 +102,8 @@ void PGNGameBase::Save(std::vector<std::uint32_t> to_delete, } // Now add new games - for (std::shared_ptr<GameBase> current : databases_to_import) { - current->Reset(); + for(auto dbpath: databases_to_import){ + std::shared_ptr<GameBase> 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<Game> GetCurrentGame(); std::string GetTag(std::string tag); void Save(std::vector<std::uint32_t> to_delete, - std::vector<std::shared_ptr<GameBase>> databases_to_import, + std::vector<std::string> databases_to_import, std::vector<std::shared_ptr<Game>> games_to_import); void Reset(); void Export(std::shared_ptr<GameBase> base); |
