diff options
Diffstat (limited to 'SwifTools/Application/ApplicationPathProvider.cpp')
| -rw-r--r-- | SwifTools/Application/ApplicationPathProvider.cpp | 47 | 
1 files changed, 47 insertions, 0 deletions
diff --git a/SwifTools/Application/ApplicationPathProvider.cpp b/SwifTools/Application/ApplicationPathProvider.cpp new file mode 100644 index 0000000..bf0a19e --- /dev/null +++ b/SwifTools/Application/ApplicationPathProvider.cpp @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <boost/filesystem.hpp> +#include <iostream> + +#include "SwifTools/Application/ApplicationPathProvider.h" +#include "Swiften/Base/foreach.h" + +namespace Swift { + +ApplicationPathProvider::ApplicationPathProvider(const String& applicationName) : applicationName(applicationName) { +} + +ApplicationPathProvider::~ApplicationPathProvider() { +} + +boost::filesystem::path ApplicationPathProvider::getAvatarDir() const { +	return getDataDir() / "avatars"; +} + +boost::filesystem::path ApplicationPathProvider::getProfileDir(const String& profile) const { +	boost::filesystem::path result(getHomeDir() / profile.getUTF8String()); +	try { +		boost::filesystem::create_directory(result); +	} +	catch (const boost::filesystem::filesystem_error& e) { +		std::cerr << "ERROR: " << e.what() << std::endl; +	} +	return result; +} + +boost::filesystem::path ApplicationPathProvider::getResourcePath(const String& resource) const { +	std::vector<boost::filesystem::path> resourcePaths = getResourceDirs(); +	foreach(const boost::filesystem::path& resourcePath, resourcePaths) { +		boost::filesystem::path r(resourcePath / resource.getUTF8String()); +		if (boost::filesystem::exists(r)) { +			return r; +		} +	} +	return boost::filesystem::path(); +} + +}  | 
 Swift