19 #include "kfilespeedbar.h"
20 #include "config-kfile.h"
24 #include <tqtextcodec.h>
25 #include <tqtextstream.h>
29 #include <kglobalsettings.h>
31 #include <kprotocolinfo.h>
32 #include <kstandarddirs.h>
35 KFileSpeedBar::KFileSpeedBar( TQWidget *parent,
const char *name )
38 KConfig *config = KGlobal::config();
39 KConfigGroupSaver cs( config, ConfigGroup );
40 m_initializeSpeedbar = config->readBoolEntry(
"Set speedbar defaults",
42 setIconSize(KIcon::SizeSmallMedium);
43 readConfig( KGlobal::config(),
"KFileDialog Speedbar" );
45 if ( m_initializeSpeedbar )
48 u.setPath( KGlobalSettings::desktopPath() );
49 insertItem( u, i18n(
"Desktop"),
false );
52 if ((KGlobalSettings::documentPath() != (TQDir::homeDirPath()+
"/")) &&
53 TQDir(KGlobalSettings::documentPath()).exists())
55 u.setPath( KGlobalSettings::documentPath() );
56 insertItem( u, i18n(
"Documents"),
false,
"folder_txt" );
59 u.setPath( TQDir::homeDirPath() );
60 insertItem( u, i18n(
"Home Folder"),
false,
64 if ( KProtocolInfo::isKnownProtocol( u ) )
65 insertItem( u, i18n(
"Storage Media"),
false,
66 KProtocolInfo::icon(
"media" ) );
68 if ( TQFile::exists( TQDir::homeDirPath()+
"/.config/user-dirs.dirs" ) )
70 TQString download, music, pictures, videos, templates, publicShares;
72 TQFile f( TQDir::homeDirPath()+
"/.config/user-dirs.dirs" );
73 if (!f.open(IO_ReadOnly))
77 s.setCodec( TQTextCodec::codecForLocale() );
80 TQString line = s.readLine();
81 while (!line.isNull())
83 if (line.startsWith(
"XDG_DOWNLOAD_DIR="))
84 download = line.remove(
"XDG_DOWNLOAD_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
85 else if (line.startsWith(
"XDG_MUSIC_DIR="))
86 music = line.remove(
"XDG_MUSIC_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
87 else if (line.startsWith(
"XDG_PICTURES_DIR="))
88 pictures = line.remove(
"XDG_PICTURES_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
89 else if (line.startsWith(
"XDG_VIDEOS_DIR="))
90 videos = line.remove(
"XDG_VIDEOS_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
91 else if (line.startsWith(
"XDG_TEMPLATES_DIR="))
92 templates = line.remove(
"XDG_TEMPLATES_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
93 else if (line.startsWith(
"XDG_PUBLICSHARES_DIR="))
94 publicShares = line.remove(
"XDG_PUBLICSHARES_DIR=").remove(
"\"").replace(
"$HOME", TQDir::homeDirPath());
99 if (!download.isEmpty())
100 insertItem( download, i18n(
"Download" ),
false,
"folder_html" );
101 if (!music.isEmpty())
102 insertItem( music, i18n(
"Music" ),
false,
"folder_sound" );
103 if (!pictures.isEmpty())
104 insertItem( pictures, i18n(
"Pictures" ),
false,
"folder_image" );
105 if (!videos.isEmpty())
106 insertItem( videos, i18n(
"Videos" ),
false,
"folder_video" );
107 if (!templates.isEmpty())
108 insertItem( templates, i18n(
"Templates" ),
false,
"folder_video" );
109 if (!publicShares.isEmpty())
110 insertItem( publicShares, i18n(
"Public" ),
false,
"folder_video" );
114 if ( KProtocolInfo::isKnownProtocol( u ) )
115 insertItem( u, i18n(
"Network Folders"),
false,
116 KProtocolInfo::icon(
"remote" ) );
120 KFileSpeedBar::~KFileSpeedBar()
124 void KFileSpeedBar::save( KConfig *config )
126 if ( m_initializeSpeedbar && isModified() )
128 KConfigGroup conf( config, ConfigGroup );
130 conf.writeEntry(
"Set speedbar defaults",
false,
true,
true );
133 writeConfig( config,
"KFileDialog Speedbar" );
136 TQSize KFileSpeedBar::sizeHint()
const
139 int ems = fontMetrics().width(
"mmmmmmmmmmmm");
140 if (sizeHint.width() < ems)
142 sizeHint.setWidth(ems);
147 #include "kfilespeedbar.moc"