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 <kio/global.h>
00032 #include <kfilemetainfo.h>
00033
00040 class 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
00111 const KURL & url() const { return m_url; }
00112
00117 void setURL( const KURL &url );
00118
00122 mode_t permissions() const { return m_permissions; }
00123
00127 QString permissionsString() const;
00128
00132 mode_t mode() const { return m_fileMode; }
00133
00137 QString user() const;
00138
00142 QString group() const;
00143
00148 bool isLink() const { return m_bLink; }
00149
00153 bool isDir() const;
00154
00158 bool isFile() const { return !isDir(); }
00159
00165 bool isReadable() const;
00166
00170 QString linkDest() const;
00171
00175 KIO::filesize_t size() const;
00176
00182 time_t time( unsigned int which ) const;
00183
00190 QString timeString( unsigned int which = KIO::UDS_MODIFICATION_TIME ) const;
00191
00195 bool isLocalFile() const { return m_bIsLocalURL; }
00196
00201 const QString& text() const { return m_strText; }
00202
00209 const QString& name( bool lowerCase = false ) const {
00210 if ( !lowerCase )
00211 return m_strName;
00212 else
00213 if ( m_strLowerCaseName.isNull() )
00214 m_strLowerCaseName = m_strName.lower();
00215 return m_strLowerCaseName;
00216 }
00217
00223 QString mimetype() const;
00224
00229 KMimeType::Ptr determineMimeType();
00230
00235 KMimeType::Ptr mimeTypePtr() const { return m_pMimeType; }
00236
00237 bool isMimeTypeKnown() const;
00242 QString mimeComment();
00243
00248 QString iconName();
00249
00258 QPixmap pixmap( int _size, int _state=0 ) const;
00259
00264 int overlays() const;
00265
00270 QString getStatusBarInfo();
00271
00279 QString getToolTipText(int maxcount = 6);
00280
00286 bool acceptsDrops( );
00287
00292 void run();
00293
00298 const KIO::UDSEntry & entry() const { return m_entry; }
00299
00300
00301 bool isMarked() const { return m_bMarked; }
00302 void mark() { m_bMarked = true; }
00303 void unmark() { m_bMarked = false; }
00304
00308 bool cmp( const KFileItem & item );
00309
00341 virtual void setExtraData( const void *key, void *value );
00342
00350 virtual const void * extraData( const void *key ) const;
00351
00355 virtual void * extraData( const void *key );
00356
00360 virtual void removeExtraData( const void *key );
00361
00365 void setMetaInfo( const KFileMetaInfo & info );
00366
00371 const KFileMetaInfo & metaInfo(bool autoget = true,
00372 int what = KFileMetaInfo::Fastest) const;
00373
00381 void assign( const KFileItem & item );
00382
00383
00385
00386 protected:
00391 void init( bool _determineMimeTypeOnDemand );
00392
00396 QString parsePermissions( mode_t perm ) const;
00397
00398 private:
00402 KIO::UDSEntry m_entry;
00406 KURL m_url;
00407
00411 QString m_strName;
00412
00417 QString m_strText;
00418
00422 mutable QString m_user, m_group;
00423
00427 mutable QString m_strLowerCaseName;
00428
00432 KMimeType::Ptr m_pMimeType;
00433
00437 mode_t m_fileMode;
00441 mode_t m_permissions;
00442
00446 bool m_bMarked:1;
00450 bool m_bLink:1;
00454 bool m_bIsLocalURL:1;
00455
00456 bool m_bMimeTypeKnown:1;
00457
00458
00459 QString m_guessedMimeType;
00460 mutable QString m_access;
00461 QMap<const void*, void*> m_extra;
00462 mutable KFileMetaInfo m_metaInfo;
00463
00464 enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 };
00465 mutable time_t m_time[3];
00466 mutable KIO::filesize_t m_size;
00467
00468 protected:
00469 virtual void virtual_hook( int id, void* data );
00470 private:
00471 class KFileItemPrivate;
00472 KFileItemPrivate * d;
00473 };
00474
00478 typedef QPtrList<KFileItem> KFileItemList;
00479
00483 typedef QPtrListIterator<KFileItem> KFileItemListIterator;
00484
00485 #endif
This file is part of the documentation for kdelibs Version 3.1.4.