diff options
Diffstat (limited to 'Swiften/Application/UnixApplicationPathProvider.h')
-rw-r--r-- | Swiften/Application/UnixApplicationPathProvider.h | 46 |
1 files changed, 4 insertions, 42 deletions
diff --git a/Swiften/Application/UnixApplicationPathProvider.h b/Swiften/Application/UnixApplicationPathProvider.h index 5dd5aa5..c1bfd95 100644 --- a/Swiften/Application/UnixApplicationPathProvider.h +++ b/Swiften/Application/UnixApplicationPathProvider.h @@ -17,49 +17,11 @@ namespace Swift { class UnixApplicationPathProvider : public ApplicationPathProvider { public: - UnixApplicationPathProvider(const String& name) : ApplicationPathProvider(name) { - resourceDirs.push_back(getExecutableDir() / "../resources"); // Development - char* xdgDataDirs = getenv("XDG_DATA_DIRS"); - if (xdgDataDirs) { - std::vector<String> dataDirs = String(xdgDataDirs).split(':'); - if (!dataDirs.empty()) { - foreach(const String& dir, dataDirs) { - resourceDirs.push_back(boost::filesystem::path(dir.getUTF8String()) / "swift"); - } - return; - } - } - resourceDirs.push_back("/usr/local/share/swift"); - resourceDirs.push_back("/usr/share/swift"); - } - - virtual boost::filesystem::path getHomeDir() const { - return boost::filesystem::path(getenv("HOME")); - } + UnixApplicationPathProvider(const String& name); - boost::filesystem::path getDataDir() const { - boost::filesystem::path result(getHomeDir() / ("." + getApplicationName().getLowerCase().getUTF8String())); - try { - boost::filesystem::create_directory(result); - } - catch (const boost::filesystem::filesystem_error& e) { - std::cerr << "ERROR: " << e.what() << std::endl; - } - return result; - } - - virtual boost::filesystem::path getExecutableDir() const { - ByteArray path; - path.resize(4096); - size_t size = readlink("/proc/self/exe", path.getData(), path.getSize()); - if (size > 0) { - path.resize(size); - return boost::filesystem::path(path.toString().getUTF8Data()).parent_path(); - } - else { - return boost::filesystem::path(); - } - } + virtual boost::filesystem::path getHomeDir() const; + boost::filesystem::path getDataDir() const; + virtual boost::filesystem::path getExecutableDir() const; virtual std::vector<boost::filesystem::path> getResourceDirs() const { return resourceDirs; |