kio Library API Documentation

kfileitem.h

00001 /* This file is part of the KDE project 00002 Copyright (C) 1999 David Faure <faure@kde.org> 00003 00004 This 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; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef __kfileitem_h__ 00021 #define __kfileitem_h__ 00022 00023 #include <qstringlist.h> 00024 #include <sys/stat.h> 00025 00026 #include <qptrlist.h> 00027 #include <kio/global.h> 00028 #include <kurl.h> 00029 #include <kmimetype.h> 00030 #include <kfilemetainfo.h> 00031 00032 #define KFILEITEM_HAS_ISWRITABLE // only used in libkonq/konq_iconviewwidget.cc, will be removed for 3.4 00033 00040 class KIO_EXPORT KFileItem 00041 { 00042 public: 00043 enum { Unknown = (mode_t) - 1 }; 00044 00056 KFileItem( const KIO::UDSEntry& _entry, const KURL& _url, 00057 bool _determineMimeTypeOnDemand = false, 00058 bool _urlIsDirectory = false ); 00059 00073 KFileItem( mode_t _mode, mode_t _permissions, const KURL& _url, 00074 bool _determineMimeTypeOnDemand = false ); 00075 00082 KFileItem( const KURL &url, const QString &mimeType, mode_t mode ); 00083 00088 KFileItem( const KFileItem &item ); 00089 00094 virtual ~KFileItem(); 00095 00100 void refresh(); 00101 00106 void refreshMimeType(); 00107 00112 const KURL & url() const { return m_url; } 00113 00119 void setURL( const KURL &url ); 00120 00127 void setName( const QString &name ); 00128 00133 mode_t permissions() const { return m_permissions; } 00134 00139 QString permissionsString() const; 00140 00145 mode_t mode() const { return m_fileMode; } 00146 00151 QString user() const; 00152 00157 QString group() const; 00158 00164 bool isLink() const { return m_bLink; } 00165 00170 bool isDir() const; 00171 00176 bool isFile() const { return !isDir(); } 00177 00184 bool isReadable() const; 00185 00193 bool isWritable() const; 00194 00199 bool isHidden() const; 00200 00205 QString linkDest() const; 00206 00213 QString localPath() const; 00214 00219 KIO::filesize_t size() const; 00220 00227 time_t time( unsigned int which ) const; 00228 00236 QString timeString( unsigned int which = KIO::UDS_MODIFICATION_TIME ) const; 00237 00242 bool isLocalFile() const { return m_bIsLocalURL; } 00243 00249 const QString& text() const { return m_strText; } 00250 00258 const QString& name( bool lowerCase = false ) const { 00259 if ( !lowerCase ) 00260 return m_strName; 00261 else 00262 if ( m_strLowerCaseName.isNull() ) 00263 m_strLowerCaseName = m_strName.lower(); 00264 return m_strLowerCaseName; 00265 } 00266 00273 QString mimetype() const; 00274 00281 KMimeType::Ptr determineMimeType(); 00282 00288 KMimeType::Ptr mimeTypePtr() const { return m_pMimeType; } 00289 00290 bool isMimeTypeKnown() const; 00296 QString mimeComment(); 00297 00303 QString iconName(); 00304 00313 QPixmap pixmap( int _size, int _state=0 ) const; 00314 00321 int overlays() const; 00322 00328 QString getStatusBarInfo(); 00329 00338 QString getToolTipText(int maxcount = 6); 00339 00346 bool acceptsDrops( ); 00347 00352 void run(); 00353 00359 const KIO::UDSEntry & entry() const { return m_entry; } 00360 00365 bool isMarked() const { return m_bMarked; } 00370 void mark() { m_bMarked = true; } 00375 void unmark() { m_bMarked = false; } 00376 00382 bool cmp( const KFileItem & item ); 00383 00417 virtual void setExtraData( const void *key, void *value ); 00418 00426 virtual const void * extraData( const void *key ) const; 00427 00435 virtual void * extraData( const void *key ); 00436 00441 virtual void removeExtraData( const void *key ); 00442 00447 void setMetaInfo( const KFileMetaInfo & info ); 00448 00454 const KFileMetaInfo & metaInfo(bool autoget = true, 00455 int what = KFileMetaInfo::Fastest) const; 00456 00464 void assign( const KFileItem & item ); 00465 00483 void setUDSEntry( const KIO::UDSEntry& entry, const KURL& url, 00484 bool determineMimeTypeOnDemand = false, 00485 bool urlIsDirectory = false ); 00486 00490 KFileItem& operator=( const KFileItem& ); 00491 00496 KURL mostLocalURL(bool &local) const; 00497 00499 00500 protected: 00505 void init( bool _determineMimeTypeOnDemand ); 00506 00512 void readUDSEntry( bool _urlIsDirectory ); 00513 00517 QString parsePermissions( mode_t perm ) const; 00518 00519 private: 00523 KIO::UDSEntry m_entry; 00527 KURL m_url; 00528 00532 QString m_strName; 00533 00538 QString m_strText; 00539 00543 mutable QString m_user, m_group; 00544 00548 mutable QString m_strLowerCaseName; 00549 00553 KMimeType::Ptr m_pMimeType; 00554 00558 mode_t m_fileMode; 00562 mode_t m_permissions; 00563 00567 bool m_bMarked:1; 00571 bool m_bLink:1; 00575 bool m_bIsLocalURL:1; 00576 00577 bool m_bMimeTypeKnown:1; 00578 00579 // For special case like link to dirs over FTP 00580 QString m_guessedMimeType; 00581 mutable QString m_access; 00582 QMap<const void*, void*> m_extra; 00583 mutable KFileMetaInfo m_metaInfo; 00584 00585 enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 }; 00586 mutable time_t m_time[3]; 00587 mutable KIO::filesize_t m_size; 00588 00589 protected: 00590 virtual void virtual_hook( int id, void* data ); 00591 private: 00592 class KFileItemPrivate; 00593 KFileItemPrivate * d; 00594 KIO_EXPORT friend QDataStream & operator<< ( QDataStream & s, const KFileItem & a ); 00595 KIO_EXPORT friend QDataStream & operator>> ( QDataStream & s, KFileItem & a ); 00596 }; 00597 00601 typedef QPtrList<KFileItem> KFileItemList; 00602 00606 typedef QPtrListIterator<KFileItem> KFileItemListIterator; 00607 00608 KIO_EXPORT QDataStream & operator<< ( QDataStream & s, const KFileItem & a ); 00609 KIO_EXPORT QDataStream & operator>> ( QDataStream & s, KFileItem & a ); 00610 00611 00612 #endif
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 Thu Apr 14 00:20:24 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003