kio Library API Documentation

KFileItem Class Reference

A KFileItem is a generic class to handle a file, local or remote. More...

#include <kfileitem.h>

List of all members.

Public Methods

 KFileItem (const KIO::UDSEntry &_entry, const KURL &_url, bool _determineMimeTypeOnDemand=false, bool _urlIsDirectory=false)
 Creates an item representing a file, from a UDSEntry.

 KFileItem (mode_t _mode, mode_t _permissions, const KURL &_url, bool _determineMimeTypeOnDemand=false)
 Creates an item representing a file, from all the necessary info for it.

 KFileItem (const KURL &url, const QString &mimeType, mode_t mode)
 Creates an item representing a file, for which the mimetype is already known.

 KFileItem (const KFileItem &item)
 Copy constructor.

virtual ~KFileItem ()
 Destructs the KFileItem.

void refresh ()
 Re-reads information (currently only permissions and mimetype).

void refreshMimeType ()
 Re-reads mimetype information.

const KURL & url () const
 Returns the url of the file.

void setURL (const KURL &url)
 Sets the item's URL.

mode_t permissions () const
 Returns the permissions of the file (stat.st_mode containing only permissions).

QString permissionsString () const
 Returns the access permissions for the file as a string.

mode_t mode () const
 Returns the file type (stat.st_mode containing only S_IFDIR, S_IFLNK, ...).

QString user () const
 Returns the owner of the file.

QString group () const
 Returns the group of the file.

bool isLink () const
 Returns true if this item represents a link in the UNIX sense of a link.

bool isDir () const
 Returns true if this item represents a directory.

bool isFile () const
 Returns true if this item represents a file (and not a a directory).

bool isReadable () const
QString linkDest () const
 Returns the link destination if isLink() == true.

KIO::filesize_t size () const
 Returns the size of the file, if known.

time_t time (unsigned int which) const
QString timeString (unsigned int which=KIO::UDS_MODIFICATION_TIME) const
bool isLocalFile () const
 Returns true if the file is a local file.

const QString & text () const
 Returns the text of the file item.

const QString & name (bool lowerCase=false) const
QString mimetype () const
 Returns the mimetype of the file item.

KMimeType::Ptr determineMimeType ()
 Returns the mimetype of the file item.

KMimeType::Ptr mimeTypePtr () const
 Returns the currently known mimetype of the file item.

QString mimeComment ()
 Returns the descriptive comment for this mime type, or the mime type itself if none is present.

QString iconName ()
 Returns the full path name to the icon that represents this mime type.

QPixmap pixmap (int _size, int _state=0) const
 Returns a pixmap representing the file.

int overlays () const
 Returns the overlays (bitfield of KIcon::*Overlay flags) that are used for this item's pixmap.

QString getStatusBarInfo ()
 Returns the string to be displayed in the statusbar, e.g.

QString getToolTipText (int maxcount=6)
bool acceptsDrops ()
 Returns true if files can be dropped over this item.

void run ()
 Let's "KRun" this file ! (e.g.

const KIO::UDSEntry & entry () const
 Returns the UDS entry.

bool cmp (const KFileItem &item)
 Somewhat like a comparison operator, but more explicit.

virtual void setExtraData (const void *key, void *value)
 This allows to associate some "extra" data to a KFileItem.

virtual const void * extraData (const void *key) const
virtual void * extraData (const void *key)
 The non-const version of the previous extraData() method.

virtual void removeExtraData (const void *key)
 Removes the extra data associated with an item via key.

void setMetaInfo (const KFileMetaInfo &info)
 Sets the metainfo of this item to info.

const KFileMetaInfo & metaInfo (bool autoget=true, int what=KFileMetaInfo::Fastest) const
 Returns the metainfo of this item.

void assign (const KFileItem &item)
 Somewhat like an assignment operator, but more explicit.


Protected Methods

void init (bool _determineMimeTypeOnDemand)
 Computes the text, mode, and mimetype from the UDSEntry Called by constructor, but can be called again later.

QString parsePermissions (mode_t perm) const
 Parses the given permission set and provides it for access().


Detailed Description

A KFileItem is a generic class to handle a file, local or remote.

In particular, it makes it easier to handle the result of KIO::listDir. (UDSEntry isn't very friendly to use) It includes many file attributes such as mimetype, icon, text, mode, link...

Definition at line 40 of file kfileitem.h.


Constructor & Destructor Documentation

KFileItem::KFileItem (  const KIO::UDSEntry &    _entry,
const KURL &    _url,
bool    _determineMimeTypeOnDemand = false,
bool    _urlIsDirectory = false
) 
 

Creates an item representing a file, from a UDSEntry.

This is the preferred constructor when using KIO::listDir().

Parameters:
_entry  the KIO entry used to get the file, contains info about it
_url  the file url
_determineMimeTypeOnDemand  specifies if the mimetype of the given URL should be determined immediately or on demand
_urlIsDirectory  specifies if the url is just the directory of the fileitem and the filename from the UDSEntry should be used.

Definition at line 47 of file kfileitem.cpp.

References KURL::addPath(), QValueList< UDSAtom >::begin(), KIO::decodeFileName(), QValueList< UDSAtom >::end(), init(), QString::isEmpty(), KMimeType::mimeType(), and KGlobal::staticQString().

KFileItem::KFileItem (  mode_t    _mode,
mode_t    _permissions,
const KURL &    _url,
bool    _determineMimeTypeOnDemand = false
) 
 

Creates an item representing a file, from all the necessary info for it.

Parameters:
_mode  the file mode (according to stat() (e.g. S_IFDIR...) Set to KFileItem::Unknown if unknown. For local files, KFileItem will use stat().
_permissions  the access permissions If you set both the mode and the permissions, you save a stat() for local files. Set to KFileItem::Unknown if you don't know the mode or the permission.
_url  the file url
_determineMimeTypeOnDemand  specify if the mimetype of the given URL should be determined immediately or on demand

Definition at line 113 of file kfileitem.cpp.

References KIO::decodeFileName(), and init().

KFileItem::KFileItem (  const KURL &    url,
const QString &    mimeType,
mode_t    mode
) 
 

Creates an item representing a file, for which the mimetype is already known.

Parameters:
url  the file url
mimeType  the name of the file's mimetype
mode  the mode (S_IFDIR...)

Definition at line 130 of file kfileitem.cpp.

References KIO::decodeFileName(), init(), and KMimeType::mimeType().

KFileItem::KFileItem (  const KFileItem &    item ) 
 

Copy constructor.

Note that extra-data set via setExtraData() is not deeply copied -- just the pointers are copied.

Definition at line 146 of file kfileitem.cpp.

References assign().

KFileItem::~KFileItem (    )  [virtual]
 

Destructs the KFileItem.

Extra data set via setExtraData() is not deleted.

Definition at line 152 of file kfileitem.cpp.


Member Function Documentation

void KFileItem::refresh (    ) 
 

Re-reads information (currently only permissions and mimetype).

This is called when the _file_ changes.

Definition at line 214 of file kfileitem.cpp.

References init(), and KIO::UDSEntry.

Referenced by KDirListerCache::FilesChanged().

void KFileItem::refreshMimeType (    ) 
 

Re-reads mimetype information.

This is called when the mimetype database changes.

Definition at line 234 of file kfileitem.cpp.

References init().

Referenced by KDirListerCache::FileRenamed().

const KURL& KFileItem::url (    )  const [inline]
 

Returns the url of the file.

Definition at line 111 of file kfileitem.h.

Referenced by KDirListerCache::FilesRemoved(), KDirOperator::insertNewFiles(), KPropsDlgPlugin::isDesktopFile(), KFilePropsPlugin::KFilePropsPlugin(), KPropertiesDialog::KPropertiesDialog(), run(), KDirOperator::selectDir(), and KFileTreeViewItem::url().

void KFileItem::setURL (  const KURL &    url ) 
 

Sets the item's URL.

Do not call unless you know what you are doing! (used for example when an item got renamed).

Definition at line 240 of file kfileitem.cpp.

References KIO::decodeFileName(), and KURL::fileName().

Referenced by KDirListerCache::FileRenamed().

mode_t KFileItem::permissions (    )  const [inline]
 

Returns the permissions of the file (stat.st_mode containing only permissions).

Definition at line 122 of file kfileitem.h.

Referenced by KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin().

QString KFileItem::permissionsString (    ) 
 

Returns the access permissions for the file as a string.

Definition at line 717 of file kfileitem.cpp.

References QString::isNull(), and parsePermissions().

Referenced by KFileListViewItem::init().

mode_t KFileItem::mode (    )  const [inline]
 

Returns the file type (stat.st_mode containing only S_IFDIR, S_IFLNK, ...).

Definition at line 132 of file kfileitem.h.

Referenced by acceptsDrops(), init(), KPropsDlgPlugin::isDesktopFile(), and KFilePropsPlugin::KFilePropsPlugin().

QString KFileItem::user (    ) 
 

Returns the owner of the file.

Definition at line 334 of file kfileitem.cpp.

References QFile::encodeName(), QString::fromLocal8Bit(), QString::isEmpty(), KURL::path(), and user().

Referenced by getToolTipText(), KFileListViewItem::init(), KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin(), and user().

QString KFileItem::group (    ) 
 

Returns the group of the file.

Definition at line 349 of file kfileitem.cpp.

References QFile::encodeName(), QString::fromLocal8Bit(), group(), QString::isEmpty(), KURL::path(), and QString::sprintf().

Referenced by getToolTipText(), group(), KFileListViewItem::init(), and KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin().

bool KFileItem::isLink (    )  const [inline]
 

Returns true if this item represents a link in the UNIX sense of a link.

Definition at line 148 of file kfileitem.h.

Referenced by KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin(), KFilePropsPlugin::KFilePropsPlugin(), and parsePermissions().

bool KFileItem::isDir (    ) 
 

Returns true if this item represents a directory.

Definition at line 494 of file kfileitem.cpp.

References QString::isEmpty().

Referenced by KFileViewSignaler::activate(), KDirListerCache::FilesRemoved(), KCombiView::insertItem(), KDirOperator::insertNewFiles(), KFileTreeViewItem::isDir(), isFile(), KDirLister::itemsForDir(), KFilePermissionsPropsPlugin::KFilePermissionsPropsPlugin(), KFilePropsPlugin::KFilePropsPlugin(), KDirLister::matchesFilter(), parsePermissions(), KDirOperator::prepareCompletionObjects(), KFileView::removeItem(), KFileDialog::setSelection(), KFileIconView::setSorting(), and KFileView::updateNumbers().

bool KFileItem::isFile (    )  const [inline]
 

Returns true if this item represents a file (and not a a directory).

Definition at line 158 of file kfileitem.h.

References isDir().

Referenced by KFileView::updateNumbers().

bool KFileItem::isReadable (    ) 
 

Returns:
true if the file can be read - more precisely, returns false if we know for sure it can't. In some cases (remote files), we may return true even though it can't be read.

Definition at line 473 of file kfileitem.cpp.

References QFile::encodeName(), and KURL::path().

Referenced by overlays().

QString KFileItem::linkDest (    ) 
 

Returns the link destination if isLink() == true.

Definition at line 247 of file kfileitem.cpp.

References QValueList< UDSAtom >::begin(), QFile::decodeName(), QFile::encodeName(), QValueList< UDSAtom >::end(), and KURL::path().

Referenced by getStatusBarInfo(), KFilePropsPlugin::KFilePropsPlugin(), and run().

KIO::filesize_t KFileItem::size (    ) 
 

Returns the size of the file, if known.

Definition at line 268 of file kfileitem.cpp.

References QValueList< UDSAtom >::begin(), QFile::encodeName(), QValueList< UDSAtom >::end(), and KURL::path().

Referenced by cmp(), getStatusBarInfo(), getToolTipText(), KFileListViewItem::init(), KFilePropsPlugin::KFilePropsPlugin(), and KFileIconView::setSorting().

time_t KFileItem::time (  unsigned int    which )  const
 

Parameters:
which  UDS_MODIFICATION_TIME, UDS_ACCESS_TIME or even UDS_CREATION_TIME
Returns:
the time asked for, (time_t)0 if not available
See also:
timeString

Definition at line 290 of file kfileitem.cpp.

References QValueList< UDSAtom >::begin(), QFile::encodeName(), QValueList< UDSAtom >::end(), and KURL::path().

Referenced by cmp(), KFilePropsPlugin::KFilePropsPlugin(), KFileIconView::setSorting(), and timeString().

QString KFileItem::timeString (  unsigned int    which = KIO::UDS_MODIFICATION_TIME )  const
 

Parameters:
which  UDS_MODIFICATION_TIME, UDS_ACCESS_TIME or even UDS_CREATION_TIME
Returns:
a formatted string of the requested time.
See also:
time

Definition at line 759 of file kfileitem.cpp.

References KLocale::formatDateTime(), KGlobal::locale(), QDateTime::setTime_t(), and time().

Referenced by getToolTipText(), and KFileListViewItem::init().

bool KFileItem::isLocalFile (    )  const [inline]
 

Returns true if the file is a local file.

Definition at line 195 of file kfileitem.h.

Referenced by KPropsDlgPlugin::isDesktopFile().

const QString& KFileItem::text (    )  const [inline]
 

Returns the text of the file item.

It's not exactly the filename since some decoding happens ('%2F'->'/').

Definition at line 201 of file kfileitem.h.

Referenced by getStatusBarInfo(), KFileListViewItem::init(), KFileIconView::insertItem(), KDirLister::matchesFilter(), and KFileIconView::setSorting().

const QString& KFileItem::name (  bool    lowerCase = false )  const [inline]
 

Returns:
the name of the file item (without a path) Similar to text(), but unencoded, i.e. the original name If lowerCase is true, the name will be returned in lower case, which is useful to speed up sorting by name, case insensitively.

Definition at line 209 of file kfileitem.h.

References QString::isNull(), and QString::lower().

Referenced by KFileDialog::multiSelectionChanged(), KDirOperator::prepareCompletionObjects(), and KFileView::setCurrentItem().

QString KFileItem::mimetype (    ) 
 

Returns the mimetype of the file item.

If determineMimeTypeOnDemand was used, this will determine the mimetype first. Equivalent to determineMimeType()->name()

Definition at line 368 of file kfileitem.cpp.

References determineMimeType().

Referenced by acceptsDrops(), KPropsDlgPlugin::isDesktopFile(), KDirLister::matchesMimeFilter(), and metaInfo().

KMimeType::Ptr KFileItem::determineMimeType (    ) 
 

Returns the mimetype of the file item.

If determineMimeTypeOnDemand was used, this will determine the mimetype first.

Definition at line 374 of file kfileitem.cpp.

References KMimeType::findByURL().

Referenced by assign(), getStatusBarInfo(), getToolTipText(), iconName(), mimeComment(), and mimetype().

KMimeType::Ptr KFileItem::mimeTypePtr (    )  const [inline]
 

Returns the currently known mimetype of the file item.

This will not try to determine the mimetype if unknown.

Definition at line 235 of file kfileitem.h.

QString KFileItem::mimeComment (    ) 
 

Returns the descriptive comment for this mime type, or the mime type itself if none is present.

Definition at line 394 of file kfileitem.cpp.

References determineMimeType(), and QString::isEmpty().

Referenced by KFilePropsPlugin::KFilePropsPlugin().

QString KFileItem::iconName (    ) 
 

Returns the full path name to the icon that represents this mime type.

Definition at line 404 of file kfileitem.cpp.

References determineMimeType().

QPixmap KFileItem::pixmap (  int    _size,
int    _state = 0
)  const
 

Returns a pixmap representing the file.

Parameters:
_size  Size for the pixmap in pixels. Zero will return the globally configured default size.
_state  The state of the icon: KIcon::DefaultState, KIcon::ActiveState or KIcon::DisabledState.
Returns:
the pixmap

Definition at line 436 of file kfileitem.cpp.

References KURL::fileName(), KMimeType::findByURL(), KServiceType::icon(), QString::isEmpty(), QPixmap::isNull(), QString::left(), QString::length(), KMimeType::mimeType(), overlays(), KURL::path(), QString::right(), and KGlobal::staticQString().

Referenced by KFileListViewItem::init(), KFileIconView::insertItem(), and KFileDetailView::updateView().

int KFileItem::overlays (    ) 
 

Returns the overlays (bitfield of KIcon::*Overlay flags) that are used for this item's pixmap.

Definition at line 409 of file kfileitem.cpp.

References KURL::fileName(), KIcon::HiddenOverlay, KFileShare::isDirectoryShared(), isReadable(), KIcon::LinkOverlay, KIcon::LockOverlay, KURL::path(), QString::right(), KIcon::ShareOverlay, and KIcon::ZipOverlay.

Referenced by pixmap().

QString KFileItem::getStatusBarInfo (    ) 
 

Returns the string to be displayed in the statusbar, e.g.

when the mouse is over this item

Definition at line 529 of file kfileitem.cpp.

References QString::arg(), determineMimeType(), QString::isEmpty(), linkDest(), size(), and text().

QString KFileItem::getToolTipText (  int    maxcount = 6 ) 
 

Parameters:
maxcount  the maximum number of entries shown
Returns:
the string to be displayed in the tool tip when the mouse is over this item. This may load a plugin to determine additional information specific to the mimetype of the file

Definition at line 568 of file kfileitem.cpp.

References QString::arg(), KIO::convertSize(), determineMimeType(), KStdAccel::end(), QStyleSheet::escape(), group(), QString::isEmpty(), KFileMetaInfo::isEmpty(), KFileMetaInfoItem::isValid(), KFileMetaInfo::isValid(), KFileMetaInfo::item(), QString::left(), QString::length(), metaInfo(), parsePermissions(), KFileMetaInfo::preferredKeys(), size(), KFileMetaInfoItem::string(), timeString(), KFileMetaInfoItem::translatedKey(), and user().

bool KFileItem::acceptsDrops (    ) 
 

Returns true if files can be dropped over this item.

Contrary to popular belief, not only dirs will return true :) Executables, .desktop files, will do so as well.

Definition at line 504 of file kfileitem.cpp.

References QFile::encodeName(), mimetype(), mode(), and KURL::path().

void KFileItem::run (    ) 
 

Let's "KRun" this file ! (e.g.

when file is clicked or double-clicked or return is pressed)

Definition at line 636 of file kfileitem.cpp.

References linkDest(), and url().

const KIO::UDSEntry& KFileItem::entry (    )  const [inline]
 

Returns the UDS entry.

Used by the tree view to access all details by position.

Definition at line 298 of file kfileitem.h.

bool KFileItem::cmp (  const KFileItem &    item ) 
 

Somewhat like a comparison operator, but more explicit.

Definition at line 647 of file kfileitem.cpp.

References m_bIsLocalURL, m_bLink, m_fileMode, m_group, m_permissions, m_strName, m_user, size(), and time().

void KFileItem::setExtraData (  const void *    key,
void *    value
)  [virtual]
 

This allows to associate some "extra" data to a KFileItem.

As one KFileItem can be used by several objects (often views) which all need to add some data, you have to use a key to reference your extra data within the KFileItem.

That way a KFileItem can hold and provide access to all those views separately.

I.e. a KFileIconView that associates a KFileIconViewItem (an item suitable for use with QIconView) does

 kfileItem->setExtraData( this, iconViewItem );
 

and can later access the iconViewItem by doing

 KFileIconViewItem *iconViewItem = static_cast<KFileIconViewItem*>( kfileItem->extraData( this ));
 

This is usually more efficient then having every view associate data to items by using a separate QDict or QMap.

Note: you have to remove and destroy the data you associated yourself when you don't need it anymore!

See also:
extraData , removeExtraData

Definition at line 688 of file kfileitem.cpp.

References KStdAccel::key(), and QMap< const void *, void * >::replace().

Referenced by KFileIconView::insertItem(), and KFileDetailView::insertItem().

const void * KFileItem::extraData (  const void *    key )  const [virtual]
 

Returns:
the extra data associated to an item with key via setExtraData. Returns 0L if nothing was associated with key.
See also:
extraData

Definition at line 696 of file kfileitem.cpp.

References QMapConstIterator::data(), QMap< const void *, void * >::end(), QMap< const void *, void * >::find(), and KStdAccel::key().

Referenced by KFileDetailView::ensureItemVisible(), KFileTreeView::findItem(), KFileTreeBranch::findTVIByURL(), KFileDetailView::isSelected(), KFileDetailView::removeItem(), KFileDetailView::setCurrentItem(), and KFileDetailView::setSelected().

void * KFileItem::extraData (  const void *    key )  [virtual]
 

The non-const version of the previous extraData() method.

Definition at line 704 of file kfileitem.cpp.

References QMapIterator::data(), QMap< const void *, void * >::end(), QMap< const void *, void * >::find(), and KStdAccel::key().

void KFileItem::removeExtraData (  const void *    key )  [virtual]
 

Removes the extra data associated with an item via key.

Definition at line 712 of file kfileitem.cpp.

References KStdAccel::key(), and QMap< const void *, void * >::remove().

void KFileItem::setMetaInfo (  const KFileMetaInfo &    info ) 
 

Sets the metainfo of this item to info.

Definition at line 766 of file kfileitem.cpp.

Referenced by KFileMetaPropsPlugin::KFileMetaPropsPlugin().

const KFileMetaInfo & KFileItem::metaInfo (  bool    autoget = true,
int    what = KFileMetaInfo::Fastest
)  const
 

Returns the metainfo of this item.

If autoget is true, it will automatically be created

Definition at line 771 of file kfileitem.cpp.

References KURL::isLocalFile(), KFileMetaInfo::isValid(), mimetype(), and KURL::path().

Referenced by getToolTipText(), and KFileMetaPropsPlugin::KFileMetaPropsPlugin().

void KFileItem::assign (  const KFileItem &    item ) 
 

Somewhat like an assignment operator, but more explicit.

Note: extra-data set with setExtraData() is not copied, so be careful what you do!

I.e. KDirLister uses it to update existing items from a fresh item.

Definition at line 660 of file kfileitem.cpp.

References determineMimeType(), m_access, m_bIsLocalURL, m_bLink, m_bMimeTypeKnown, m_entry, m_fileMode, m_group, m_guessedMimeType, m_metaInfo, m_permissions, m_pMimeType, m_size, m_strLowerCaseName, m_strName, m_strText, m_time, m_url, and m_user.

Referenced by KFileItem().

void KFileItem::init (  bool    _determineMimeTypeOnDemand )  [protected]
 

Computes the text, mode, and mimetype from the UDSEntry Called by constructor, but can be called again later.

Definition at line 156 of file kfileitem.cpp.

References KMimeType::defaultMimeType(), QFile::encodeName(), KMimeType::findByURL(), KURL::isLocalFile(), mode(), and KURL::path().

Referenced by KFileItem(), refresh(), and refreshMimeType().

QString KFileItem::parsePermissions (  mode_t    perm )  const [protected]
 

Parses the given permission set and provides it for access().

Definition at line 725 of file kfileitem.cpp.

References QString::fromLatin1(), isDir(), and isLink().

Referenced by getToolTipText(), and permissionsString().


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.3.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sat Feb 28 02:50:29 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2001