Testing a third way to solve the path issue

pull/37/head
Alexander "Ace" Olofsson 12 years ago
parent 6e317f00eb
commit 97f1be2b05

@ -69,7 +69,7 @@ struct FixedPath
* \param [in] application_name - Name of the application
*/
FixedPath(const std::string& application_name)
: mPath()
: mPath(application_name)
, mUserPath(mPath.getUserPath())
, mGlobalPath(mPath.getGlobalPath())
, mLocalPath(mPath.getLocalPath())
@ -77,18 +77,6 @@ struct FixedPath
, mInstallPath(mPath.getInstallPath())
, mCachePath(mPath.getCachePath())
{
if (!application_name.empty())
{
boost::filesystem::path suffix(application_name + std::string("/"));
mUserPath /= suffix;
mGlobalPath /= suffix;
mGlobalDataPath /= suffix;
mCachePath /= suffix;
#ifdef _WIN32
mCachePath /= "cache";
#endif
}
}
/**

@ -36,10 +36,15 @@
namespace Files
{
LinuxPath::LinuxPath(const std::string& application_name)
: mName(application_name)
{
}
boost::filesystem::path LinuxPath::getUserPath() const
{
boost::filesystem::path userPath(".");
boost::filesystem::path suffix("/");
boost::filesystem::path suffix(mName);
const char* theDir = getenv("HOME");
if (theDir == NULL)
@ -65,6 +70,7 @@ boost::filesystem::path LinuxPath::getUserPath() const
boost::filesystem::path LinuxPath::getCachePath() const
{
boost::filesystem::path userPath(".");
boost::filesystem::path suffix(mName);
const char* theDir = getenv("HOME");
if (theDir == NULL)
@ -80,7 +86,7 @@ boost::filesystem::path LinuxPath::getCachePath() const
{
userPath = boost::filesystem::path(theDir);
}
userPath /= ".cache";
userPath /= ".cache" / suffix;
return userPath;
}
@ -88,7 +94,7 @@ boost::filesystem::path LinuxPath::getCachePath() const
boost::filesystem::path LinuxPath::getGlobalPath() const
{
boost::filesystem::path globalPath("/etc/");
return globalPath;
return globalPath / mName;
}
boost::filesystem::path LinuxPath::getLocalPath() const
@ -99,7 +105,7 @@ boost::filesystem::path LinuxPath::getLocalPath() const
boost::filesystem::path LinuxPath::getGlobalDataPath() const
{
boost::filesystem::path globalDataPath("/usr/share/games/");
return globalDataPath;
return globalDataPath / mName;
}
boost::filesystem::path LinuxPath::getInstallPath() const

@ -38,6 +38,8 @@ namespace Files
*/
struct LinuxPath
{
LinuxPath(const std::string& application_name);
/**
* \brief Return path to the user directory.
*
@ -80,6 +82,8 @@ struct LinuxPath
* \return boost::filesystem::path
*/
boost::filesystem::path getInstallPath() const;
std::string mName;
};
} /* namespace Files */

@ -39,10 +39,15 @@
namespace Files
{
MacOsPath::MacOsPath(const std::string& application_name)
: mName(application_name)
{
}
boost::filesystem::path MacOsPath::getUserPath() const
{
boost::filesystem::path userPath(".");
boost::filesystem::path suffix("/");
boost::filesystem::path suffix(mName);
const char* theDir = getenv("HOME");
if (theDir == NULL)
@ -66,7 +71,7 @@ boost::filesystem::path MacOsPath::getUserPath() const
boost::filesystem::path MacOsPath::getGlobalPath() const
{
boost::filesystem::path globalPath("/Library/Preferences/");
return globalPath;
return globalPath / mName;
}
boost::filesystem::path MacOsPath::getCachePath() const
@ -84,7 +89,7 @@ boost::filesystem::path MacOsPath::getCachePath() const
}
if (theDir != NULL)
{
userPath = boost::filesystem::path(theDir) / "Library/Caches";
userPath = boost::filesystem::path(theDir) / "Library/Caches" / mName;
}
return userPath;
@ -98,7 +103,7 @@ boost::filesystem::path MacOsPath::getLocalPath() const
boost::filesystem::path MacOsPath::getGlobalDataPath() const
{
boost::filesystem::path globalDataPath("/Library/Application Support/");
return globalDataPath;
return globalDataPath / mName;
}
boost::filesystem::path MacOsPath::getInstallPath() const

@ -38,6 +38,8 @@ namespace Files
*/
struct MacOsPath
{
MacOsPath(const std::string& application_name);
/**
* \brief Return path to the local directory.
*
@ -75,6 +77,8 @@ struct MacOsPath
boost::filesystem::path getGlobalDataPath() const;
boost::filesystem::path getInstallPath() const;
std::string mName;
};
} /* namespace Files */

@ -20,10 +20,15 @@
namespace Files
{
WindowsPath::WindowsPath(const std::string& application_name)
: mName(application_name)
{
}
boost::filesystem::path WindowsPath::getUserPath() const
{
boost::filesystem::path userPath(".");
boost::filesystem::path suffix("/");
boost::filesystem::path suffix(mName);
TCHAR path[MAX_PATH];
memset(path, 0, sizeof(path));
@ -42,7 +47,7 @@ boost::filesystem::path WindowsPath::getUserPath() const
boost::filesystem::path WindowsPath::getGlobalPath() const
{
boost::filesystem::path globalPath(".");
boost::filesystem::path suffix("/");
boost::filesystem::path suffix(mName);
TCHAR path[MAX_PATH];
memset(path, 0, sizeof(path));
@ -69,7 +74,7 @@ boost::filesystem::path WindowsPath::getGlobalDataPath() const
boost::filesystem::path WindowsPath::getCachePath() const
{
return getUserPath();
return getUserPath() / "cache";
}
boost::filesystem::path WindowsPath::getInstallPath() const

@ -38,6 +38,13 @@ namespace Files
*/
struct WindowsPath
{
/**
* \brief WindowsPath constructor.
*
* \param [in] application_name - The name of the application.
*/
WindowsPath(const std::string& application_name);
/**
* \brief Returns user path i.e.:
* "X:\Documents And Settings\<User name>\My Documents\My Games\"
@ -81,6 +88,8 @@ struct WindowsPath
* \return boost::filesystem::path
*/
boost::filesystem::path getInstallPath() const;
std::string mName;
};
} /* namespace Files */

Loading…
Cancel
Save