kio Library API Documentation

kfileitem.h

00001 /* This file is part of the KDE project 00002 Copyright (C) 1999 David Faure <faure@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 // $Id: kfileitem.h,v 1.89 2003/10/16 10:49:41 faure Exp $ 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 // For special case like link to dirs over FTP 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
KDE Logo
This file is part of the documentation for kio Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 8 11:14:57 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003