kio Library: kfilespeedbar.cpp Source File (kio Library)

| # kio Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# 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 = "floppy:/";
    00061         if ( KProtocolInfo::isKnownProtocol( u ) )
    00062             insertItem( u, i18n("Floppy"), false,
    00063                                    KProtocolInfo::icon( "floppy" ) );
    00064         u = "media:/";
    00065         if ( KProtocolInfo::isKnownProtocol( u ) )
    00066             insertItem( u, i18n("Storage Media"), false,
    00067                                    KProtocolInfo::icon( "media" ) );
    00068
    00069         u = "remote:/";
    00070         if ( KProtocolInfo::isKnownProtocol( u ) )
    00071             insertItem( u, i18n("Network Folders"), false,
    00072                                    KProtocolInfo::icon( "remote" ) );
    00073     }
    00074 }
    00075
    00076 KFileSpeedBar::~KFileSpeedBar()
    00077 {
    00078 }
    00079
    00080 void KFileSpeedBar::save( KConfig *config )
    00081 {
    00082     if ( m_initializeSpeedbar && isModified() )
    00083     {
    00084         KConfigGroup conf( config, ConfigGroup );
    00085         // write to kdeglobals
    00086         conf.writeEntry( "Set speedbar defaults", false, true, true );
    00087     }
    00088
    00089     writeConfig( config, "KFileDialog Speedbar" );
    00090 }
    00091
    00092 QSize KFileSpeedBar::sizeHint() const
    00093 {
    00094     QSize sizeHint = KURLBar::sizeHint();
    00095     int ems = fontMetrics().width("mmmmmmmmmmmm");
    00096     if (sizeHint.width() < ems)
    00097     {
    00098         sizeHint.setWidth(ems);
    00099     }
    00100     return sizeHint;
    00101 }
    00102
    00103 #include "kfilespeedbar.moc"

This file is part of the documentation for kio Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:23:59 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003