kfileitem.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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
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
This file is part of the documentation for kio Library Version 3.4.3.