Новый способ определения каталогов
This commit is contained in:
parent
4f507da585
commit
189d85719e
@ -1,6 +1,5 @@
|
|||||||
#include "current_executable.hpp"
|
|
||||||
|
|
||||||
#include <myx/base/config.hpp>
|
#include <myx/base/config.hpp>
|
||||||
|
#include <myx/filesystem/current_executable.hpp>
|
||||||
|
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
/**
|
/**
|
||||||
* @file current_executable.hpp
|
* @file current_executable.hpp
|
||||||
* @brief Параметры исполняемового файла
|
* @brief Параметры исполняемого файла
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
#ifndef MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||||
#define MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
#define MYX_FILESYSTEM_CURRENT_EXECUTABLE_HPP_
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
|
|
||||||
namespace myx {
|
namespace myx {
|
||||||
|
|
||||||
namespace filesystem {
|
namespace filesystem {
|
||||||
@ -25,6 +28,7 @@ class CurrentExecutable
|
|||||||
/// Имя текущего исполняемого файла
|
/// Имя текущего исполняемого файла
|
||||||
QString m_fileName;
|
QString m_fileName;
|
||||||
|
|
||||||
|
friend class Paths;
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Конструктор, собирающий информацию о текущем исполняемом файле.
|
* @brief Конструктор, собирающий информацию о текущем исполняемом файле.
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
#include "paths.hpp"
|
|
||||||
|
|
||||||
#include <myx/base/config.hpp>
|
#include <myx/base/config.hpp>
|
||||||
#include <myx/filesystem/current_executable.hpp>
|
#include <myx/filesystem/current_executable.hpp>
|
||||||
|
#include <myx/filesystem/paths.hpp>
|
||||||
|
|
||||||
#include <paths.h>
|
#include <paths.h>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
@ -11,149 +10,27 @@ namespace myx {
|
|||||||
|
|
||||||
namespace filesystem {
|
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 ) :
|
Paths::Paths( QString configFileExtension ) :
|
||||||
m_prefixDirectory ( "/opt/" + QCoreApplication::organizationName().toLower() +
|
m_prefixDirectory ( "/opt/" + QCoreApplication::organizationName().toLower() +
|
||||||
"/" + QCoreApplication::applicationName().toLower() ),
|
"/" + QCoreApplication::applicationName().toLower() ),
|
||||||
m_configFileExtension( std::move( configFileExtension ) )
|
m_configFileExtension ( std::move( configFileExtension ) ),
|
||||||
|
m_projectDirectoryName( QCoreApplication::applicationName().toLower() )
|
||||||
{
|
{
|
||||||
auto pd = m_prefixDirectory.absolutePath();
|
auto pd = m_prefixDirectory.absolutePath();
|
||||||
m_binaryDirectory = pd + "/bin";
|
m_binaryDirectory = pd + "/bin";
|
||||||
m_configDirectory = pd + "/etc";
|
// m_systemConfigDirectory = pd + "/etc/" + m_projectDirectoryName;
|
||||||
m_cacheDirectory = pd + "/var";
|
// m_userCacheDirectory = pd + "/var/lib/" + m_projectDirectoryName;
|
||||||
m_logDirectory = pd + "/var/log";
|
// m_logDirectory = pd + "/var/log/" + m_projectDirectoryName;
|
||||||
m_tempDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "TMPDIR" ) ) );
|
// m_dataDirectory = pd + "/share/" + m_projectDirectoryName;
|
||||||
m_dataDirectory = pd + "/share";
|
// m_tempDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "TMPDIR" ) ) );
|
||||||
m_homeDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "HOME" ) ) );
|
// m_homeDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "HOME" ) ) );
|
||||||
m_configFileName = QCoreApplication::applicationName().toLower() +
|
// m_configFileName = m_projectDirectoryName + "." + m_configFileExtension;
|
||||||
"." + m_configFileExtension;
|
// m_configFilePath = m_systemConfigDirectory.absolutePath() + "/" + m_configFileName;
|
||||||
m_configFilePath = m_binaryDirectory.absolutePath() +
|
|
||||||
"/" + m_configFileName;
|
|
||||||
|
|
||||||
|
// if ( m_tempDirectory.absolutePath().isEmpty() || ( m_tempDirectory.path() == "." ) )
|
||||||
if ( m_tempDirectory.absolutePath().isEmpty() || ( m_tempDirectory.path() == "." ) )
|
// {
|
||||||
{
|
// m_tempDirectory = QStringLiteral( _PATH_TMP );
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -161,49 +38,49 @@ bool Paths::updatePaths()
|
|||||||
{
|
{
|
||||||
m_binaryDirectory = m_currentExecutable.canonicalPath();
|
m_binaryDirectory = m_currentExecutable.canonicalPath();
|
||||||
|
|
||||||
if ( m_binaryDirectory.absolutePath().endsWith( "/bin" ) )
|
// if ( m_binaryDirectory.absolutePath().endsWith( "/bin" ) )
|
||||||
{
|
// {
|
||||||
m_prefixDirectory = m_binaryDirectory.absolutePath().remove( QRegExp( "/bin$" ) );
|
// m_prefixDirectory = m_binaryDirectory.absolutePath().remove( QRegExp( "/bin$" ) );
|
||||||
m_configDirectory = m_prefixDirectory.absolutePath() + "/etc";
|
// m_systemConfigDirectory = m_prefixDirectory.absolutePath() + "/etc/" + m_projectDirectoryName;
|
||||||
m_cacheDirectory = m_prefixDirectory.absolutePath() + "/var";
|
// m_userCacheDirectory = m_prefixDirectory.absolutePath() + "/var/lib/" + m_projectDirectoryName;
|
||||||
m_logDirectory = m_prefixDirectory.absolutePath() + "/var/log";
|
// m_logDirectory = m_prefixDirectory.absolutePath() + "/var/log/" + m_projectDirectoryName;
|
||||||
m_dataDirectory = m_prefixDirectory.absolutePath() + "/share";
|
// m_dataDirectory = m_prefixDirectory.absolutePath() + "/share/" + m_projectDirectoryName;
|
||||||
m_configFilePath = QFile( m_configDirectory.absolutePath() +
|
// m_configFilePath = QFile( m_systemConfigDirectory.absolutePath() +
|
||||||
"/" + QCoreApplication::applicationName() +
|
// "/" + QCoreApplication::applicationName() +
|
||||||
"." + m_configFileExtension );
|
// "." + m_configFileExtension );
|
||||||
}
|
// }
|
||||||
|
|
||||||
if ( m_prefixDirectory.absolutePath().startsWith( "/opt" ) ||
|
// if ( m_prefixDirectory.absolutePath().startsWith( "/opt" ) ||
|
||||||
m_prefixDirectory.absolutePath().startsWith( "/usr" ) )
|
// m_prefixDirectory.absolutePath().startsWith( "/usr" ) )
|
||||||
{
|
// {
|
||||||
QString dataDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_DATA_HOME" ) ) );
|
// QString dataDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_DATA_HOME" ) ) );
|
||||||
if ( dataDirectory.isEmpty() )
|
// if ( dataDirectory.isEmpty() )
|
||||||
{
|
// {
|
||||||
dataDirectory = m_homeDirectory.absolutePath() + ".local/share";
|
// dataDirectory = m_homeDirectory.absolutePath() + ".local/share";
|
||||||
}
|
// }
|
||||||
m_dataDirectory = dataDirectory + "/" +
|
// m_dataDirectory = dataDirectory + "/" +
|
||||||
QCoreApplication::organizationName().toLower() + "/" +
|
// QCoreApplication::organizationName().toLower() + "/" +
|
||||||
QCoreApplication::applicationName().toLower();
|
// QCoreApplication::applicationName().toLower();
|
||||||
|
|
||||||
QString configDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CONFIG_HOME" ) ) );
|
// QString configDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CONFIG_HOME" ) ) );
|
||||||
if ( configDirectory.isEmpty() )
|
// if ( configDirectory.isEmpty() )
|
||||||
{
|
// {
|
||||||
configDirectory = m_homeDirectory.absolutePath() + ".config";
|
// configDirectory = m_homeDirectory.absolutePath() + ".config";
|
||||||
}
|
// }
|
||||||
m_configDirectory = configDirectory + "/" +
|
// m_systemConfigDirectory = configDirectory + "/" +
|
||||||
QCoreApplication::organizationName().toLower() + "/" +
|
// QCoreApplication::organizationName().toLower() + "/" +
|
||||||
QCoreApplication::applicationName().toLower();
|
// QCoreApplication::applicationName().toLower();
|
||||||
|
|
||||||
QString cacheDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CACHE_HOME" ) ) );
|
// QString cacheDirectory = QString::fromLocal8Bit( qgetenv( qPrintable( "XDG_CACHE_HOME" ) ) );
|
||||||
if ( cacheDirectory.isEmpty() )
|
// if ( cacheDirectory.isEmpty() )
|
||||||
{
|
// {
|
||||||
cacheDirectory = m_homeDirectory.absolutePath() + ".cache";
|
// cacheDirectory = m_homeDirectory.absolutePath() + ".cache";
|
||||||
}
|
// }
|
||||||
m_cacheDirectory = cacheDirectory + "/" +
|
// m_userCacheDirectory = cacheDirectory + "/" +
|
||||||
QCoreApplication::organizationName().toLower() + "/" +
|
// QCoreApplication::organizationName().toLower() + "/" +
|
||||||
QCoreApplication::applicationName().toLower();
|
// QCoreApplication::applicationName().toLower();
|
||||||
m_logDirectory = m_cacheDirectory.absolutePath() + "/log";
|
// m_logDirectory = m_userCacheDirectory.absolutePath() + "/log";
|
||||||
}
|
// }
|
||||||
|
|
||||||
return( true );
|
return( true );
|
||||||
} // Paths::updatePaths
|
} // Paths::updatePaths
|
||||||
@ -213,10 +90,10 @@ bool Paths::makeDefaultDirectories()
|
|||||||
{
|
{
|
||||||
bool status = true;
|
bool status = true;
|
||||||
|
|
||||||
if ( !m_dataDirectory.mkpath( m_dataDirectory.absolutePath() ) ) { status = false; }
|
if ( !m_userConfigDirectory.mkpath( m_userConfigDirectory.absolutePath() ) ) { status = false; }
|
||||||
if ( !m_configDirectory.mkpath( m_configDirectory.absolutePath() ) ) { status = false; }
|
if ( !m_userVarDataDirectory.mkpath( m_userVarDataDirectory.absolutePath() ) ) { status = false; }
|
||||||
if ( !m_cacheDirectory.mkpath( m_cacheDirectory.absolutePath() ) ) { status = false; }
|
if ( !m_userConstDataDirectory.mkpath( m_userConstDataDirectory.absolutePath() ) ) { status = false; }
|
||||||
if ( !m_logDirectory.mkpath( m_logDirectory.absolutePath() ) ) { status = false; }
|
if ( !m_userLogDirectory.mkpath( m_userLogDirectory.absolutePath() ) ) { status = false; }
|
||||||
return( status );
|
return( status );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,6 +122,252 @@ QString Paths::findConfigFile( const QString& defaultConfigFile )
|
|||||||
return( QString() );
|
return( QString() );
|
||||||
} // Paths::findConfigFile
|
} // 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 filesystem
|
||||||
|
|
||||||
} // namespace myx
|
} // namespace myx
|
||||||
|
@ -6,41 +6,67 @@
|
|||||||
#ifndef MYX_FILESYSTEM_PATHS_HPP_
|
#ifndef MYX_FILESYSTEM_PATHS_HPP_
|
||||||
#define MYX_FILESYSTEM_PATHS_HPP_
|
#define MYX_FILESYSTEM_PATHS_HPP_
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
#include <myx/filesystem/current_executable.hpp>
|
#include <myx/filesystem/current_executable.hpp>
|
||||||
|
|
||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
|
||||||
|
|
||||||
namespace myx {
|
namespace myx {
|
||||||
|
|
||||||
namespace filesystem {
|
namespace filesystem {
|
||||||
|
|
||||||
class Paths
|
class Paths
|
||||||
{
|
{
|
||||||
/// Путь к базовому каталогу
|
/// @brief Путь к базовому каталогу
|
||||||
QDir m_prefixDirectory;
|
QDir m_prefixDirectory;
|
||||||
/// Путь к каталогу с исполняемым файлом
|
/// @brief Путь к каталогу с исполняемым файлом
|
||||||
QDir m_binaryDirectory;
|
QDir m_binaryDirectory;
|
||||||
/// Путь к каталогу с изменяемыми файлами
|
|
||||||
QDir m_cacheDirectory;
|
/// @brief Путь к пользовательскому каталогу с файлами настройки
|
||||||
/// Путь к каталогу с временными файлами
|
QDir m_userConfigDirectory;
|
||||||
QDir m_tempDirectory;
|
/// @brief Путь к системному каталогу с файлами настройки
|
||||||
/// Путь к каталогу с неизменяемыми файлами
|
QDir m_systemConfigDirectory;
|
||||||
QDir m_dataDirectory;
|
/// @brief Путь к локальному каталогу с файлами настройки
|
||||||
/// Путь к каталогу с журналами работы
|
QDir m_localConfigDirectory;
|
||||||
QDir m_logDirectory;
|
/// @brief Полный путь к файлу настройки
|
||||||
/// Путь к домашнему каталогу текущего пользователя
|
|
||||||
QDir m_homeDirectory;
|
|
||||||
/// Путь к каталогу с файлами настройки
|
|
||||||
QDir m_configDirectory;
|
|
||||||
/// Полный путь к файлу настройки
|
|
||||||
QFileInfo m_configFilePath;
|
QFileInfo m_configFilePath;
|
||||||
/// Имя файла настройки
|
/// @brief Имя файла настройки
|
||||||
QString m_configFileName;
|
QString m_configFileName;
|
||||||
/// Расширение для файла настройки
|
/// @brief Расширение для файла настройки
|
||||||
QString m_configFileExtension;
|
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;
|
CurrentExecutable m_currentExecutable;
|
||||||
|
|
||||||
@ -50,91 +76,12 @@ public:
|
|||||||
* @param configFileExtension Расширение для файла настройки
|
* @param configFileExtension Расширение для файла настройки
|
||||||
*/
|
*/
|
||||||
Paths( QString configFileExtension = "conf" );
|
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 Обновление путей с учётом расположения исполняемого файла
|
* @brief Обновление путей с учётом расположения исполняемого файла
|
||||||
*/
|
*/
|
||||||
bool updatePaths();
|
bool updatePaths();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Создание стандартных каталогов
|
* @brief Создание стандартных каталогов
|
||||||
*/
|
*/
|
||||||
@ -149,6 +96,191 @@ public:
|
|||||||
* Если файл настройки не будет найден, то будет возвращена пустая строка
|
* Если файл настройки не будет найден, то будет возвращена пустая строка
|
||||||
*/
|
*/
|
||||||
QString findConfigFile( const QString& defaultConfigFile = "" );
|
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
|
}; // class Paths
|
||||||
|
|
||||||
} // namespace filesystem
|
} // namespace filesystem
|
||||||
|
Loading…
x
Reference in New Issue
Block a user