Новый способ определения каталогов
This commit is contained in:
parent
4f507da585
commit
189d85719e
@ -1,6 +1,5 @@
|
||||
#include "current_executable.hpp"
|
||||
|
||||
#include <myx/base/config.hpp>
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
|
||||
#include <paths.h>
|
||||
#include <QString>
|
||||
|
@ -1,15 +1,18 @@
|
||||
/**
|
||||
* @file current_executable.hpp
|
||||
* @brief Параметры исполняемового файла
|
||||
* @brief Параметры исполняемого файла
|
||||
*/
|
||||
|
||||
#ifndef MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||
#define MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
|
||||
|
||||
namespace myx {
|
||||
|
||||
namespace filesystem {
|
||||
@ -25,6 +28,7 @@ class CurrentExecutable
|
||||
/// Имя текущего исполняемого файла
|
||||
QString m_fileName;
|
||||
|
||||
friend class Paths;
|
||||
public:
|
||||
/**
|
||||
* @brief Конструктор, собирающий информацию о текущем исполняемом файле.
|
||||
|
@ -1,7 +1,6 @@
|
||||
#include "paths.hpp"
|
||||
|
||||
#include <myx/base/config.hpp>
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
#include <myx/filesystem/paths.hpp>
|
||||
|
||||
#include <paths.h>
|
||||
#include <QString>
|
||||
@ -11,149 +10,27 @@ namespace myx {
|
||||
|
||||
namespace filesystem {
|
||||
|
||||
QString Paths::executableFileName() const
|
||||
{
|
||||
return( m_currentExecutable.fileName() );
|
||||
}
|
||||
|
||||
|
||||
QString Paths::configFileName() const
|
||||
{
|
||||
return( m_configFileName );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigFileName( const QString& configFileName )
|
||||
{
|
||||
m_configFileName = configFileName;
|
||||
}
|
||||
|
||||
|
||||
QFileInfo Paths::executableFilePath() const
|
||||
{
|
||||
return( m_currentExecutable.canonicalFilePath() );
|
||||
}
|
||||
|
||||
|
||||
QFileInfo Paths::configFilePath() const
|
||||
{
|
||||
return( m_configFilePath );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigFilePath( const QFileInfo& configFilePath )
|
||||
{
|
||||
m_configFilePath = configFilePath;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::logDirectory() const
|
||||
{
|
||||
return( m_logDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setLogDirectory( const QString& logDirectory )
|
||||
{
|
||||
m_logDirectory = logDirectory;
|
||||
}
|
||||
|
||||
|
||||
Paths::Paths( QString configFileExtension ) :
|
||||
m_prefixDirectory ( "/opt/" + QCoreApplication::organizationName().toLower() +
|
||||
"/" + QCoreApplication::applicationName().toLower() ),
|
||||
m_configFileExtension( std::move( configFileExtension ) )
|
||||
m_prefixDirectory ( "/opt/" + QCoreApplication::organizationName().toLower() +
|
||||
"/" + QCoreApplication::applicationName().toLower() ),
|
||||
m_configFileExtension ( std::move( configFileExtension ) ),
|
||||
m_projectDirectoryName( QCoreApplication::applicationName().toLower() )
|
||||
{
|
||||
auto pd = m_prefixDirectory.absolutePath();
|
||||
m_binaryDirectory = pd + "/bin";
|
||||
m_configDirectory = pd + "/etc";
|
||||
m_cacheDirectory = pd + "/var";
|
||||
m_logDirectory = pd + "/var/log";
|
||||
m_tempDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "TMPDIR" ) ) );
|
||||
m_dataDirectory = pd + "/share";
|
||||
m_homeDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "HOME" ) ) );
|
||||
m_configFileName = QCoreApplication::applicationName().toLower() +
|
||||
"." + m_configFileExtension;
|
||||
m_configFilePath = m_binaryDirectory.absolutePath() +
|
||||
"/" + m_configFileName;
|
||||
// m_systemConfigDirectory = pd + "/etc/" + m_projectDirectoryName;
|
||||
// m_userCacheDirectory = pd + "/var/lib/" + m_projectDirectoryName;
|
||||
// m_logDirectory = pd + "/var/log/" + m_projectDirectoryName;
|
||||
// m_dataDirectory = pd + "/share/" + m_projectDirectoryName;
|
||||
// m_tempDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "TMPDIR" ) ) );
|
||||
// m_homeDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "HOME" ) ) );
|
||||
// m_configFileName = m_projectDirectoryName + "." + m_configFileExtension;
|
||||
// m_configFilePath = m_systemConfigDirectory.absolutePath() + "/" + m_configFileName;
|
||||
|
||||
|
||||
if ( m_tempDirectory.absolutePath().isEmpty() || ( m_tempDirectory.path() == "." ) )
|
||||
{
|
||||
m_tempDirectory = QStringLiteral( _PATH_TMP );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::prefixDirectory() const
|
||||
{
|
||||
return( m_prefixDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setPrefixDirectory( const QString& prefixDirectory )
|
||||
{
|
||||
m_prefixDirectory = prefixDirectory;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::binaryDirectory() const
|
||||
{
|
||||
return( m_binaryDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setBinaryDirectory( const QString& binaryDirectory )
|
||||
{
|
||||
m_binaryDirectory = binaryDirectory;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::configDirectory() const
|
||||
{
|
||||
return( m_configDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigDirectory( const QString& configDirectory )
|
||||
{
|
||||
m_configDirectory = configDirectory;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::cacheDirectory() const
|
||||
{
|
||||
return( m_cacheDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setCacheDirectory( const QString& cacheDirectory )
|
||||
{
|
||||
m_cacheDirectory = cacheDirectory;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::tempDirectory() const
|
||||
{
|
||||
return( m_tempDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setTempDirectory( const QString& tempDirectory )
|
||||
{
|
||||
m_tempDirectory = tempDirectory;
|
||||
}
|
||||
|
||||
|
||||
QDir Paths::dataDirectory() const
|
||||
{
|
||||
return( m_dataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setDataDirectory( const QString& dataDirectory )
|
||||
{
|
||||
m_dataDirectory = dataDirectory;
|
||||
// if ( m_tempDirectory.absolutePath().isEmpty() || ( m_tempDirectory.path() == "." ) )
|
||||
// {
|
||||
// m_tempDirectory = QStringLiteral( _PATH_TMP );
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
@ -161,49 +38,49 @@ bool Paths::updatePaths()
|
||||
{
|
||||
m_binaryDirectory = m_currentExecutable.canonicalPath();
|
||||
|
||||
if ( m_binaryDirectory.absolutePath().endsWith( "/bin" ) )
|
||||
{
|
||||
m_prefixDirectory = m_binaryDirectory.absolutePath().remove( QRegExp( "/bin$" ) );
|
||||
m_configDirectory = m_prefixDirectory.absolutePath() + "/etc";
|
||||
m_cacheDirectory = m_prefixDirectory.absolutePath() + "/var";
|
||||
m_logDirectory = m_prefixDirectory.absolutePath() + "/var/log";
|
||||
m_dataDirectory = m_prefixDirectory.absolutePath() + "/share";
|
||||
m_configFilePath = QFile( m_configDirectory.absolutePath() +
|
||||
"/" + QCoreApplication::applicationName() +
|
||||
"." + m_configFileExtension );
|
||||
}
|
||||
// if ( m_binaryDirectory.absolutePath().endsWith( "/bin" ) )
|
||||
// {
|
||||
// m_prefixDirectory = m_binaryDirectory.absolutePath().remove( QRegExp( "/bin$" ) );
|
||||
// m_systemConfigDirectory = m_prefixDirectory.absolutePath() + "/etc/" + m_projectDirectoryName;
|
||||
// m_userCacheDirectory = m_prefixDirectory.absolutePath() + "/var/lib/" + m_projectDirectoryName;
|
||||
// m_logDirectory = m_prefixDirectory.absolutePath() + "/var/log/" + m_projectDirectoryName;
|
||||
// m_dataDirectory = m_prefixDirectory.absolutePath() + "/share/" + m_projectDirectoryName;
|
||||
// m_configFilePath = QFile( m_systemConfigDirectory.absolutePath() +
|
||||
// "/" + QCoreApplication::applicationName() +
|
||||
// "." + m_configFileExtension );
|
||||
// }
|
||||
|
||||
if ( m_prefixDirectory.absolutePath().startsWith( "/opt" ) ||
|
||||
m_prefixDirectory.absolutePath().startsWith( "/usr" ) )
|
||||
{
|
||||
QString dataDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_DATA_HOME" ) ) );
|
||||
if ( dataDirectory.isEmpty() )
|
||||
{
|
||||
dataDirectory = m_homeDirectory.absolutePath() + ".local/share";
|
||||
}
|
||||
m_dataDirectory = dataDirectory + "/" +
|
||||
QCoreApplication::organizationName().toLower() + "/" +
|
||||
QCoreApplication::applicationName().toLower();
|
||||
// if ( m_prefixDirectory.absolutePath().startsWith( "/opt" ) ||
|
||||
// m_prefixDirectory.absolutePath().startsWith( "/usr" ) )
|
||||
// {
|
||||
// QString dataDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_DATA_HOME" ) ) );
|
||||
// if ( dataDirectory.isEmpty() )
|
||||
// {
|
||||
// dataDirectory = m_homeDirectory.absolutePath() + ".local/share";
|
||||
// }
|
||||
// m_dataDirectory = dataDirectory + "/" +
|
||||
// QCoreApplication::organizationName().toLower() + "/" +
|
||||
// QCoreApplication::applicationName().toLower();
|
||||
|
||||
QString configDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CONFIG_HOME" ) ) );
|
||||
if ( configDirectory.isEmpty() )
|
||||
{
|
||||
configDirectory = m_homeDirectory.absolutePath() + ".config";
|
||||
}
|
||||
m_configDirectory = configDirectory + "/" +
|
||||
QCoreApplication::organizationName().toLower() + "/" +
|
||||
QCoreApplication::applicationName().toLower();
|
||||
// QString configDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CONFIG_HOME" ) ) );
|
||||
// if ( configDirectory.isEmpty() )
|
||||
// {
|
||||
// configDirectory = m_homeDirectory.absolutePath() + ".config";
|
||||
// }
|
||||
// m_systemConfigDirectory = configDirectory + "/" +
|
||||
// QCoreApplication::organizationName().toLower() + "/" +
|
||||
// QCoreApplication::applicationName().toLower();
|
||||
|
||||
QString cacheDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CACHE_HOME" ) ) );
|
||||
if ( cacheDirectory.isEmpty() )
|
||||
{
|
||||
cacheDirectory = m_homeDirectory.absolutePath() + ".cache";
|
||||
}
|
||||
m_cacheDirectory = cacheDirectory + "/" +
|
||||
QCoreApplication::organizationName().toLower() + "/" +
|
||||
QCoreApplication::applicationName().toLower();
|
||||
m_logDirectory = m_cacheDirectory.absolutePath() + "/log";
|
||||
}
|
||||
// QString cacheDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CACHE_HOME" ) ) );
|
||||
// if ( cacheDirectory.isEmpty() )
|
||||
// {
|
||||
// cacheDirectory = m_homeDirectory.absolutePath() + ".cache";
|
||||
// }
|
||||
// m_userCacheDirectory = cacheDirectory + "/" +
|
||||
// QCoreApplication::organizationName().toLower() + "/" +
|
||||
// QCoreApplication::applicationName().toLower();
|
||||
// m_logDirectory = m_userCacheDirectory.absolutePath() + "/log";
|
||||
// }
|
||||
|
||||
return( true );
|
||||
} // Paths::updatePaths
|
||||
@ -213,10 +90,10 @@ bool Paths::makeDefaultDirectories()
|
||||
{
|
||||
bool status = true;
|
||||
|
||||
if ( !m_dataDirectory.mkpath( m_dataDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_configDirectory.mkpath( m_configDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_cacheDirectory.mkpath( m_cacheDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_logDirectory.mkpath( m_logDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_userConfigDirectory.mkpath( m_userConfigDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_userVarDataDirectory.mkpath( m_userVarDataDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_userConstDataDirectory.mkpath( m_userConstDataDirectory.absolutePath() ) ) { status = false; }
|
||||
if ( !m_userLogDirectory.mkpath( m_userLogDirectory.absolutePath() ) ) { status = false; }
|
||||
return( status );
|
||||
}
|
||||
|
||||
@ -245,6 +122,252 @@ QString Paths::findConfigFile( const QString& defaultConfigFile )
|
||||
return( QString() );
|
||||
} // Paths::findConfigFile
|
||||
|
||||
|
||||
const QDir& Paths::prefixDirectory() const
|
||||
{
|
||||
return( m_prefixDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setPrefixDirectory( const QString& prefixDirectory )
|
||||
{
|
||||
m_prefixDirectory = prefixDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::binaryDirectory() const
|
||||
{
|
||||
return( m_binaryDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setBinaryDirectory( const QString& binaryDirectory )
|
||||
{
|
||||
m_binaryDirectory = binaryDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::userConfigDirectory() const
|
||||
{
|
||||
return( m_userConfigDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setUserConfigDirectory( const QString& userConfigDirectory )
|
||||
{
|
||||
m_userConfigDirectory = userConfigDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::systemConfigDirectory() const
|
||||
{
|
||||
return( m_systemConfigDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setSystemConfigDirectory( const QString& systemConfigDirectory )
|
||||
{
|
||||
m_systemConfigDirectory = systemConfigDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::localConfigDirectory() const
|
||||
{
|
||||
return( m_localConfigDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setLocalConfigDirectory( const QString& localConfigDirectory )
|
||||
{
|
||||
m_localConfigDirectory = localConfigDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QFileInfo& Paths::configFilePath() const
|
||||
{
|
||||
return( m_configFilePath );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigFilePath( const QFileInfo& configFilePath )
|
||||
{
|
||||
m_configFilePath = configFilePath;
|
||||
}
|
||||
|
||||
|
||||
const QString& Paths::configFileName() const
|
||||
{
|
||||
return( m_configFileName );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigFileName( const QString& configFileName )
|
||||
{
|
||||
m_configFileName = configFileName;
|
||||
}
|
||||
|
||||
|
||||
const QString& Paths::configFileExtension() const
|
||||
{
|
||||
return( m_configFileExtension );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setConfigFileExtension( const QString& configFileExtension )
|
||||
{
|
||||
m_configFileExtension = configFileExtension;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::userVarDataDirectory() const
|
||||
{
|
||||
return( m_userVarDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setUserVarDataDirectory( const QString& userVarDataDirectory )
|
||||
{
|
||||
m_userVarDataDirectory = userVarDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::systemVarDataDirectory() const
|
||||
{
|
||||
return( m_systemVarDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setSystemVarDataDirectory( const QString& systemVarDataDirectory )
|
||||
{
|
||||
m_systemVarDataDirectory = systemVarDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::localVarDataDirectory() const
|
||||
{
|
||||
return( m_localVarDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setLocalVarDataDirectory( const QString& localVarDataDirectory )
|
||||
{
|
||||
m_localVarDataDirectory = localVarDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::userConstDataDirectory() const
|
||||
{
|
||||
return( m_userConstDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setUserConstDataDirectory( const QString& userConstDataDirectory )
|
||||
{
|
||||
m_userConstDataDirectory = userConstDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::systemConstDataDirectory() const
|
||||
{
|
||||
return( m_systemConstDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setSystemConstDataDirectory( const QString& systemConstDataDirectory )
|
||||
{
|
||||
m_systemConstDataDirectory = systemConstDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::localConstDataDirectory() const
|
||||
{
|
||||
return( m_localConstDataDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setLocalConstDataDirectory( const QString& localConstDataDirectory )
|
||||
{
|
||||
m_localConstDataDirectory = localConstDataDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::userLogDirectory() const
|
||||
{
|
||||
return( m_userLogDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setUserLogDirectory( const QString& userLogDirectory )
|
||||
{
|
||||
m_userLogDirectory = userLogDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::systemLogDirectory() const
|
||||
{
|
||||
return( m_systemLogDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setSystemLogDirectory( const QString& systemLogDirectory )
|
||||
{
|
||||
m_systemLogDirectory = systemLogDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::localLogDirectory() const
|
||||
{
|
||||
return( m_localLogDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setLocalLogDirectory( const QString& localLogDirectory )
|
||||
{
|
||||
m_localLogDirectory = localLogDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::tempDirectory() const
|
||||
{
|
||||
return( m_tempDirectory );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setTempDirectory( const QString& tempDirectory )
|
||||
{
|
||||
m_tempDirectory = tempDirectory;
|
||||
}
|
||||
|
||||
|
||||
const QDir& Paths::homeDirectory() const
|
||||
{
|
||||
return( m_homeDirectory );
|
||||
}
|
||||
|
||||
|
||||
const QString& Paths::projectDirectoryName() const
|
||||
{
|
||||
return( m_projectDirectoryName );
|
||||
}
|
||||
|
||||
|
||||
void Paths::setProjectDirectoryName( const QString& projectDirectoryName )
|
||||
{
|
||||
m_projectDirectoryName = projectDirectoryName;
|
||||
}
|
||||
|
||||
|
||||
const QString& Paths::executableFileName() const
|
||||
{
|
||||
return( m_currentExecutable.m_fileName );
|
||||
}
|
||||
|
||||
|
||||
const QFileInfo& Paths::executableFilePath() const
|
||||
{
|
||||
return( m_currentExecutable.m_canonicalFilePath );
|
||||
}
|
||||
|
||||
} // namespace filesystem
|
||||
|
||||
} // namespace myx
|
||||
|
@ -6,41 +6,67 @@
|
||||
#ifndef MYX_FILESYSTEM_PATHS_HPP_
|
||||
#define MYX_FILESYSTEM_PATHS_HPP_
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <myx/filesystem/current_executable.hpp>
|
||||
|
||||
#include <QString>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
|
||||
|
||||
namespace myx {
|
||||
|
||||
namespace filesystem {
|
||||
|
||||
class Paths
|
||||
{
|
||||
/// Путь к базовому каталогу
|
||||
/// @brief Путь к базовому каталогу
|
||||
QDir m_prefixDirectory;
|
||||
/// Путь к каталогу с исполняемым файлом
|
||||
/// @brief Путь к каталогу с исполняемым файлом
|
||||
QDir m_binaryDirectory;
|
||||
/// Путь к каталогу с изменяемыми файлами
|
||||
QDir m_cacheDirectory;
|
||||
/// Путь к каталогу с временными файлами
|
||||
QDir m_tempDirectory;
|
||||
/// Путь к каталогу с неизменяемыми файлами
|
||||
QDir m_dataDirectory;
|
||||
/// Путь к каталогу с журналами работы
|
||||
QDir m_logDirectory;
|
||||
/// Путь к домашнему каталогу текущего пользователя
|
||||
QDir m_homeDirectory;
|
||||
/// Путь к каталогу с файлами настройки
|
||||
QDir m_configDirectory;
|
||||
/// Полный путь к файлу настройки
|
||||
|
||||
/// @brief Путь к пользовательскому каталогу с файлами настройки
|
||||
QDir m_userConfigDirectory;
|
||||
/// @brief Путь к системному каталогу с файлами настройки
|
||||
QDir m_systemConfigDirectory;
|
||||
/// @brief Путь к локальному каталогу с файлами настройки
|
||||
QDir m_localConfigDirectory;
|
||||
/// @brief Полный путь к файлу настройки
|
||||
QFileInfo m_configFilePath;
|
||||
/// Имя файла настройки
|
||||
/// @brief Имя файла настройки
|
||||
QString m_configFileName;
|
||||
/// Расширение для файла настройки
|
||||
/// @brief Расширение для файла настройки
|
||||
QString m_configFileExtension;
|
||||
|
||||
/// @brief Путь к пользовательскому каталогу с изменяемыми файлами
|
||||
QDir m_userVarDataDirectory;
|
||||
/// @brief Путь к системному каталогу с изменяемыми файлами
|
||||
QDir m_systemVarDataDirectory;
|
||||
/// @brief Путь к локальному каталогу с изменяемыми файлами
|
||||
QDir m_localVarDataDirectory;
|
||||
|
||||
/// @brief Путь к пользовательскому каталогу с неизменяемыми файлами
|
||||
QDir m_userConstDataDirectory;
|
||||
/// @brief Путь к системному каталогу с неизменяемыми файлами
|
||||
QDir m_systemConstDataDirectory;
|
||||
/// @brief Путь к локальному каталогу с неизменяемыми файлами
|
||||
QDir m_localConstDataDirectory;
|
||||
|
||||
/// @brief Путь к пользовательскому каталогу с журналами работы
|
||||
QDir m_userLogDirectory;
|
||||
/// @brief Путь к системному каталогу с журналами работы
|
||||
QDir m_systemLogDirectory;
|
||||
/// @brief Путь к локальному каталогу с журналами работы
|
||||
QDir m_localLogDirectory;
|
||||
|
||||
/// @brief Путь к каталогу с временными файлами
|
||||
QDir m_tempDirectory;
|
||||
/// @brief Путь к домашнему каталогу текущего пользователя
|
||||
QDir m_homeDirectory;
|
||||
/// @brief Имя подкаталога для проекта
|
||||
QString m_projectDirectoryName;
|
||||
|
||||
/// Параметры текущего исполняемого файла
|
||||
CurrentExecutable m_currentExecutable;
|
||||
|
||||
@ -50,91 +76,12 @@ public:
|
||||
* @param configFileExtension Расширение для файла настройки
|
||||
*/
|
||||
Paths( QString configFileExtension = "conf" );
|
||||
/**
|
||||
* @brief Получение пути к базовому каталогу
|
||||
*/
|
||||
QDir prefixDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к базовому каталогу
|
||||
*/
|
||||
void setPrefixDirectory( const QString& prefixDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с исполняемым файлом
|
||||
*/
|
||||
QDir binaryDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с исполняемым файлом
|
||||
*/
|
||||
void setBinaryDirectory( const QString& binaryDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с файлами настройки
|
||||
*/
|
||||
QDir configDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с файлами настройки
|
||||
*/
|
||||
void setConfigDirectory( const QString& configDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с изменяемыми файлами
|
||||
*/
|
||||
QDir cacheDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с изменяемыми файлами
|
||||
*/
|
||||
void setCacheDirectory( const QString& cacheDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с временными файлами
|
||||
*/
|
||||
QDir tempDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с временными файлами
|
||||
*/
|
||||
void setTempDirectory( const QString& tempDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с неизменяемыми файлами
|
||||
*/
|
||||
QDir dataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с неизменяемыми файлами
|
||||
*/
|
||||
void setDataDirectory( const QString& dataDirectory );
|
||||
/**
|
||||
* @brief Получение пути к каталогу с журналами работы
|
||||
*/
|
||||
QDir logDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с журналами работы
|
||||
*/
|
||||
void setLogDirectory( const QString& logDirectory );
|
||||
/**
|
||||
* @brief Имя исполняемого файла
|
||||
*/
|
||||
QString executableFileName() const;
|
||||
/**
|
||||
* @brief Полный путь к исполняемому файлу
|
||||
*/
|
||||
QFileInfo executableFilePath() const;
|
||||
/**
|
||||
* @brief Имя файла настройки
|
||||
*/
|
||||
QString configFileName() const;
|
||||
/**
|
||||
* @brief Установка имени файла настройки
|
||||
*/
|
||||
void setConfigFileName( const QString& configFileName );
|
||||
/**
|
||||
* @brief Полный путь к файлу настройки
|
||||
*/
|
||||
QFileInfo configFilePath() const;
|
||||
/**
|
||||
* @brief Установка полного пути к файлу настройки
|
||||
*/
|
||||
void setConfigFilePath( const QFileInfo& configFilePath );
|
||||
|
||||
/**
|
||||
* @brief Обновление путей с учётом расположения исполняемого файла
|
||||
*/
|
||||
bool updatePaths();
|
||||
|
||||
/**
|
||||
* @brief Создание стандартных каталогов
|
||||
*/
|
||||
@ -149,6 +96,191 @@ public:
|
||||
* Если файл настройки не будет найден, то будет возвращена пустая строка
|
||||
*/
|
||||
QString findConfigFile( const QString& defaultConfigFile = "" );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к базовому каталогу
|
||||
*/
|
||||
const QDir& prefixDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к базовому каталогу
|
||||
*/
|
||||
void setPrefixDirectory( const QString& prefixDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к каталогу с исполняемым файлом
|
||||
*/
|
||||
const QDir& binaryDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с исполняемым файлом
|
||||
*/
|
||||
void setBinaryDirectory( const QString& binaryDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к пользовательскому каталогу с файлами настройки
|
||||
*/
|
||||
const QDir& userConfigDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к пользовательскому каталогу с файлами настройки
|
||||
*/
|
||||
void setUserConfigDirectory( const QString& userConfigDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к системному каталогу с файлами настройки
|
||||
*/
|
||||
const QDir& systemConfigDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к системному каталогу с файлами настройки
|
||||
*/
|
||||
void setSystemConfigDirectory( const QString& systemConfigDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к локальному каталогу с файлами настройки
|
||||
*/
|
||||
const QDir& localConfigDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к локальному каталогу с файлами настройки
|
||||
*/
|
||||
void setLocalConfigDirectory( const QString& localConfigDirectory );
|
||||
|
||||
/**
|
||||
* @brief Полный путь к файлу настройки
|
||||
*/
|
||||
const QFileInfo& configFilePath() const;
|
||||
/**
|
||||
* @brief Установка полного пути к файлу настройки
|
||||
*/
|
||||
void setConfigFilePath( const QFileInfo& configFilePath );
|
||||
|
||||
/**
|
||||
* @brief Имя файла настройки
|
||||
*/
|
||||
const QString& configFileName() const;
|
||||
/**
|
||||
* @brief Установка имени файла настройки
|
||||
*/
|
||||
void setConfigFileName( const QString& configFileName );
|
||||
|
||||
/**
|
||||
* @brief Расширение у файла настройки
|
||||
*/
|
||||
const QString& configFileExtension() const;
|
||||
/**
|
||||
* @brief Установка расширения у файла настройки
|
||||
*/
|
||||
void setConfigFileExtension( const QString& configFileExtension );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к пользовательскому каталогу с изменяемыми файлами
|
||||
*/
|
||||
const QDir& userVarDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к пользовательскому каталогу с изменяемыми файлами
|
||||
*/
|
||||
void setUserVarDataDirectory( const QString& userVarDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к системному каталогу с изменяемыми файлами
|
||||
*/
|
||||
const QDir& systemVarDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к системному каталогу с изменяемыми файлами
|
||||
*/
|
||||
void setSystemVarDataDirectory( const QString& systemVarDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к локальному каталогу с изменяемыми файлами
|
||||
*/
|
||||
const QDir& localVarDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к локальному каталогу с изменяемыми файлами
|
||||
*/
|
||||
void setLocalVarDataDirectory( const QString& localVarDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к пользовательскому каталогу с неизменяемыми файлами
|
||||
*/
|
||||
const QDir& userConstDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к пользовательскому каталогу с неизменяемыми файлами
|
||||
*/
|
||||
void setUserConstDataDirectory( const QString& userConstDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к системному каталогу с неизменяемыми файлами
|
||||
*/
|
||||
const QDir& systemConstDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к системному каталогу с неизменяемыми файлами
|
||||
*/
|
||||
void setSystemConstDataDirectory( const QString& systemConstDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к локальному каталогу с неизменяемыми файлами
|
||||
*/
|
||||
const QDir& localConstDataDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к локальному каталогу с неизменяемыми файлами
|
||||
*/
|
||||
void setLocalConstDataDirectory( const QString& localConstDataDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к пользовательскому каталогу с журналами работы
|
||||
*/
|
||||
const QDir& userLogDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к пользовательскому каталогу с журналами работы
|
||||
*/
|
||||
void setUserLogDirectory( const QString& userLogDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к системному каталогу с журналами работы
|
||||
*/
|
||||
const QDir& systemLogDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к системному каталогу с журналами работы
|
||||
*/
|
||||
void setSystemLogDirectory( const QString& systemLogDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к локальному каталогу с журналами работы
|
||||
*/
|
||||
const QDir& localLogDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к локальному каталогу с журналами работы
|
||||
*/
|
||||
void setLocalLogDirectory( const QString& localLogDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к каталогу с временными файлами
|
||||
*/
|
||||
const QDir& tempDirectory() const;
|
||||
/**
|
||||
* @brief Установка пути к каталогу с временными файлами
|
||||
*/
|
||||
void setTempDirectory( const QString& tempDirectory );
|
||||
|
||||
/**
|
||||
* @brief Получение пути к домашнему каталогу текущего пользователя
|
||||
*/
|
||||
const QDir& homeDirectory() const;
|
||||
|
||||
/**
|
||||
* @brief Имя подкаталога для проекта
|
||||
*/
|
||||
const QString& projectDirectoryName() const;
|
||||
/**
|
||||
* @brief Установка имени подкаталога для проекта
|
||||
*/
|
||||
void setProjectDirectoryName( const QString& projectDirectoryName );
|
||||
|
||||
/**
|
||||
* @brief Имя исполняемого файла
|
||||
*/
|
||||
const QString& executableFileName() const;
|
||||
/**
|
||||
* @brief Полный путь к исполняемому файлу
|
||||
*/
|
||||
const QFileInfo& executableFilePath() const;
|
||||
}; // class Paths
|
||||
|
||||
} // namespace filesystem
|
||||
|
Loading…
Reference in New Issue
Block a user