• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

kio

kfileview.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 /* This file is part of the KDE libraries
00003     Copyright (C) 1997 Stephan Kulow <coolo@kde.org>
00004     Copyright (C) 2001 Carsten Pfeiffer <pfeiffer@kde.org>
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License as published by the Free Software Foundation; either
00009     version 2 of the License, or (at your option) any later version.
00010 
00011     This library is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014     Library General Public License for more details.
00015 
00016     You should have received a copy of the GNU Library General Public License
00017     along with this library; see the file COPYING.LIB.  If not, write to
00018     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00019     Boston, MA 02110-1301, USA.
00020 */
00021 
00022 #ifndef KFILEVIEW_H
00023 #define KFILEVIEW_H
00024 
00025 class QPoint;
00026 class KActionCollection;
00027 
00028 #include <qwidget.h>
00029 
00030 #include "kfileitem.h"
00031 #include "kfile.h"
00032 
00037 class KIO_EXPORT KFileViewSignaler : public QObject
00038 {
00039     Q_OBJECT
00040 
00041 public:
00046     void activate( const KFileItem *item ) {
00047         if ( item->isDir() )
00048             emit dirActivated( item );
00049         else
00050             emit fileSelected( item );
00051     }
00056     void highlightFile(const KFileItem *i) { emit fileHighlighted(i); }
00057 
00058     void activateMenu( const KFileItem *i, const QPoint& pos ) {
00059         emit activatedMenu( i, pos );
00060     }
00061 
00062     void changeSorting( QDir::SortSpec sorting ) {
00063         emit sortingChanged( sorting );
00064     }
00065     
00066     void dropURLs(const KFileItem *i, QDropEvent*e, const KURL::List&urls) {
00067         emit dropped(i, e, urls);
00068     }
00069 
00070 signals:
00071     void dirActivated(const KFileItem*);
00072 
00073     void sortingChanged( QDir::SortSpec );
00074 
00079     void fileHighlighted(const KFileItem*);
00080     void fileSelected(const KFileItem*);
00081     void activatedMenu( const KFileItem *i, const QPoint& );
00082     void dropped(const KFileItem *, QDropEvent*, const KURL::List&);
00083 };
00084 
00098 class KIO_EXPORT KFileView {
00099 
00100 public:
00101     KFileView();
00102 
00106     virtual ~KFileView();
00107 
00111     void addItemList(const KFileItemList &list);
00112 
00118     virtual QWidget *widget() = 0;
00119 
00123     QWidget *widget() const { return const_cast<KFileView*>(this)->widget(); }
00124 
00128     void setCurrentItem( const QString &filename );
00129 
00134     virtual void setCurrentItem( const KFileItem *item ) = 0;
00135 
00141     virtual KFileItem *currentFileItem() const = 0;
00142 
00146     virtual void clear();
00147 
00156     virtual void updateView(bool f = true);
00157 
00158     virtual void updateView(const KFileItem*);
00159 
00164     virtual void removeItem(const KFileItem *item);
00165 
00171     virtual void listingCompleted();
00172 
00177     QDir::SortSpec sorting() const { return m_sorting; }
00178 
00193     virtual void setSorting(QDir::SortSpec sort);
00194 
00199     bool isReversed() const { return (m_sorting & QDir::Reversed); }
00200 
00201     void sortReversed();
00202 
00206     uint count() const { return filesNumber + dirsNumber; }
00207 
00211     uint numFiles() const { return filesNumber; }
00212 
00216     uint numDirs() const { return dirsNumber; }
00217 
00218     virtual void setSelectionMode( KFile::SelectionMode sm );
00219     virtual KFile::SelectionMode selectionMode() const;
00220 
00221     enum ViewMode {
00222     Files       = 1,
00223     Directories = 2,
00224     All = Files | Directories
00225     };
00226     virtual void setViewMode( ViewMode vm );
00227     virtual ViewMode viewMode() const { return view_mode; }
00228 
00234     QString viewName() const { return m_viewName; }
00235 
00240     void setViewName( const QString& name ) { m_viewName = name; }
00241 
00242     virtual void setParentView(KFileView *parent);
00243 
00252     virtual void insertItem( KFileItem *i);
00253 
00258     virtual void clearView() = 0;
00259 
00264     virtual void ensureItemVisible( const KFileItem *i ) = 0;
00265 
00270     virtual void clearSelection() = 0;
00271 
00277     virtual void selectAll();
00278 
00283     virtual void invertSelection();
00284 
00289     virtual void setSelected(const KFileItem *, bool enable) = 0;
00290 
00295     virtual bool isSelected( const KFileItem * ) const = 0;
00296 
00300     const KFileItemList * selectedItems() const;
00301 
00305     const KFileItemList * items() const;
00306 
00307     virtual KFileItem * firstFileItem() const = 0;
00308     virtual KFileItem * nextItem( const KFileItem * ) const = 0;
00309     virtual KFileItem * prevItem( const KFileItem * ) const = 0;
00310 
00321     void setOnlyDoubleClickSelectsFiles( bool enable ) {
00322     myOnlyDoubleClickSelectsFiles = enable;
00323     }
00324 
00330     bool onlyDoubleClickSelectsFiles() const {
00331     return myOnlyDoubleClickSelectsFiles;
00332     }
00333 
00338     bool updateNumbers(const KFileItem *i);
00339 
00345     virtual KActionCollection * actionCollection() const;
00346 
00347     KFileViewSignaler * signaler() const { return sig; }
00348 
00349     virtual void readConfig( KConfig *, const QString& group = QString::null );
00350     virtual void writeConfig( KConfig *, const QString& group = QString::null);
00351 
00359     enum DropOptions {
00360     AutoOpenDirs  = 1
00361     };
00367     // KDE 4: Make virtual
00368     void setDropOptions(int options);
00369     
00375     int dropOptions();
00376     
00390     static QString sortingKey( const QString& value, bool isDir, int sortSpec);
00391 
00398     static QString sortingKey( KIO::filesize_t value, bool isDir,int sortSpec);
00399 
00404     static int autoOpenDelay();
00405 
00406 protected:
00411     KFileViewSignaler *sig;
00412 
00413 private:
00414     static QDir::SortSpec defaultSortSpec;
00415     QDir::SortSpec m_sorting;
00416     QString m_viewName;
00417 
00421     uint filesNumber;
00422     uint dirsNumber;
00423 
00424     ViewMode view_mode;
00425     KFile::SelectionMode selection_mode;
00426 
00427     // never use! It's only guaranteed to contain valid items in the items()
00428     // method!
00429     mutable KFileItemList m_itemList;
00430 
00431     mutable KFileItemList *m_selectedList;
00432     bool myOnlyDoubleClickSelectsFiles;
00433 
00434 protected:
00435     virtual void virtual_hook( int id, void* data );
00436     /* @internal for virtual_hook */
00437     enum { VIRTUAL_SET_DROP_OPTIONS = 1 };
00438     void setDropOptions_impl(int options);
00439 private:
00440     class KFileViewPrivate;
00441     KFileViewPrivate *d;
00442 };
00443 
00444 #endif // KFILEINFOLISTWIDGET_H

kio

Skip menu "kio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal