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
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
friend QDataStream & operator<< (
QDataStream & s,
const KFileItem & a );
00540
friend QDataStream & operator>> (
QDataStream & s,
KFileItem & a );
00541 };
00542
00546
typedef QPtrList<KFileItem> KFileItemList;
00547
00551
typedef QPtrListIterator<KFileItem> KFileItemListIterator;
00552
00553
QDataStream & operator<< (
QDataStream & s,
const KFileItem & a );
00554
QDataStream & operator>> (
QDataStream & s,
KFileItem & a );
00555
00556
00557
#endif