00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef __kservicetype_h__
00022
#define __kservicetype_h__
00023
00024
#include "ksycocaentry.h"
00025
#include "kservice.h"
00026
00027
#include <qstring.h>
00028
#include <qstringlist.h>
00029
#include <qptrlist.h>
00030
#include <qmap.h>
00031
#include <qshared.h>
00032
#include <qdatastream.h>
00033
#include <qvariant.h>
00034
00035
#include <ksimpleconfig.h>
00036
00045 class KIO_EXPORT KServiceType :
public KSycocaEntry
00046 {
00047 K_SYCOCATYPE( KST_KServiceType,
KSycocaEntry )
00048
00049
public:
00050
typedef KSharedPtr<KServiceType> Ptr;
00051
typedef QValueList<Ptr> List;
00052
public:
00053
00062 KServiceType(
const QString & _fullpath,
const QString& _name,
00063
const QString& _icon,
const QString& _comment);
00064
00070 KServiceType(
const QString & _fullpath );
00071
00076 KServiceType(
KDesktopFile *config);
00077
00082 KServiceType(
QDataStream& _str,
int offset );
00083
00084
virtual ~KServiceType();
00085
00094 QString icon()
const {
return m_strIcon; }
00095
00100 QString comment()
const {
return m_strComment; }
00101
00106 QString name()
const {
return m_strName; }
00107
00114 QString desktopEntryPath()
const {
return entryPath(); }
00115
00121 bool isDerived()
const {
return m_bDerived; }
00122
00129
QString parentServiceType() const;
00130
00136
bool inherits( const
QString& servTypeName ) const;
00137
00146 virtual
QVariant property( const
QString& _name ) const;
00147
00152 virtual
QStringList propertyNames() const;
00153
00158 bool isValid()
const {
return m_bValid; }
00159
00166
virtual QVariant::Type propertyDef(
const QString& _name )
const;
00167
00168
virtual QStringList propertyDefNames() const;
00169 virtual const
QMap<
QString,
QVariant::Type>& propertyDefs()
const {
return m_mapPropDefs; }
00170
00175
virtual void save(
QDataStream& );
00176
00181
virtual void load(
QDataStream& );
00182
00187
00188 Ptr parentType();
00193
void addService(KService::Ptr service);
00198 KService::List services();
00199
00207
static Ptr serviceType(
const QString& _name );
00208
00217
static KService::List offers(
const QString& _servicetype );
00218
00227
static List allServiceTypes();
00228
00229
protected:
00230
void init(
KDesktopFile *config );
00231
00232
protected:
00233
QString m_strName;
00234
QString m_strIcon;
00235
QString m_strComment;
00236
QMap<QString,QVariant> m_mapProps;
00237
QMap<QString,QVariant::Type> m_mapPropDefs;
00238
00239
bool m_bValid:1;
00240
bool m_bDerived:1;
00241
protected:
00242
virtual void virtual_hook(
int id,
void* data );
00243
private:
00244
class KServiceTypePrivate;
00245 KServiceTypePrivate* d;
00246 };
00247
00248
00249
00250
00251
#endif