diff options
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 |
