From aca6b3d42409234a19e2910443d511328c0b025a Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sun, 12 Jan 2020 20:44:36 +0900 Subject: Added support for XDG_PICTURES_DIR and XDG_TEMPLATES_DIR in TDE global settings. Signed-off-by: Michele Calgaro --- tdecore/tdeglobalsettings.cpp | 27 ++++++++++++++++++++++++--- tdecore/tdeglobalsettings.h | 14 ++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/tdecore/tdeglobalsettings.cpp b/tdecore/tdeglobalsettings.cpp index 3411fd1b0..e2fbac2c7 100644 --- a/tdecore/tdeglobalsettings.cpp +++ b/tdecore/tdeglobalsettings.cpp @@ -66,6 +66,8 @@ TQString* TDEGlobalSettings::s_videosPath = 0; TQString* TDEGlobalSettings::s_musicPath = 0; TQString* TDEGlobalSettings::s_downloadPath = 0; TQString* TDEGlobalSettings::s_picturesPath = 0; +TQString* TDEGlobalSettings::s_templatesPath = 0; +TQString* TDEGlobalSettings::s_publicSharePath = 0; TQFont *TDEGlobalSettings::_generalFont = 0; TQFont *TDEGlobalSettings::_fixedFont = 0; TQFont *TDEGlobalSettings::_toolBarFont = 0; @@ -87,7 +89,8 @@ TDEGlobalSettings::KMouseSettings *TDEGlobalSettings::s_mouseSettings = 0; // helper function for reading xdg user dirs: it is required in order to take // care of locale stuff -void readXdgUserDirs(TQString *desktop, TQString *documents, TQString *videos, TQString *music, TQString *download, TQString *pictures) +void readXdgUserDirs(TQString *desktop, TQString *documents, TQString *videos, TQString *music, + TQString *download, TQString *pictures, TQString *templates, TQString *publicShare) { TQFile f( TQDir::homeDirPath() + "/.config/user-dirs.dirs" ); @@ -113,6 +116,10 @@ void readXdgUserDirs(TQString *desktop, TQString *documents, TQString *videos, T *music = line.remove("XDG_VIDEOS_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); else if (line.startsWith("XDG_PICTURES_DIR=")) *pictures = line.remove("XDG_PICTURES_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); + else if (line.startsWith("XDG_TEMPLATES_DIR=")) + *templates = line.remove("XDG_TEMPLATES_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); + else if (line.startsWith("XDG_PUBLICSHARE_DIR=")) + *publicShare = line.remove("XDG_PUBLICSHARE_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); line = s.readLine(); } @@ -531,12 +538,14 @@ void TDEGlobalSettings::initStatic() // should be called initPaths(). Don't put s_musicPath = new TQString(); s_downloadPath = new TQString(); s_picturesPath = new TQString(); - + s_templatesPath = new TQString(); + s_publicSharePath = new TQString(); TDEConfigGroup g( TDEGlobal::config(), "Paths" ); // Read desktop and documents path using XDG_USER_DIRS - readXdgUserDirs(s_desktopPath, s_documentPath, s_musicPath, s_videosPath, s_downloadPath, s_picturesPath); + readXdgUserDirs(s_desktopPath, s_documentPath, s_musicPath, s_videosPath, + s_downloadPath, s_picturesPath, s_templatesPath, s_publicSharePath); if (s_desktopPath->isEmpty() == true) { *s_desktopPath = TQDir::homeDirPath() + "/Desktop/"; @@ -566,6 +575,14 @@ void TDEGlobalSettings::initStatic() // should be called initPaths(). Don't put if ( !s_picturesPath->endsWith("/")) s_picturesPath->append('/'); + *s_templatesPath = TQDir::cleanDirPath( *s_templatesPath ); + if ( !s_templatesPath->endsWith("/")) + s_templatesPath->append('/'); + + *s_publicSharePath = TQDir::cleanDirPath( *s_publicSharePath ); + if ( !s_publicSharePath->endsWith("/")) + s_publicSharePath->append('/'); + // Trash Path - TODO remove in KDE4 (tdeio_trash can't use it for interoperability reasons) *s_trashPath = *s_desktopPath + i18n("Trash") + "/"; *s_trashPath = g.readPathEntry( "Trash" , *s_trashPath); @@ -638,6 +655,10 @@ void TDEGlobalSettings::rereadPathSettings() s_downloadPath = 0L; delete s_musicPath; s_musicPath = 0L; + delete s_templatesPath; + s_templatesPath = 0L; + delete s_publicSharePath; + s_publicSharePath = 0L; } TDEGlobalSettings::KMouseSettings & TDEGlobalSettings::mouseSettings() diff --git a/tdecore/tdeglobalsettings.h b/tdecore/tdeglobalsettings.h index 1570dc5a5..18b59fc12 100644 --- a/tdecore/tdeglobalsettings.h +++ b/tdecore/tdeglobalsettings.h @@ -277,6 +277,18 @@ class TDECORE_EXPORT TDEGlobalSettings */ static TQString picturesPath() { initStatic(); return *s_picturesPath; } + /** + * The path where templates are stored of the current user. + * @return the path of the templates directory + */ + static TQString templatesPath() { initStatic(); return *s_templatesPath; } + + /** + * The path of the public share of the current user. + * @return the path of the public share directory + */ + static TQString publicSharePath() { initStatic(); return *s_publicSharePath; } + /** * The default color to use when highlighting toolbar buttons. * @return the toolbar highlight color @@ -584,6 +596,8 @@ private: static TQString* s_trashPath; static TQString* s_documentPath; static TQString* s_picturesPath; + static TQString* s_templatesPath; + static TQString* s_publicSharePath; static TQString* s_downloadPath; static TQString* s_musicPath; static TQString* s_videosPath; -- cgit v1.2.3