20 #ifndef __kfileitem_h__
21 #define __kfileitem_h__
23 #include <tqstringlist.h>
26 #include <tqptrlist.h>
27 #include <kio/global.h>
30 #include <kmimetype.h>
31 #include <kfilemetainfo.h>
33 #define KFILEITEM_HAS_ISWRITABLE // only used in libkonq/konq_iconviewwidget.cc, will be removed for 3.4
44 enum { Unknown = (mode_t) - 1 };
58 bool _determineMimeTypeOnDemand =
false,
59 bool _urlIsDirectory =
false );
74 KFileItem( mode_t _mode, mode_t _permissions,
const KURL& _url,
75 bool _determineMimeTypeOnDemand =
false );
83 KFileItem(
const KURL &url,
const TQString &mimeType, mode_t mode );
107 void refreshMimeType();
113 const KURL &
url()
const {
return m_url; }
120 void setURL(
const KURL &url );
128 void setName(
const TQString &name );
140 TQString permissionsString()
const;
147 bool hasExtendedACL()
const;
161 KACL defaultACL()
const;
167 mode_t
mode()
const {
return m_fileMode; }
173 TQString user()
const;
179 TQString group()
const;
206 bool isReadable()
const;
215 bool isWritable()
const;
221 bool isHidden()
const;
227 TQString linkDest()
const;
235 TQString localPath()
const;
258 time_t time(
unsigned int which )
const;
267 time_t time(
unsigned int which,
bool &hasTime )
const;
289 const TQString&
text()
const {
return m_strText; }
298 const TQString&
name(
bool lowerCase =
false )
const {
302 if ( m_strLowerCaseName.isNull() )
303 m_strLowerCaseName = m_strName.lower();
304 return m_strLowerCaseName;
313 TQString mimetype()
const;
321 KMimeType::Ptr determineMimeType();
330 bool isMimeTypeKnown()
const;
336 TQString mimeComment();
353 TQPixmap pixmap(
int _size,
int _state=0 )
const;
361 int overlays()
const;
368 TQString getStatusBarInfo();
378 TQString getToolTipText(
int maxcount = 6);
386 bool acceptsDrops( );
410 void mark() { m_bMarked =
true; }
457 virtual void setExtraData(
const void *key,
void *value );
466 virtual const void * extraData(
const void *key )
const;
475 virtual void * extraData(
const void *key );
481 virtual void removeExtraData(
const void *key );
496 void setFileMode( mode_t m );
503 void setMimeType(
const TQString& mimetype );
539 void setUDSEntry(
const KIO::UDSEntry& entry,
const KURL& url,
540 bool determineMimeTypeOnDemand =
false,
541 bool urlIsDirectory =
false );
552 KURL mostLocalURL(
bool &local)
const;
561 void init(
bool _determineMimeTypeOnDemand );
568 void readUDSEntry(
bool _urlIsDirectory );
573 TQString parsePermissions( mode_t perm )
const;
599 mutable TQString m_user, m_group;
604 mutable TQString m_strLowerCaseName;
609 KMimeType::Ptr m_pMimeType;
618 mode_t m_permissions;
631 bool m_bIsLocalURL:1;
633 bool m_bMimeTypeKnown:1;
636 enum { Auto, Hidden, Shown } m_hidden:3;
639 TQString m_guessedMimeType;
640 mutable TQString m_access;
641 TQMap<const void*, void*> m_extra;
644 enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 };
645 mutable time_t m_time[3];
649 virtual void virtual_hook(
int id,
void* data );
651 class KFileItemPrivate;
652 KFileItemPrivate * d;
653 KIO_EXPORT
friend TQDataStream & operator<< ( TQDataStream & s,
const KFileItem & a );
654 KIO_EXPORT
friend TQDataStream & operator>> ( TQDataStream & s,
KFileItem & a );
660 typedef TQPtrList<KFileItem> KFileItemList;
665 typedef TQPtrListIterator<KFileItem> KFileItemListIterator;
667 KIO_EXPORT TQDataStream & operator<< ( TQDataStream & s,
const KFileItem & a );
668 KIO_EXPORT TQDataStream & operator>> ( TQDataStream & s,
KFileItem & a );