kfilespeedbar.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "kfilespeedbar.h"
00020 #include "config-kfile.h"
00021
00022 #include <qdir.h>
00023
00024 #include <kconfig.h>
00025 #include <kglobal.h>
00026 #include <kglobalsettings.h>
00027 #include <klocale.h>
00028 #include <kprotocolinfo.h>
00029 #include <kstandarddirs.h>
00030 #include <kurl.h>
00031
00032 KFileSpeedBar::KFileSpeedBar( QWidget *parent, const char *name )
00033 : KURLBar( true, parent, name )
00034 {
00035 KConfig *config = KGlobal::config();
00036 KConfigGroupSaver cs( config, ConfigGroup );
00037 m_initializeSpeedbar = config->readBoolEntry( "Set speedbar defaults",
00038 true );
00039 setIconSize(KIcon::SizeSmallMedium);
00040 readConfig( KGlobal::config(), "KFileDialog Speedbar" );
00041
00042 if ( m_initializeSpeedbar )
00043 {
00044 KURL u;
00045 u.setPath( KGlobalSettings::desktopPath() );
00046 insertItem( u, i18n("Desktop"), false );
00047
00048
00049 if ((KGlobalSettings::documentPath() != (QDir::homeDirPath()+"/")) &&
00050 QDir(KGlobalSettings::documentPath()).exists())
00051 {
00052 u.setPath( KGlobalSettings::documentPath() );
00053 insertItem( u, i18n("Documents"), false, "document" );
00054 }
00055
00056 u.setPath( QDir::homeDirPath() );
00057 insertItem( u, i18n("Home Folder"), false,
00058 "folder_home" );
00059
00060 u = "media:/";
00061 if ( KProtocolInfo::isKnownProtocol( u ) )
00062 insertItem( u, i18n("Storage Media"), false,
00063 KProtocolInfo::icon( "media" ) );
00064
00065 u = "remote:/";
00066 if ( KProtocolInfo::isKnownProtocol( u ) )
00067 insertItem( u, i18n("Network Folders"), false,
00068 KProtocolInfo::icon( "remote" ) );
00069
00070 u = "";
00071 QString tmp( getenv("TMPDIR") );
00072 QDir tmpDir( tmp );
00073 u.setPath( tmpDir.exists() ? tmp : QString("/tmp") );
00074 insertItem( u, i18n("Temporary Files"), false,
00075 "file_temporary" );
00076 }
00077 }
00078
00079 KFileSpeedBar::~KFileSpeedBar()
00080 {
00081 }
00082
00083 void KFileSpeedBar::save( KConfig *config )
00084 {
00085 if ( m_initializeSpeedbar && isModified() )
00086 {
00087 KConfigGroup conf( config, ConfigGroup );
00088
00089 conf.writeEntry( "Set speedbar defaults", false, true, true );
00090 }
00091
00092 writeConfig( config, "KFileDialog Speedbar" );
00093 }
00094
00095 QSize KFileSpeedBar::sizeHint() const
00096 {
00097 QSize sizeHint = KURLBar::sizeHint();
00098 int ems = fontMetrics().width("mmmmmmmmmmmm");
00099 if (sizeHint.width() < ems)
00100 {
00101 sizeHint.setWidth(ems);
00102 }
00103 return sizeHint;
00104 }
00105
00106 #include "kfilespeedbar.moc"
|