Новый способ определения каталогов

This commit is contained in:
Andrei Astafev 2020-04-02 01:29:39 +03:00
parent 4f507da585
commit 189d85719e
4 changed files with 542 additions and 284 deletions

View File

@ -1,6 +1,5 @@
#include "current_executable.hpp"
#include <myx/base/config.hpp>
#include <myx/filesystem/current_executable.hpp>
#include <paths.h>
#include <QString>

View File

@ -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 Конструктор, собирающий информацию о текущем исполняемом файле.

View File

@ -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

View File

@ -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