kfileitem.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __kfileitem_h__
00022 #define __kfileitem_h__
00023
00024 #include <qstringlist.h>
00025 #include <sys/stat.h>
00026
00027 #include <qptrlist.h>
00028 #include <kio/global.h>
00029 #include <kurl.h>
00030 #include <kmimetype.h>
00031 #include <kfilemetainfo.h>
00032
00039 class KIO_EXPORT KFileItem
00040 {
00041 public:
00042 enum { Unknown = (mode_t) - 1 };
00043
00055 KFileItem( const KIO::UDSEntry& _entry, const KURL& _url,
00056 bool _determineMimeTypeOnDemand = false,
00057 bool _urlIsDirectory = false );
00058
00072 KFileItem( mode_t _mode, mode_t _permissions, const KURL& _url,
00073 bool _determineMimeTypeOnDemand = false );
00074
00081 KFileItem( const KURL &url, const QString &mimeType, mode_t mode );
00082
00087 KFileItem( const KFileItem &item );
00088
00093 virtual ~KFileItem();
00094
00099 void refresh();
00100
00105 void refreshMimeType();
00106
00111 const KURL & url() const { return m_url; }
00112
00118 void setURL( const KURL &url );
00119
00126 void setName( const QString &name );
00127
00132 mode_t permissions() const { return m_permissions; }
00133
00138 QString permissionsString() const;
00139
00144 mode_t mode() const { return m_fileMode; }
00145
00150 QString user() const;
00151
00156 QString group() const;
00157
00163 bool isLink() const { return m_bLink; }
00164
00169 bool isDir() const;
00170
00175 bool isFile() const { return !isDir(); }
00176
00183 bool isReadable() const;
00184
00189 bool isHidden() const;
00190
00195 QString linkDest() const;
00196
00201 KIO::filesize_t size() const;
00202
00209 time_t time( unsigned int which ) const;
00210
00218 QString timeString( unsigned int which = KIO::UDS_MODIFICATION_TIME ) const;
00219
00224 bool isLocalFile() const { return m_bIsLocalURL; }
00225
00231 const QString& text() const { return m_strText; }
00232
00240 const QString& name( bool lowerCase = false ) const {
00241 if ( !lowerCase )
00242 return m_strName;
00243 else
00244 if ( m_strLowerCaseName.isNull() )
00245 m_strLowerCaseName = m_strName.lower();
00246 return m_strLowerCaseName;
00247 }
00248
00255 QString mimetype() const;
00256
00263 KMimeType::Ptr determineMimeType();
00264
00270 KMimeType::Ptr mimeTypePtr() const { return m_pMimeType; }
00271
00272 bool isMimeTypeKnown() const;
00278 QString mimeComment();
00279
00285 QString iconName();
00286
00295 QPixmap pixmap( int _size, int _state=0 ) const;
00296
00303 int overlays() const;
00304
00310 QString getStatusBarInfo();
00311
00320 QString getToolTipText(int maxcount = 6);
00321
00328 bool acceptsDrops( );
00329
00334 void run();
00335
00341 const KIO::UDSEntry & entry() const { return m_entry; }
00342
00347 bool isMarked() const { return m_bMarked; }
00352 void mark() { m_bMarked = true; }
00357 void unmark() { m_bMarked = false; }
00358
00364 bool cmp( const KFileItem & item );
00365
00399 virtual void setExtraData( const void *key, void *value );
00400
00408 virtual const void * extraData( const void *key ) const;
00409
00417 virtual void * extraData( const void *key );
00418
00423 virtual void removeExtraData( const void *key );
00424
00429 void setMetaInfo( const KFileMetaInfo & info );
00430
00436 const KFileMetaInfo & metaInfo(bool autoget = true,
00437 int what = KFileMetaInfo::Fastest) const;
00438
00447 void assign( const KFileItem & item );
00448
00449
00451
00452 protected:
00457 void init( bool _determineMimeTypeOnDemand );
00458
00462 QString parsePermissions( mode_t perm ) const;
00463
00464 private:
00468 KIO::UDSEntry m_entry;
00472 KURL m_url;
00473
00477 QString m_strName;
00478
00483 QString m_strText;
00484
00488 mutable QString m_user, m_group;
00489
00493 mutable QString m_strLowerCaseName;
00494
00498 KMimeType::Ptr m_pMimeType;
00499
00503 mode_t m_fileMode;
00507 mode_t m_permissions;
00508
00512 bool m_bMarked:1;
00516 bool m_bLink:1;
00520 bool m_bIsLocalURL:1;
00521
00522 bool m_bMimeTypeKnown:1;
00523
00524
00525 QString m_guessedMimeType;
00526 mutable QString m_access;
00527 QMap<const void*, void*> m_extra;
00528 mutable KFileMetaInfo m_metaInfo;
00529
00530 enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 };
00531 mutable time_t m_time[3];
00532 mutable KIO::filesize_t m_size;
00533
00534 protected:
00535 virtual void virtual_hook( int id, void* data );
00536 private:
00537 class KFileItemPrivate;
00538 KFileItemPrivate * d;
00539 KIO_EXPORT friend QDataStream & operator<< ( QDataStream & s, const KFileItem & a );
00540 KIO_EXPORT friend QDataStream & operator>> ( QDataStream & s, KFileItem & a );
00541 };
00542
00546 typedef QPtrList<KFileItem> KFileItemList;
00547
00551 typedef QPtrListIterator<KFileItem> KFileItemListIterator;
00552
00553 KIO_EXPORT QDataStream & operator<< ( QDataStream & s, const KFileItem & a );
00554 KIO_EXPORT QDataStream & operator>> ( QDataStream & s, KFileItem & a );
00555
00556
00557 #endif
This file is part of the documentation for kio Library Version 3.3.90.