diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-26 19:20:36 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-26 19:20:36 +0100 |
| commit | 5691b7b30f966f72ce1cac18e4573132b351cbbd (patch) | |
| tree | 79292ffd96c8d07fe55f21a635fdd56d0708622c /src/base_tab | |
| parent | 5c8334af1d96eb22ad09318b531fd7441f277285 (diff) | |
Improve database management
Diffstat (limited to 'src/base_tab')
| -rw-r--r-- | src/base_tab/BaseTab.cpp | 3 | ||||
| -rw-r--r-- | src/base_tab/gamebase/GameBase.hpp | 5 | ||||
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.cpp | 5 | ||||
| -rw-r--r-- | src/base_tab/gamebase/PGNGameBase.hpp | 1 |
4 files changed, 14 insertions, 0 deletions
diff --git a/src/base_tab/BaseTab.cpp b/src/base_tab/BaseTab.cpp index bc40e60..8b58ca9 100644 --- a/src/base_tab/BaseTab.cpp +++ b/src/base_tab/BaseTab.cpp @@ -48,7 +48,10 @@ void BaseTab::Refresh(){ void BaseTab::OpenDatabase(std::string dbpath) { wxFileName file(dbpath); wxString ext = file.GetExt().Lower(); + wxLogDebug("Here"); if (ext == "pgn") { + if(!file.Exists()) + PGNGameBase::CreateDatabaseFile(dbpath); base.reset(); base = std::shared_ptr<GameBase>(new PGNGameBase(dbpath)); } diff --git a/src/base_tab/gamebase/GameBase.hpp b/src/base_tab/gamebase/GameBase.hpp index 89ba278..c87078d 100644 --- a/src/base_tab/gamebase/GameBase.hpp +++ b/src/base_tab/gamebase/GameBase.hpp @@ -22,4 +22,9 @@ public: * @param base */ virtual void Export(std::shared_ptr<GameBase> base) = 0; + + /** + * @brief An additionnal static method is expected with the following signature: + * static void CreateDatabaseFile(std::string path); + */ };
\ No newline at end of file diff --git a/src/base_tab/gamebase/PGNGameBase.cpp b/src/base_tab/gamebase/PGNGameBase.cpp index 147899b..9ee5038 100644 --- a/src/base_tab/gamebase/PGNGameBase.cpp +++ b/src/base_tab/gamebase/PGNGameBase.cpp @@ -28,6 +28,11 @@ std::string PGNGameBase::GetTag(std::string tag) { return (""); } +void PGNGameBase::CreateDatabaseFile(std::string path){ + wxFile empty_pgn(path, wxFile::write); + empty_pgn.Close(); +} + std::shared_ptr<Game> PGNGameBase::GetCurrentGame() { pgnp::HalfMove *pgnp_moves = new pgnp::HalfMove(); pgn->GetMoves(pgnp_moves); diff --git a/src/base_tab/gamebase/PGNGameBase.hpp b/src/base_tab/gamebase/PGNGameBase.hpp index b184318..3f145ca 100644 --- a/src/base_tab/gamebase/PGNGameBase.hpp +++ b/src/base_tab/gamebase/PGNGameBase.hpp @@ -22,4 +22,5 @@ public: std::string GetFilePath() {return(file);}; static std::string GetMovesPGN(HalfMove *m, bool needDots); static std::string GetPGN(std::shared_ptr<Game> g); + static void CreateDatabaseFile(std::string path); };
\ No newline at end of file |
