• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeio/tdeio
 

tdeio/tdeio

tdefileitem.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., 51 Franklin Street, Fifth Floor,
00017    Boston, MA 02110-1301, USA.
00018 */
00019 
00020 #ifndef __tdefileitem_h__
00021 #define __tdefileitem_h__
00022 
00023 #include <tqstringlist.h>
00024 #include <sys/stat.h>
00025 
00026 #include <tqptrlist.h>
00027 #include <tdeio/global.h>
00028 #include <kurl.h>
00029 #include <kacl.h>
00030 #include <kmimetype.h>
00031 #include <tdefilemetainfo.h>
00032 
00033 #define TDEFILEITEM_HAS_ISWRITABLE // only used in libkonq/konq_iconviewwidget.cc, will be removed for 3.4
00034 
00041 class TDEIO_EXPORT KFileItem
00042 {
00043 public:
00044   enum { Unknown = (mode_t) - 1 };
00045 
00057   KFileItem( const TDEIO::UDSEntry& _entry, const KURL& _url,
00058              bool _determineMimeTypeOnDemand = false,
00059              bool _urlIsDirectory = false );
00060 
00074   KFileItem( mode_t _mode, mode_t _permissions, const KURL& _url,
00075              bool _determineMimeTypeOnDemand = false );
00076 
00083   KFileItem( const KURL &url, const TQString &mimeType, mode_t mode );
00084 
00089   KFileItem( const KFileItem &item );
00090 
00095   virtual ~KFileItem();
00096 
00101   void refresh();
00102 
00107   void refreshMimeType();
00108 
00113   const KURL & url() const { return m_url; }
00114 
00120   void setURL( const KURL &url );
00121 
00127   const KURL & listerURL() const { return m_listerURL; }
00128 
00134   void setListerURL( const KURL &url );
00135 
00142   void setName( const TQString &name );
00143 
00148   mode_t permissions() const { return m_permissions; }
00149 
00154   TQString permissionsString() const;
00155 
00161   bool hasExtendedACL() const;
00162 
00168   KACL ACL() const;
00169 
00175   KACL defaultACL() const;
00176 
00181   mode_t mode() const { return m_fileMode; }
00182 
00187   TQString user() const;
00188 
00193   TQString group() const;
00194 
00200   bool isLink() const { return m_bLink; }
00201 
00206   bool isDir() const;
00207 
00212   bool isFile() const { return !isDir(); }
00213 
00220   bool isReadable() const;
00221 
00229   bool isWritable() const;
00230 
00235   bool isHidden() const;
00236 
00241   TQString linkDest() const;
00242 
00249   TQString localPath() const;
00250 
00251   //FIXME KDE4 deprecate this in favor of size(bool &hasSize)
00256   TDEIO::filesize_t size() const;
00257 
00263   TDEIO::filesize_t size(bool &hasSize) const;
00264   
00265   //FIXME KDE4 deprecate this in favor of time(unsigned int which, bool &hasSize)
00272   time_t time( unsigned int which ) const;
00273 
00281   time_t time( unsigned int which, bool &hasTime ) const;
00282 
00290   TQString timeString( unsigned int which = TDEIO::UDS_MODIFICATION_TIME ) const;
00291 
00296   bool isLocalFile() const { return m_bIsLocalURL; }
00297 
00303   const TQString& text() const { return m_strText; }
00304 
00312   const TQString& name( bool lowerCase = false ) const {
00313       if ( !lowerCase )
00314           return m_strName;
00315       else
00316           if ( m_strLowerCaseName.isNull() )
00317               m_strLowerCaseName = m_strName.lower();
00318       return m_strLowerCaseName;
00319   }
00320 
00327   TQString mimetype() const;
00328 
00335   TQString mimetypeFast() const;
00336 
00343   KMimeType::Ptr mimeTypePtrFast();
00344 
00351   KMimeType::Ptr determineMimeType();
00352 
00358   KMimeType::Ptr mimeTypePtr() const { return m_pMimeType; }
00359 
00360   bool isMimeTypeKnown() const;
00366   TQString mimeComment();
00367 
00373   TQString iconName();
00374 
00383   TQPixmap pixmap( int _size, int _state=0 ) const;
00384 
00391   int overlays() const;
00392 
00398   TQString getStatusBarInfo();
00399 
00408   TQString getToolTipText(int maxcount = 6);
00409 
00416   bool acceptsDrops( );
00417 
00422   void run();
00423 
00429   const TDEIO::UDSEntry & entry() const { return m_entry; }
00430 
00435   bool isMarked() const { return m_bMarked; }
00440   void mark() { m_bMarked = true; }
00445   void unmark() { m_bMarked = false; }
00446 
00452   bool cmp( const KFileItem & item );
00453 
00487   virtual void setExtraData( const void *key, void *value );
00488 
00496   virtual const void * extraData( const void *key ) const;
00497 
00505   virtual void * extraData( const void *key );
00506 
00511   virtual void removeExtraData( const void *key );
00512 
00517   void setMetaInfo( const KFileMetaInfo & info );
00518 
00526    void setFileMode( mode_t m );
00527 
00533    void setMimeType( const TQString& mimetype );
00534 
00540   const KFileMetaInfo & metaInfo(bool autoget = true,
00541                                  int what = KFileMetaInfo::Fastest) const;
00542 
00550   void assign( const KFileItem & item );
00551 
00569   void setUDSEntry( const TDEIO::UDSEntry& entry, const KURL& url,
00570                     bool determineMimeTypeOnDemand = false,
00571                     bool urlIsDirectory = false );
00572 
00576   KFileItem& operator=( const KFileItem& );
00577 
00582   KURL mostLocalURL(bool &local) const;
00583 
00585 
00586 protected:
00591   void init( bool _determineMimeTypeOnDemand );
00592 
00598   void readUDSEntry( bool _urlIsDirectory );
00599 
00603   TQString parsePermissions( mode_t perm ) const;
00604 
00605 private:
00609   TDEIO::UDSEntry m_entry;
00613   KURL m_url;
00614 
00618   KURL m_listerURL;
00619 
00623   TQString m_strName;
00624 
00629   TQString m_strText;
00630 
00634   mutable TQString m_user, m_group;
00635 
00639   mutable TQString m_strLowerCaseName;
00640 
00644   KMimeType::Ptr m_pMimeType;
00645 
00649   mode_t m_fileMode;
00653   mode_t m_permissions;
00654 
00658   bool m_bMarked:1;
00662   bool m_bLink:1;
00666   bool m_bIsLocalURL:1;
00667 
00668   bool m_bMimeTypeKnown:1;
00669 
00670   // Auto: check leading dot.
00671   enum { Auto, Hidden, Shown } m_hidden:3;
00672 
00673    // For special case like link to dirs over FTP
00674   TQString m_guessedMimeType;
00675   mutable TQString m_access;
00676   TQMap<const void*, void*> m_extra;
00677   mutable KFileMetaInfo m_metaInfo;
00678 
00679   enum { Modification = 0, Access = 1, Creation = 2, NumFlags = 3 };
00680   mutable time_t m_time[3];
00681   mutable TDEIO::filesize_t m_size;
00682 
00683 protected:
00684   virtual void virtual_hook( int id, void* data );
00685 private:
00686   class KFileItemPrivate;
00687   KFileItemPrivate * d;
00688   TDEIO_EXPORT friend TQDataStream & operator<< ( TQDataStream & s, const KFileItem & a );
00689   TDEIO_EXPORT friend TQDataStream & operator>> ( TQDataStream & s, KFileItem & a );
00690 };
00691 
00695 typedef TQPtrList<KFileItem> KFileItemList;
00696 
00700 typedef TQPtrListIterator<KFileItem> KFileItemListIterator;
00701 
00702 TDEIO_EXPORT TQDataStream & operator<< ( TQDataStream & s, const KFileItem & a );
00703 TDEIO_EXPORT TQDataStream & operator>> ( TQDataStream & s, KFileItem & a );
00704 
00705 
00706 #endif

tdeio/tdeio

Skip menu "tdeio/tdeio"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

tdeio/tdeio

Skip menu "tdeio/tdeio"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeio/tdeio by doxygen 1.7.6.1
This website is maintained by Timothy Pearson.