kfilespeedbar.cpp
00001
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 #include <kdesktopfile.h>
00032
00033 KFileSpeedBar::KFileSpeedBar( QWidget *parent, const char *name )
00034 : KURLBar( true, parent, name )
00035 {
00036 KConfig *config = KGlobal::config();
00037 KConfigGroupSaver cs( config, ConfigGroup );
00038 m_initializeSpeedbar = config->readBoolEntry( "Set speedbar defaults",
00039 true );
00040 setIconSize(KIcon::SizeSmallMedium);
00041 readConfig( KGlobal::config(), "KFileDialog Speedbar" );
00042
00043 if ( m_initializeSpeedbar )
00044 {
00045 KURL u;
00046 u.setPath( KGlobalSettings::desktopPath() );
00047 insertItem( u, i18n("Desktop"), false );
00048
00049
00050 if ((KGlobalSettings::documentPath() != (QDir::homeDirPath()+"/")) &&
00051 QDir(KGlobalSettings::documentPath()).exists())
00052 {
00053 u.setPath( KGlobalSettings::documentPath() );
00054 insertItem( u, i18n("Documents"), false, "document" );
00055 }
00056
00057 u.setPath( QDir::homeDirPath() );
00058 insertItem( u, i18n("Home Folder"), false,
00059 "folder_home" );
00060
00061 u = "floppy:/";
00062 if ( KProtocolInfo::isKnownProtocol( u ) )
00063 {
00064 u.setPath( QString("/mnt/floppy") );
00065 insertItem( u, i18n("Floppy"), false,
00066 KProtocolInfo::icon( "floppy" ) );
00067 }
00068 u = "media:/";
00069 if ( KProtocolInfo::isKnownProtocol( u ) )
00070 insertItem( u, i18n("Storage Media"), false,
00071 KProtocolInfo::icon( "media" ) );
00072
00073 u = "remote:/";
00074 if ( KProtocolInfo::isKnownProtocol( u ) )
00075 insertItem( u, i18n("Network Folders"), false,
00076 KProtocolInfo::icon( "remote" ) );
00077 QDir homeDir(QDir::homeDirPath()+"/.mdk-folders/");
00078 if( homeDir.exists())
00079 {
00080 QStringList listDesktopFile = homeDir.entryList ( "*-mdk.desktop");
00081 QStringList::Iterator end(listDesktopFile.end());
00082 listDesktopFile.remove("documents-mdk.desktop");
00083 listDesktopFile.remove("desktop-mdk.desktop");
00084 for ( QStringList::Iterator it = listDesktopFile.begin(); it != end; ++it )
00085 {
00086 KDesktopFile tmpFile(homeDir.path ()+"/"+*it);
00087 QString url = tmpFile.readURL();
00088 QString icon = tmpFile.readIcon();
00089 QString name = tmpFile.readName();
00090 insertItem( url, name, false, icon );
00091 }
00092 }
00093 }
00094 }
00095
00096 KFileSpeedBar::~KFileSpeedBar()
00097 {
00098 }
00099
00100 void KFileSpeedBar::save( KConfig *config )
00101 {
00102 if ( m_initializeSpeedbar && isModified() )
00103 {
00104 KConfigGroup conf( config, ConfigGroup );
00105
00106 conf.writeEntry( "Set speedbar defaults", false, true, true );
00107 }
00108
00109 writeConfig( config, "KFileDialog Speedbar" );
00110 }
00111
00112 QSize KFileSpeedBar::sizeHint() const
00113 {
00114 QSize sizeHint = KURLBar::sizeHint();
00115 int ems = fontMetrics().width("mmmmmmmmmmmm");
00116 if (sizeHint.width() < ems)
00117 {
00118 sizeHint.setWidth(ems);
00119 }
00120 return sizeHint;
00121 }
00122
00123 #include "kfilespeedbar.moc"
This file is part of the documentation for kio Library Version 3.4.2.