summaryrefslogtreecommitdiff
path: root/lib/ffs_paths.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ffs_paths.h')
-rw-r--r--lib/ffs_paths.h44
1 files changed, 26 insertions, 18 deletions
diff --git a/lib/ffs_paths.h b/lib/ffs_paths.h
index faecd2e2..0ad02b15 100644
--- a/lib/ffs_paths.h
+++ b/lib/ffs_paths.h
@@ -9,6 +9,7 @@
#include <wx/stdpaths.h>
#include <zen/zstring.h>
+#include <zen/file_handling.h>
#include <wx+/string_conv.h>
namespace zen
@@ -16,11 +17,11 @@ namespace zen
//------------------------------------------------------------------------------
//global program directories
//------------------------------------------------------------------------------
-wxString getResourceDir(); //resource directory WITH path separator at end
-wxString getConfigDir(); //config directory WITH path separator at end
+Zstring getResourceDir(); //resource directory WITH path separator at end
+Zstring getConfigDir(); //config directory WITH path separator at end
//------------------------------------------------------------------------------
-wxString getLauncher(); //full path to application launcher C:\...\FreeFileSync.exe
+Zstring getLauncher(); //full path to application launcher C:\...\FreeFileSync.exe
bool isPortableVersion();
@@ -34,21 +35,22 @@ bool isPortableVersion();
+
//---------------- implementation ----------------
namespace impl
{
inline
-const wxString& getBinaryDir() //directory containing executable WITH path separator at end
+const Zstring& getBinaryDir() //directory containing executable WITH path separator at end
{
- static wxString instance = beforeLast(wxStandardPaths::Get().GetExecutablePath(), FILE_NAME_SEPARATOR) + toWx(Zstring(FILE_NAME_SEPARATOR)); //extern linkage!
+ static Zstring instance = beforeLast(toZ(wxStandardPaths::Get().GetExecutablePath()), FILE_NAME_SEPARATOR) + Zstring(FILE_NAME_SEPARATOR); //extern linkage!
return instance;
}
#ifdef FFS_WIN
inline
-wxString getInstallDir() //root install directory WITH path separator at end
+Zstring getInstallDir() //root install directory WITH path separator at end
{
- return getBinaryDir().BeforeLast(FILE_NAME_SEPARATOR).BeforeLast(FILE_NAME_SEPARATOR) + FILE_NAME_SEPARATOR;
+ return beforeLast(beforeLast(getBinaryDir(), FILE_NAME_SEPARATOR), FILE_NAME_SEPARATOR) + FILE_NAME_SEPARATOR;
}
#endif
}
@@ -58,25 +60,27 @@ inline
bool isPortableVersion()
{
#ifdef FFS_WIN
- static const bool isPortable = !wxFileExists(impl::getInstallDir() + wxT("uninstall.exe")); //this check is a bit lame...
+ static const bool isPortable = !fileExists(impl::getInstallDir() + L"uninstall.exe"); //this check is a bit lame...
+
#elif defined FFS_LINUX
- static const bool isPortable = !impl::getBinaryDir().EndsWith(wxT("/bin/")); //this check is a bit lame...
+ static const bool isPortable = !endsWith(impl::getBinaryDir(), "/bin/"); //this check is a bit lame...
#endif
return isPortable;
}
inline
-wxString getResourceDir()
+Zstring getResourceDir()
{
#ifdef FFS_WIN
return impl::getInstallDir();
+
#elif defined FFS_LINUX
if (isPortableVersion())
return impl::getBinaryDir();
else //use OS' standard paths
{
- wxString resourceDir = wxStandardPathsBase::Get().GetResourcesDir();
+ Zstring resourceDir = toZ(wxStandardPathsBase::Get().GetResourcesDir());
if (!endsWith(resourceDir, FILE_NAME_SEPARATOR))
resourceDir += FILE_NAME_SEPARATOR;
@@ -88,7 +92,7 @@ wxString getResourceDir()
inline
-wxString getConfigDir()
+Zstring getConfigDir()
{
if (isPortableVersion())
#ifdef FFS_WIN
@@ -100,10 +104,14 @@ wxString getConfigDir()
#endif
else //use OS' standard paths
{
- wxString userDirectory = wxStandardPathsBase::Get().GetUserDataDir();
+ Zstring userDirectory = toZ(wxStandardPathsBase::Get().GetUserDataDir());
- if (!wxDirExists(userDirectory))
- ::wxMkdir(userDirectory); //only top directory needs to be created: no recursion necessary
+ if (!dirExists(userDirectory))
+ try
+ {
+ createDirectory(userDirectory); //only top directory needs to be created: no recursion necessary
+ }
+ catch (const FileError&) {}
if (!endsWith(userDirectory, FILE_NAME_SEPARATOR))
userDirectory += FILE_NAME_SEPARATOR;
@@ -114,12 +122,12 @@ wxString getConfigDir()
inline
-wxString getLauncher()
+Zstring getLauncher()
{
#ifdef FFS_WIN
- return impl::getInstallDir() + wxT("FreeFileSync.exe");
+ return impl::getInstallDir() + Zstr("FreeFileSync.exe");
#elif defined FFS_LINUX
- return impl::getBinaryDir() + wxT("FreeFileSync");
+ return impl::getBinaryDir() + Zstr("FreeFileSync");
#endif
}
}
bgstack15