myxlib/src/myx/filesystem/paths.hpp

64 lines
1.7 KiB
C++
Raw Normal View History

#ifndef MYX_FILESYSTEM_PATHS_HPP_
#define MYX_FILESYSTEM_PATHS_HPP_
2019-11-25 12:08:34 +00:00
#include <myx/filesystem/current_executable.hpp>
#include <QString>
#include <QDir>
#include <QFileInfo>
namespace myx {
namespace filesystem {
class Paths
{
2019-10-21 17:35:50 +00:00
QDir m_prefixDirectory;
QDir m_binaryDirectory;
QDir m_configDirectory;
QDir m_cacheDirectory;
QDir m_tempDirectory;
QDir m_dataDirectory;
2019-11-25 12:08:34 +00:00
QDir m_logDirectory;
2019-10-21 17:35:50 +00:00
QDir m_homeDirectory;
2019-11-25 12:08:34 +00:00
QString m_configFileExtension;
2019-10-21 17:35:50 +00:00
QString m_configFileName;
QFileInfo m_configFilePath;
2019-11-25 12:08:34 +00:00
CurrentExecutable m_currentExecutable;
public:
2019-11-25 12:08:34 +00:00
Paths( const QString& configFileExtension = "conf" );
QDir prefixDirectory() const;
void setPrefixDirectory( const QString& prefixDirectory );
QDir binaryDirectory() const;
void setBinaryDirectory( const QString& binaryDirectory );
QDir configDirectory() const;
void setConfigDirectory( const QString& configDirectory );
QDir cacheDirectory() const;
void setCacheDirectory( const QString& cacheDirectory );
QDir tempDirectory() const;
void setTempDirectory( const QString& tempDirectory );
QDir dataDirectory() const;
void setDataDirectory( const QString& dataDirectory );
2019-11-25 12:08:34 +00:00
QDir logDirectory() const;
void setLogDirectory( const QString& logDirectory );
QString executableFileName() const;
QString configFileName() const;
void setConfigFileName( const QString& configFileName );
QFileInfo executableFilePath() const;
QFileInfo configFilePath() const;
void setConfigFilePath( const QFileInfo& configFilePath );
bool updatePaths();
bool makeDefaultDirectories();
QString findConfigFile( const QString& defaultConfigFile = "" );
}; // class Paths
} // namespace filesystem
} // namespace myx
#endif // MYX_FILESYSTEM_PATHS_HPP_