summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2020-01-12 20:44:36 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2020-01-12 20:44:36 +0900
commitaca6b3d42409234a19e2910443d511328c0b025a (patch)
tree09d97a2cb8289e7f763e5525acbffd33c392b5d5
parent3a4f7f51cfb88ab6b34918e8f79dea027d02b411 (diff)
downloadtdelibs-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.cpp27
-rw-r--r--tdecore/tdeglobalsettings.h14
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;