From aaa8a35ea83aeb39e8e398dc72c35dcec1ec72ba Mon Sep 17 00:00:00 2001 From: Romain LE JEUNE Date: Fri, 18 Nov 2022 18:45:45 +0100 Subject: [PATCH] Other: set gui logs with other logs in user data directory. --- .../bridgepp/bridgepp/BridgeUtils.cpp | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/BridgeUtils.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/BridgeUtils.cpp index 1f967ed5..f6388efb 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/BridgeUtils.cpp +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/BridgeUtils.cpp @@ -100,7 +100,7 @@ QString userConfigDir() //**************************************************************************************************************************************************** -/// \return user configuration directory used by bridge (based on Golang OS/File's UserCacheDir). +/// \return user cache directory used by bridge (based on Golang OS/File's UserCacheDir). //**************************************************************************************************************************************************** QString userCacheDir() { @@ -121,7 +121,7 @@ QString userCacheDir() { dir = qgetenv ("HOME"); if (dir.isEmpty()) - throw Exception("neither XDG_CACHE_HOME nor $HOME are defined"); + throw Exception("neither $XDG_CACHE_HOME nor $HOME are defined"); dir += "/.cache"; } #endif @@ -132,13 +132,38 @@ QString userCacheDir() return folder; } +//**************************************************************************************************************************************************** +/// \return user data directory used by bridge (based on Golang OS/File's UserDataDir). +//**************************************************************************************************************************************************** +QString userDataDir() +{ + QString dir; + +#ifdef Q_OS_LINUX + dir = qgetenv ("XDG_DATA_HOME"); + if (dir.isEmpty()) + { + dir = qgetenv ("HOME"); + if (dir.isEmpty()) + throw Exception("neither $XDG_DATA_HOME nor $HOME are defined"); + dir += "/.local/share"; + } +#else + dir = userCacheDir() +#endif + + QString const folder = QDir(dir).absoluteFilePath(configFolder); + QDir().mkpath(folder); + + return folder; +} //**************************************************************************************************************************************************** /// \return user logs directory used by bridge. //**************************************************************************************************************************************************** QString userLogsDir() { - QString const path = QDir(userCacheDir()).absoluteFilePath("logs"); + QString const path = QDir(userDataDir()).absoluteFilePath("logs"); QDir().mkpath(path); return path; }