From fd0853d2623dd278b08288331ed42e3be59252fb Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Fri, 18 Apr 2014 17:00:17 +0200 Subject: 2.2 --- shared/standardPaths.cpp | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 shared/standardPaths.cpp (limited to 'shared/standardPaths.cpp') diff --git a/shared/standardPaths.cpp b/shared/standardPaths.cpp new file mode 100644 index 00000000..0c333598 --- /dev/null +++ b/shared/standardPaths.cpp @@ -0,0 +1,60 @@ +#include "standardPaths.h" +#include +#include "globalFunctions.h" +#include + + +wxString assembleFileForUserData(const wxString fileName) +{ + static const bool isPortableVersion = !wxFileExists(FreeFileSync::getInstallationDir() + globalFunctions::FILE_NAME_SEPARATOR + wxT("uninstall.exe")); //this check is a bit lame... + + if (isPortableVersion) //use same directory as executable + return FreeFileSync::getInstallationDir() + globalFunctions::FILE_NAME_SEPARATOR + fileName; + else //usen OS' standard paths + { + wxString userDirectory = wxStandardPathsBase::Get().GetUserDataDir(); + + if (!userDirectory.EndsWith(wxString(globalFunctions::FILE_NAME_SEPARATOR))) + userDirectory += globalFunctions::FILE_NAME_SEPARATOR; + + if (!wxDirExists(userDirectory)) + ::wxMkdir(userDirectory); //only top directory needs to be created: no recursion necessary + + return userDirectory + fileName; + } +} + + +const wxString& FreeFileSync::getGlobalConfigFile() +{ + static wxString instance = assembleFileForUserData(wxT("GlobalSettings.xml")); + return instance; +} + + +const wxString& FreeFileSync::getDefaultLogDirectory() +{ + static wxString instance = assembleFileForUserData(wxT("Logs")); + return instance; +} + + +const wxString& FreeFileSync::getLastErrorTxtFile() +{ + static wxString instance = assembleFileForUserData(wxT("LastError.txt")); + return instance; +} + + +const wxString& FreeFileSync::getInstallationDir() +{ + static wxString instance = wxFileName(wxStandardPaths::Get().GetExecutablePath()).GetPath(); + return instance; +} + + +const wxString& FreeFileSync::getConfigDir() +{ + static wxString instance = assembleFileForUserData(wxEmptyString); + return instance; +} -- cgit