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 if ((KGlobalSettings::documentPath() != (QDir::homeDirPath()+"/")) && 00049 QDir(KGlobalSettings::documentPath()).exists()) 00050 { 00051 u.setPath( KGlobalSettings::documentPath() ); 00052 insertItem( u, i18n("Documents"), false, "document" ); 00053 } 00054 00055 u.setPath( QDir::homeDirPath() ); 00056 insertItem( u, i18n("Home Folder"), false, 00057 "folder_home" ); 00058 00059 u = "floppy:/"; 00060 if ( KProtocolInfo::isKnownProtocol( u ) ) 00061 insertItem( u, i18n("Floppy"), false, 00062 KProtocolInfo::icon( "floppy" ) ); 00063 u = "devices:/"; 00064 if ( KProtocolInfo::isKnownProtocol( u ) ) 00065 insertItem( u, i18n("Devices"), false, 00066 KProtocolInfo::icon( "devices" ) ); 00067 00068 QStringList tmpDirs = KGlobal::dirs()->resourceDirs( "tmp" ); 00069 u.setProtocol( "file" ); 00070 u.setPath( tmpDirs.isEmpty() ? QString("/tmp") : tmpDirs.first() ); 00071 insertItem( u, i18n("Temporary Files"), false, 00072 "file_temporary" ); 00073 u = "lan:/"; 00074 if ( KProtocolInfo::isKnownProtocol( u ) ) 00075 insertItem( u, i18n("Network"), false, 00076 "network_local" ); 00077 } 00078 } 00079 00080 KFileSpeedBar::~KFileSpeedBar() 00081 { 00082 } 00083 00084 void KFileSpeedBar::save( KConfig *config ) 00085 { 00086 if ( m_initializeSpeedbar && isModified() ) 00087 { 00088 KConfigGroup conf( config, ConfigGroup ); 00089 // write to kdeglobals 00090 conf.writeEntry( "Set speedbar defaults", false, true, true ); 00091 } 00092 00093 writeConfig( config, "KFileDialog Speedbar" ); 00094 } 00095 00096 QSize KFileSpeedBar::sizeHint() const 00097 { 00098 QSize sizeHint = KURLBar::sizeHint(); 00099 int ems = fontMetrics().width("mmmmmmmmmmmm"); 00100 if (sizeHint.width() < ems) 00101 { 00102 sizeHint.setWidth(ems); 00103 } 00104 return sizeHint; 00105 } 00106 00107 #include "kfilespeedbar.moc"
KDE Logo
This file is part of the documentation for kio Library Version 3.3.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 17 11:29:25 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003