From 189d85719ed073595c287eb7578a3126b9b63be9 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Thu, 2 Apr 2020 01:29:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D1=81=D0=BE=D0=B1=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/myx/filesystem/current_executable.cpp | 3 +- src/myx/filesystem/current_executable.hpp | 6 +- src/myx/filesystem/paths.cpp | 491 ++++++++++++++-------- src/myx/filesystem/paths.hpp | 326 +++++++++----- 4 files changed, 542 insertions(+), 284 deletions(-) diff --git a/src/myx/filesystem/current_executable.cpp b/src/myx/filesystem/current_executable.cpp index 8110b36..1775326 100644 --- a/src/myx/filesystem/current_executable.cpp +++ b/src/myx/filesystem/current_executable.cpp @@ -1,6 +1,5 @@ -#include "current_executable.hpp" - #include +#include #include #include diff --git a/src/myx/filesystem/current_executable.hpp b/src/myx/filesystem/current_executable.hpp index 32d71ad..4ddd16b 100644 --- a/src/myx/filesystem/current_executable.hpp +++ b/src/myx/filesystem/current_executable.hpp @@ -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 #include #include + namespace myx { namespace filesystem { @@ -25,6 +28,7 @@ class CurrentExecutable /// Имя текущего исполняемого файла QString m_fileName; + friend class Paths; public: /** * @brief Конструктор, собирающий информацию о текущем исполняемом файле. diff --git a/src/myx/filesystem/paths.cpp b/src/myx/filesystem/paths.cpp index b73af77..b6fedfd 100644 --- a/src/myx/filesystem/paths.cpp +++ b/src/myx/filesystem/paths.cpp @@ -1,7 +1,6 @@ -#include "paths.hpp" - #include #include +#include #include #include @@ -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 diff --git a/src/myx/filesystem/paths.hpp b/src/myx/filesystem/paths.hpp index 4656973..65dc542 100644 --- a/src/myx/filesystem/paths.hpp +++ b/src/myx/filesystem/paths.hpp @@ -6,41 +6,67 @@ #ifndef MYX_FILESYSTEM_PATHS_HPP_ #define MYX_FILESYSTEM_PATHS_HPP_ +#pragma once + #include #include #include #include + 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