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 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 QString linkDest() const;
00190
00195 KIO::filesize_t size() const;
00196
00203 time_t time( unsigned int which ) const;
00204
00212 QString timeString( unsigned int which = KIO::UDS_MODIFICATION_TIME ) const;
00213
00218 bool isLocalFile() const { return m_bIsLocalURL; }
00219
00225 const QString& text() const { return m_strText; }
00226
00234 const QString& name( bool lowerCase = false ) const {
00235 if ( !lowerCase )
00236 return m_strName;
00237 else
00238 if ( m_strLowerCaseName.isNull() )
00239 m_strLowerCaseName = m_strName.lower();
00240 return m_strLowerCaseName;
00241 }
00242
00249 QString mimetype() const;
00250
00257 KMimeType::Ptr determineMimeType();
00258
00264 KMimeType::Ptr mimeTypePtr() const { return m_pMimeType; }
00265
00266 bool isMimeTypeKnown() const;
00272 QString mimeComment();
00273
00279 QString iconName();
00280
00289 QPixmap pixmap( int _size, int _state=0 ) const;
00290
00297 int overlays() const;
00298
00304 QString getStatusBarInfo();
00305
00314 QString getToolTipText(int maxcount = 6);
00315
00322 bool acceptsDrops( );
00323
00328 void run();
00329
00335 const KIO::UDSEntry & entry() const { return m_entry; }
00336
00341 bool isMarked() const { return m_bMarked; }
00346 void mark() { m_bMarked = true; }
00351 void unmark() { m_bMarked = false; }
00352
00358 bool cmp( const KFileItem & item );
00359
00393 virtual void setExtraData( const void *key, void *value );
00394
00402 virtual const void * extraData( const void *key ) const;
00403
00411 virtual void * extraData( const void *key );
00412
00417 virtual void removeExtraData( const void *key );
00418
00423 void setMetaInfo( const KFileMetaInfo & info );
00424
00430 const KFileMetaInfo & metaInfo(bool autoget = true,
00431 int what = KFileMetaInfo::Fastest) const;
00432
00441 void assign( const KFileItem & item );
00442
00443
00445
00446 protected:
00451 void init( bool _determineMimeTypeOnDemand );
00452
00456 QString parsePermissions( mode_t perm ) const;
00457
00458 private:
00462 KIO::UDSEntry m_entry;
00466 KURL m_url;
00467
00471 QString m_strName;
00472
00477 QString m_strText;
00478
00482 mutable QString m_user, m_group;
00483
00487 mutable QString m_strLowerCaseName;
00488
00492 KMimeType::Ptr m_pMimeType;
00493
00497 mode_t m_fileMode;
00501 mode_t m_permissions;
00502
00506 bool m_bMarked:1;
00510 bool m_bLink:1;
00514 bool m_bIsLocalURL:1;
00515
00516 bool m_bMimeTypeKnown:1;
00517
00518
00519 QString m_guessedMimeType;
00520 mutable QString m_access;
00521 QMap<const void*, void*> m_extra;
00522 mutable KFileMetaInfo m_metaInfo;
00523
00524 enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 };
00525 mutable time_t m_time[3];
00526 mutable KIO::filesize_t m_size;
00527
00528 protected:
00529 virtual void virtual_hook( int id, void* data );
00530 private:
00531 class KFileItemPrivate;
00532 KFileItemPrivate * d;
00533 friend QDataStream & operator<< ( QDataStream & s, const KFileItem & a );
00534 friend QDataStream & operator>> ( QDataStream & s, KFileItem & a );
00535 };
00536
00540 typedef QPtrList<KFileItem> KFileItemList;
00541
00545 typedef QPtrListIterator<KFileItem> KFileItemListIterator;
00546
00547 QDataStream & operator<< ( QDataStream & s, const KFileItem & a );
00548 QDataStream & operator>> ( QDataStream & s, KFileItem & a );
00549
00550
00551 #endif
This file is part of the documentation for kio Library Version 3.2.3.