diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-01-12 20:44:36 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-01-12 20:44:36 +0900 |
commit | aca6b3d42409234a19e2910443d511328c0b025a (patch) | |
tree | 09d97a2cb8289e7f763e5525acbffd33c392b5d5 | |
parent | 3a4f7f51cfb88ab6b34918e8f79dea027d02b411 (diff) | |
download | tdelibs-aca6b3d42409234a19e2910443d511328c0b025a.tar.gz tdelibs-aca6b3d42409234a19e2910443d511328c0b025a.zip |
Added support for XDG_PICTURES_DIR and XDG_TEMPLATES_DIR in TDE global settings.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
-rw-r--r-- | tdecore/tdeglobalsettings.cpp | 27 | ||||
-rw-r--r-- | 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 @@ -278,6 +278,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; |