Added support for XDG_PICTURES_DIR and XDG_TEMPLATES_DIR in TDE global settings.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit aca6b3d424)
v3.5.13-sru
Michele Calgaro 5 years ago committed by Slávek Banko
parent fb65a4b212
commit a9bf439608
No known key found for this signature in database
GPG Key ID: 608F5293A04BE668

@ -66,6 +66,8 @@ TQString* KGlobalSettings::s_videosPath = 0;
TQString* KGlobalSettings::s_musicPath = 0;
TQString* KGlobalSettings::s_downloadPath = 0;
TQString* KGlobalSettings::s_picturesPath = 0;
TQString* KGlobalSettings::s_templatesPath = 0;
TQString* KGlobalSettings::s_publicSharePath = 0;
TQFont *KGlobalSettings::_generalFont = 0;
TQFont *KGlobalSettings::_fixedFont = 0;
TQFont *KGlobalSettings::_toolBarFont = 0;
@ -87,7 +89,8 @@ KGlobalSettings::KMouseSettings *KGlobalSettings::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 KGlobalSettings::initStatic() // should be called initPaths(). Don't put an
s_musicPath = new TQString();
s_downloadPath = new TQString();
s_picturesPath = new TQString();
s_templatesPath = new TQString();
s_publicSharePath = new TQString();
KConfigGroup g( KGlobal::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 KGlobalSettings::initStatic() // should be called initPaths(). Don't put an
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 (kio_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 KGlobalSettings::rereadPathSettings()
s_downloadPath = 0L;
delete s_musicPath;
s_musicPath = 0L;
delete s_templatesPath;
s_templatesPath = 0L;
delete s_publicSharePath;
s_publicSharePath = 0L;
}
KGlobalSettings::KMouseSettings & KGlobalSettings::mouseSettings()

@ -277,6 +277,18 @@ class KDECORE_EXPORT KGlobalSettings
*/
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;

Loading…
Cancel
Save