X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fquassel.h;h=53d9e0bf9dd97e77222bbcf7e46a205b99ccdab1;hp=1a8f818ce715d63756481a0fd8ffc4b7e1497c60;hb=ace46ddca3818d63d8de9ff481038bda8f5cf982;hpb=f824db0e31b54969e0b7fa0b5405b1e9173d482c diff --git a/src/common/quassel.h b/src/common/quassel.h index 1a8f818c..53d9e0bf 100644 --- a/src/common/quassel.h +++ b/src/common/quassel.h @@ -22,6 +22,7 @@ #define QUASSEL_H_ #include +#include #include #include "abstractcliparser.h" @@ -63,6 +64,34 @@ public: static inline const BuildInfo & buildInfo(); static inline RunMode runMode(); + static QString configDirPath(); + + //! Returns a list of data directory paths + /** There are several locations for applications to install their data files in. On Unix, + * a common location is /usr/share; others include $PREFIX/share and additional directories + * specified in the env variable XDG_DATA_DIRS. + * \return A list of directory paths to look for data files in + */ + static QStringList dataDirPaths(); + + //! Searches for a data file in the possible data directories + /** Data files can reside in $DATA_DIR/apps/quassel, where $DATA_DIR is one of the directories + * returned by \sa dataDirPaths(). + * \Note With KDE integration enabled, files are searched (only) in KDE's appdata dirs. + * \return The full path to the data file if found; a null QString else + */ + static QString findDataFilePath(const QString &filename); + + static QString translationDirPath(); + + //! Returns a list of directories we look for scripts in + /** We look for a subdirectory named "scripts" in the configdir and in all datadir paths. + * \return A list of directory paths containing executable scripts for /exec + */ + static QStringList scriptDirPaths(); + + static void loadTranslation(const QLocale &locale); + static inline void setCliParser(AbstractCliParser *cliParser); static inline AbstractCliParser *cliParser(); static inline QString optionValue(const QString &option); @@ -79,6 +108,8 @@ protected: virtual bool init(); inline void setRunMode(RunMode mode); + inline void setDataDirPaths(const QStringList &paths); + QStringList findDataDirPaths() const; private: void registerMetaTypes(); @@ -92,11 +123,15 @@ private: static bool _initialized; static QString _coreDumpFileName; + static QString _configDirPath; + static QStringList _dataDirPaths; + static QString _translationDirPath; }; const Quassel::BuildInfo & Quassel::buildInfo() { return _buildInfo; } Quassel::RunMode Quassel::runMode() { return _runMode; } void Quassel::setRunMode(Quassel::RunMode mode) { _runMode = mode; } +void Quassel::setDataDirPaths(const QStringList &paths) { _dataDirPaths = paths; } void Quassel::setCliParser(AbstractCliParser *parser) { _cliParser = parser; } AbstractCliParser *Quassel::cliParser() { return _cliParser; }