Added support for XDG_PICTURES_DIR and XDG_TEMPLATES_DIR in TDE global settings.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/63/head
Michele Calgaro 5 years ago
parent 3a4f7f51cf
commit aca6b3d424
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

@ -66,6 +66,8 @@ TQString* TDEGlobalSettings::s_videosPath = 0;
TQString* TDEGlobalSettings::s_musicPath = 0; TQString* TDEGlobalSettings::s_musicPath = 0;
TQString* TDEGlobalSettings::s_downloadPath = 0; TQString* TDEGlobalSettings::s_downloadPath = 0;
TQString* TDEGlobalSettings::s_picturesPath = 0; TQString* TDEGlobalSettings::s_picturesPath = 0;
TQString* TDEGlobalSettings::s_templatesPath = 0;
TQString* TDEGlobalSettings::s_publicSharePath = 0;
TQFont *TDEGlobalSettings::_generalFont = 0; TQFont *TDEGlobalSettings::_generalFont = 0;
TQFont *TDEGlobalSettings::_fixedFont = 0; TQFont *TDEGlobalSettings::_fixedFont = 0;
TQFont *TDEGlobalSettings::_toolBarFont = 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 // helper function for reading xdg user dirs: it is required in order to take
// care of locale stuff // 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" ); 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()); *music = line.remove("XDG_VIDEOS_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath());
else if (line.startsWith("XDG_PICTURES_DIR=")) else if (line.startsWith("XDG_PICTURES_DIR="))
*pictures = line.remove("XDG_PICTURES_DIR=").remove("\"").replace("$HOME", TQDir::homeDirPath()); *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(); line = s.readLine();
} }
@ -531,12 +538,14 @@ void TDEGlobalSettings::initStatic() // should be called initPaths(). Don't put
s_musicPath = new TQString(); s_musicPath = new TQString();
s_downloadPath = new TQString(); s_downloadPath = new TQString();
s_picturesPath = new TQString(); s_picturesPath = new TQString();
s_templatesPath = new TQString();
s_publicSharePath = new TQString();
TDEConfigGroup g( TDEGlobal::config(), "Paths" ); TDEConfigGroup g( TDEGlobal::config(), "Paths" );
// Read desktop and documents path using XDG_USER_DIRS // 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) { if (s_desktopPath->isEmpty() == true) {
*s_desktopPath = TQDir::homeDirPath() + "/Desktop/"; *s_desktopPath = TQDir::homeDirPath() + "/Desktop/";
@ -566,6 +575,14 @@ void TDEGlobalSettings::initStatic() // should be called initPaths(). Don't put
if ( !s_picturesPath->endsWith("/")) if ( !s_picturesPath->endsWith("/"))
s_picturesPath->append('/'); 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) // Trash Path - TODO remove in KDE4 (tdeio_trash can't use it for interoperability reasons)
*s_trashPath = *s_desktopPath + i18n("Trash") + "/"; *s_trashPath = *s_desktopPath + i18n("Trash") + "/";
*s_trashPath = g.readPathEntry( "Trash" , *s_trashPath); *s_trashPath = g.readPathEntry( "Trash" , *s_trashPath);
@ -638,6 +655,10 @@ void TDEGlobalSettings::rereadPathSettings()
s_downloadPath = 0L; s_downloadPath = 0L;
delete s_musicPath; delete s_musicPath;
s_musicPath = 0L; s_musicPath = 0L;
delete s_templatesPath;
s_templatesPath = 0L;
delete s_publicSharePath;
s_publicSharePath = 0L;
} }
TDEGlobalSettings::KMouseSettings & TDEGlobalSettings::mouseSettings() TDEGlobalSettings::KMouseSettings & TDEGlobalSettings::mouseSettings()

@ -277,6 +277,18 @@ class TDECORE_EXPORT TDEGlobalSettings
*/ */
static TQString picturesPath() { initStatic(); return *s_picturesPath; } 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. * The default color to use when highlighting toolbar buttons.
* @return the toolbar highlight color * @return the toolbar highlight color
@ -584,6 +596,8 @@ private:
static TQString* s_trashPath; static TQString* s_trashPath;
static TQString* s_documentPath; static TQString* s_documentPath;
static TQString* s_picturesPath; static TQString* s_picturesPath;
static TQString* s_templatesPath;
static TQString* s_publicSharePath;
static TQString* s_downloadPath; static TQString* s_downloadPath;
static TQString* s_musicPath; static TQString* s_musicPath;
static TQString* s_videosPath; static TQString* s_videosPath;

Loading…
Cancel
Save