kio Library API Documentation

kfilespeedbar.cpp

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@kde.org> 00003 00004 library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation, version 2. 00007 00008 This library is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 Library General Public License for more details. 00012 00013 You should have received a copy of the GNU Library General Public License 00014 along with this library; see the file COPYING.LIB. If not, write to 00015 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00016 Boston, MA 02111-1307, USA. 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 //TODO: win32 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.setPath( QString("/mnt/cdrom") ); 00061 insertItem( u, i18n("Cdrom"), false, 00062 "cdrom_mount" ); 00063 00064 u = "floppy:/"; 00065 if ( KProtocolInfo::isKnownProtocol( u ) ) 00066 { 00067 u.setPath( QString("/mnt/floppy") ); 00068 insertItem( u, i18n("Floppy"), false, 00069 "3floppy_mount" ); 00070 } 00071 00072 u = "media:/"; 00073 if ( KProtocolInfo::isKnownProtocol( u ) ) 00074 insertItem( u, i18n("Storage Media"), false, 00075 KProtocolInfo::icon( "media" ) ); 00076 00077 u = "remote:/"; 00078 if ( KProtocolInfo::isKnownProtocol( u ) ) 00079 insertItem( u, i18n("Network Folders"), false, 00080 KProtocolInfo::icon( "remote" ) ); 00081 } 00082 } 00083 00084 KFileSpeedBar::~KFileSpeedBar() 00085 { 00086 } 00087 00088 void KFileSpeedBar::save( KConfig *config ) 00089 { 00090 if ( m_initializeSpeedbar && isModified() ) 00091 { 00092 KConfigGroup conf( config, ConfigGroup ); 00093 // write to kdeglobals 00094 conf.writeEntry( "Set speedbar defaults", false, true, true ); 00095 } 00096 00097 writeConfig( config, "KFileDialog Speedbar" ); 00098 } 00099 00100 QSize KFileSpeedBar::sizeHint() const 00101 { 00102 QSize sizeHint = KURLBar::sizeHint(); 00103 int ems = fontMetrics().width("mmmmmmmmmmmm"); 00104 if (sizeHint.width() < ems) 00105 { 00106 sizeHint.setWidth(ems); 00107 } 00108 return sizeHint; 00109 } 00110 00111 #include "kfilespeedbar.moc"
KDE Logo
This file is part of the documentation for kio Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 23:09:13 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003