Source Code (Use browser search to find items of interest.)
Class Index
kdelibs'KFolderType (./kdelibs/kio/kmimetype.h:215)
class KFolderType : public KMimeType
{
K_SYCOCATYPE( KST_KFolderType, KMimeType )
public:
// KFolderType( const QString & _fullpath, const QString& _type, const QString& _icon, const QString& _comment,
// const QStringList& _patterns );
// KFolderType( const QString & _fullpath ) : KMimeType( _fullpath ) { }
KFolderType( KDesktopFile *config) : KMimeType( config ) { }
KFolderType( QDataStream& _str, int offset ) : KMimeType( _str, offset ) { }
virtual QString icon( const QString& _url, bool _is_local ) const;
virtual QString icon( const KURL& _url, bool _is_local ) const;
virtual QString comment( const QString& _url, bool _is_local ) const;
virtual QString comment( const KURL& _url, bool _is_local ) const;
};
/**
* @short Mimetype for a .desktop file
* Handles mount/umount icon, and user-defined properties
*/
kdelibs'KFolderType::icon() (./kdelibs/kio/kmimetype.cpp:321)
QString KFolderType::icon( const QString& _url, bool _is_local ) const
{
if ( !_is_local || _url.isEmpty() )
return KMimeType::icon( _url, _is_local );
return KFolderType::icon( KURL(_url), _is_local );
}
kdelibs'KFolderType::icon() (./kdelibs/kio/kmimetype.cpp:329)
QString KFolderType::icon( const KURL& _url, bool _is_local ) const
{
if ( !_is_local )
return KMimeType::icon( _url, _is_local );
KURL u( _url );
u.addPath( ".directory" );
QString icon;
if ( QFile::exists( u.path() ) )
{
KSimpleConfig cfg( u.path(), true );
cfg.setDesktopGroup();
icon = cfg.readEntry( "Icon" );
QString empty_icon = cfg.readEntry( "EmptyIcon" );
if ( !empty_icon.isEmpty() )
{
bool isempty = false;
DIR *dp = 0L;
struct dirent *ep;
dp = opendir( _url.path().ascii() );
if ( dp )
{
ep=readdir( dp );
ep=readdir( dp ); // ignore '.' and '..' dirent
if ( (ep=readdir( dp )) == 0L ) // third file is NULL entry -> empty directory
isempty = true;
// if third file is .directory and no fourth file -> empty directory
if (!isempty && !strcmp(ep->d_name, ".directory"))
isempty = (readdir(dp) == 0L);
closedir( dp );
}
if ( isempty )
return empty_icon;
}
}
if ( icon.isEmpty() )
return KMimeType::icon( _url, _is_local );
return icon;
}
kdelibs'KFolderType::comment() (./kdelibs/kio/kmimetype.cpp:374)
QString KFolderType::comment( const QString& _url, bool _is_local ) const
{
if ( !_is_local || _url.isEmpty() )
return KMimeType::comment( _url, _is_local );
return KFolderType::comment( KURL(_url), _is_local );
}
kdelibs'KFolderType::comment() (./kdelibs/kio/kmimetype.cpp:382)
QString KFolderType::comment( const KURL& _url, bool _is_local ) const
{
if ( !_is_local )
return KMimeType::comment( _url, _is_local );
KURL u( _url );
u.addPath( ".directory" );
KSimpleConfig cfg( u.path(), true );
cfg.setDesktopGroup();
QString comment = cfg.readEntry( "Comment" );
if ( comment.isEmpty() )
return KMimeType::comment( _url, _is_local );
return comment;
}
/*******************************************************
*
* KDEDesktopMimeType
*
******************************************************/