kio Library API Documentation

kfileview.h

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., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, 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 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 00099 class KFileView { 00100 00101 public: 00102 KFileView(); 00103 00107 virtual ~KFileView(); 00108 00112 void addItemList(const KFileItemList &list); 00113 00119 virtual QWidget *widget() = 0; 00120 00124 QWidget *widget() const { return const_cast<KFileView*>(this)->widget(); } 00125 00129 void setCurrentItem( const QString &filename ); 00130 00135 virtual void setCurrentItem( const KFileItem *item ) = 0; 00136 00142 virtual KFileItem *currentFileItem() const = 0; 00143 00147 virtual void clear(); 00148 00157 virtual void updateView(bool f = true); 00158 00159 virtual void updateView(const KFileItem*); 00160 00165 virtual void removeItem(const KFileItem *item); 00166 00172 virtual void listingCompleted(); 00173 00178 QDir::SortSpec sorting() const { return m_sorting; } 00179 00194 virtual void setSorting(QDir::SortSpec sort); 00195 00200 bool isReversed() const { return (m_sorting & QDir::Reversed); } 00201 00202 void sortReversed(); 00203 00207 uint count() const { return filesNumber + dirsNumber; } 00208 00212 uint numFiles() const { return filesNumber; } 00213 00217 uint numDirs() const { return dirsNumber; } 00218 00219 virtual void setSelectionMode( KFile::SelectionMode sm ); 00220 virtual KFile::SelectionMode selectionMode() const; 00221 00222 enum ViewMode { 00223 Files = 1, 00224 Directories = 2, 00225 All = Files | Directories 00226 }; 00227 virtual void setViewMode( ViewMode vm ); 00228 virtual ViewMode viewMode() const { return view_mode; } 00229 00235 QString viewName() const { return m_viewName; } 00236 00241 void setViewName( const QString& name ) { m_viewName = name; } 00242 00243 virtual void setParentView(KFileView *parent); 00244 00253 virtual void insertItem( KFileItem *i); 00254 00259 virtual void clearView() = 0; 00260 00265 virtual void ensureItemVisible( const KFileItem *i ) = 0; 00266 00271 virtual void clearSelection() = 0; 00272 00278 virtual void selectAll(); 00279 00284 virtual void invertSelection(); 00285 00290 virtual void setSelected(const KFileItem *, bool enable) = 0; 00291 00296 virtual bool isSelected( const KFileItem * ) const = 0; 00297 00301 const KFileItemList * selectedItems() const; 00302 00306 const KFileItemList * items() const; 00307 00308 virtual KFileItem * firstFileItem() const = 0; 00309 virtual KFileItem * nextItem( const KFileItem * ) const = 0; 00310 virtual KFileItem * prevItem( const KFileItem * ) const = 0; 00311 00322 void setOnlyDoubleClickSelectsFiles( bool enable ) { 00323 myOnlyDoubleClickSelectsFiles = enable; 00324 } 00325 00331 bool onlyDoubleClickSelectsFiles() const { 00332 return myOnlyDoubleClickSelectsFiles; 00333 } 00334 00339 bool updateNumbers(const KFileItem *i); 00340 00346 virtual KActionCollection * actionCollection() const; 00347 00348 KFileViewSignaler * signaler() const { return sig; } 00349 00350 virtual void readConfig( KConfig *, const QString& group = QString::null ); 00351 virtual void writeConfig( KConfig *, const QString& group = QString::null); 00352 00360 enum DropOptions { 00361 AutoOpenDirs = 1 00362 }; 00368 // KDE 4: Make virtual 00369 void setDropOptions(int options); 00370 00376 int dropOptions(); 00377 00391 static QString sortingKey( const QString& value, bool isDir, int sortSpec); 00392 00399 static QString sortingKey( KIO::filesize_t value, bool isDir,int sortSpec); 00400 00405 static int autoOpenDelay(); 00406 00407 protected: 00412 KFileViewSignaler *sig; 00413 00414 private: 00415 static QDir::SortSpec defaultSortSpec; 00416 QDir::SortSpec m_sorting; 00417 QString m_viewName; 00418 00422 uint filesNumber; 00423 uint dirsNumber; 00424 00425 ViewMode view_mode; 00426 KFile::SelectionMode selection_mode; 00427 00428 // never use! It's only guaranteed to contain valid items in the items() 00429 // method! 00430 mutable KFileItemList m_itemList; 00431 00432 mutable KFileItemList *m_selectedList; 00433 bool myOnlyDoubleClickSelectsFiles; 00434 00435 protected: 00436 virtual void virtual_hook( int id, void* data ); 00437 /* @internal for virtual_hook */ 00438 enum { VIRTUAL_SET_DROP_OPTIONS = 1 }; 00439 void setDropOptions_impl(int options); 00440 private: 00441 class KFileViewPrivate; 00442 KFileViewPrivate *d; 00443 }; 00444 00445 #endif // KFILEINFOLISTWIDGET_H
KDE Logo
This file is part of the documentation for kio Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 8 11:14:57 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003