From 299dabf295eb402389509d95d0ce929783da649d Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Fri, 11 Jun 2021 08:52:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=83=D1=82=D1=8C=20=D0=BA=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=BC=D1=83=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B3=D1=83=20=D0=B4=D0=BB=D1=8F=20=D1=82=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=20(=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/filesystem/01_paths/paths.cpp | 6 ++++-- src/myx/filesystem/paths.cpp | 28 ++++++++++++++++++++++---- src/myx/filesystem/paths.hpp | 17 ++++++++++------ 3 files changed, 39 insertions(+), 12 deletions(-) diff --git a/examples/filesystem/01_paths/paths.cpp b/examples/filesystem/01_paths/paths.cpp index 382b5b4..8c28d19 100644 --- a/examples/filesystem/01_paths/paths.cpp +++ b/examples/filesystem/01_paths/paths.cpp @@ -24,13 +24,15 @@ int main( int argc, char** argv ) qDebug() << "executableName : " << paths.executableName(); qDebug() << "executableFilePath : " << paths.executableFilePath(); - qDebug() << "executableDirectory : " << paths.executableDirectory(); + qDebug() << "executableDirectory : " << paths.executableDirectory() << endl; + qDebug() << "systemThemeDirectory : " << paths.systemThemeDirectory(); qDebug() << "systemConfigDirectory : " << paths.systemConfigDirectory(); qDebug() << "systemConstDataDirectory : " << paths.systemConstDataDirectory(); qDebug() << "systemVarDataDirectory : " << paths.systemVarDataDirectory(); - qDebug() << "systemLogDirectory : " << paths.systemLogDirectory(); + qDebug() << "systemLogDirectory : " << paths.systemLogDirectory() << endl; + qDebug() << "userThemeDirectory : " << paths.userThemeDirectory(); qDebug() << "userConfigDirectory : " << paths.userConfigDirectory(); qDebug() << "userConstDataDirectory : " << paths.userConstDataDirectory(); qDebug() << "userVarDataDirectory : " << paths.userVarDataDirectory(); diff --git a/src/myx/filesystem/paths.cpp b/src/myx/filesystem/paths.cpp index 8b99f42..d94273e 100644 --- a/src/myx/filesystem/paths.cpp +++ b/src/myx/filesystem/paths.cpp @@ -109,6 +109,11 @@ MYXLIB_INLINE void Paths::setupSystemDirectories( const QString& projectDir, { m_systemLogDirectory = m_userLogDirectory; } + + if ( !m_organizationName.isEmpty() && !m_themeName.isEmpty() ) + { + m_systemThemeDirectory = "/opt/" + m_organizationName + "-" + m_themeName; + } } // Paths::setupSystemDirectories @@ -118,7 +123,11 @@ MYXLIB_INLINE void Paths::setupUserDirectories() if ( !m_organizationName.isEmpty() ) { prefix = "/" + m_organizationName; - if ( !m_themeName.isEmpty() ) { prefix.append( "-" + m_themeName ); } + if ( !m_themeName.isEmpty() ) + { + prefix.append( "-" + m_themeName ); + m_userThemeDirectory = m_dataDirectory + prefix; + } } prefix.append( "/" + m_projectName ); m_userConfigDirectory = m_configDirectory + prefix; @@ -253,9 +262,8 @@ MYXLIB_INLINE void Paths::processOptHierarhy() QRegularExpressionMatch themeMatch = themeRegex.match( m_organizationName ); if ( themeMatch.hasMatch() ) { - m_themeName = themeMatch.captured( 2 ); - m_organizationName = themeMatch.captured( 1 ); - m_systemThemeDirectory = "/opt/" + m_organizationName + "-" + m_themeName; + m_themeName = themeMatch.captured( 2 ); + m_organizationName = themeMatch.captured( 1 ); } QRegularExpression versionRegex( QStringLiteral( "(.+?)\\.(.+)" ) ); @@ -348,6 +356,18 @@ MYXLIB_INLINE const QString& Paths::systemConfigDirectory() const } +MYXLIB_INLINE const QString& Paths::userThemeDirectory() const +{ + return( m_userThemeDirectory ); +} + + +MYXLIB_INLINE const QString& Paths::systemThemeDirectory() const +{ + return( m_systemThemeDirectory ); +} + + MYXLIB_INLINE const QString& Paths::userVarDataDirectory() const { return( m_userVarDataDirectory ); diff --git a/src/myx/filesystem/paths.hpp b/src/myx/filesystem/paths.hpp index 37ac60b..25e40db 100644 --- a/src/myx/filesystem/paths.hpp +++ b/src/myx/filesystem/paths.hpp @@ -91,6 +91,12 @@ public: /** @brief Полный путь к каталогу с исполняемым файлом */ const QString& executableDirectory() const; + /** @brief Путь к общему пользовательскому каталогу для файлов работы (темы) */ + const QString& userThemeDirectory() const; + + /** @brief Путь к общему системному каталогу для файлов работы (темы) */ + const QString& systemThemeDirectory() const; + /** @brief Полный путь к пользовательскому каталогу с файлами настройки */ const QString& userConfigDirectory() const; @@ -121,9 +127,6 @@ public: /** @brief Полный путь к домашнему каталогу текущего пользователя */ const QString& homeDirectory() const; - /** @brief Имя каталога для работы (темы) */ - const QString& themeDirectory() const; - /** @brief Имя каталога для проекта */ const QString& projectDirectory() const; @@ -170,9 +173,6 @@ private: QString m_executableFilePath; QString m_executableDirectory; - /** @brief Общий каталог для файлов работы (темы) */ - QString m_themeDirectory; - /** @brief Общий каталог для файлов проекта */ QString m_projectDirectory; @@ -185,6 +185,11 @@ private: /** @brief Путь к общему пользовательскому каталогу данных */ QString m_dataDirectory; + /** @brief Путь к общему пользовательскому каталогу для файлов работы (темы) */ + QString m_userThemeDirectory; + /** @brief Путь к общему системному каталогу для файлов работы (темы) */ + QString m_systemThemeDirectory; + /** @brief Путь к пользовательскому каталогу с изменяемыми файлами */ QString m_userVarDataDirectory; /** @brief Путь к системному каталогу с изменяемыми файлами */