#pragma once #include #include namespace chatterino { class Paths { Paths(); public: static void initInstance(); static Paths *getInstance(); // Root directory for the configuration files. %APPDATA%/chatterino or ExecutablePath for // portable mode QString rootAppDataDirectory; // Directory for settings files. Same as /Settings QString settingsDirectory; // Directory for cache files. Same as /Misc QString cacheDirectory; // Directory for message log files. Same as /Misc QString messageLogDirectory; // Directory for miscellaneous files. Same as /Misc QString miscDirectory; // Hash of QCoreApplication::applicationFilePath() QString applicationFilePathHash; bool createFolder(const QString &folderPath); bool isPortable(); private: static Paths *instance; boost::optional portable; void initAppFilePathHash(); void initCheckPortable(); void initAppDataDirectory(); void initSubDirectories(); }; } // namespace chatterino