kdatatool.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KDATATOOL_H
00022 #define KDATATOOL_H
00023
00024 #include <qobject.h>
00025 #include <qvaluelist.h>
00026
00027 #include <kaction.h>
00028 #include <kservice.h>
00029
00030 class KDataTool;
00031 class QPixmap;
00032 class QStringList;
00033 class KInstance;
00034
00035
00036
00037
00046 class KDataToolInfo
00047 {
00048 public:
00052 KDataToolInfo();
00056 KDataToolInfo( const KService::Ptr& service, KInstance* instance );
00060 KDataToolInfo( const KDataToolInfo& info );
00064 KDataToolInfo& operator= ( const KDataToolInfo& info );
00065
00071 QString dataType() const;
00082 QStringList mimeTypes() const;
00083
00087 bool isReadOnly() const;
00088
00093 QPixmap icon() const;
00098 QPixmap miniIcon() const;
00102 QString iconName() const;
00115 QStringList userCommands() const;
00125 QStringList commands() const;
00126
00131 KDataTool* createTool( QObject* parent = 0, const char* name = 0 ) const;
00132
00133 KService::Ptr service() const;
00134 KInstance* instance() const { return m_instance; }
00135
00140 bool isValid() const;
00141
00149 static QValueList<KDataToolInfo> query( const QString& datatype, const QString& mimetype, KInstance * instance );
00150
00151 private:
00152 KService::Ptr m_service;
00153 KInstance* m_instance;
00154 private:
00155 class KDataToolInfoPrivate* d;
00156 };
00157
00158
00169 class KDataToolAction : public KAction
00170 {
00171 Q_OBJECT
00172 public:
00173 KDataToolAction( const QString & text, const KDataToolInfo & info, const QString & command, QObject * parent = 0, const char * name = 0);
00174
00181 static QPtrList<KAction> dataToolActionList( const QValueList<KDataToolInfo> & tools, const QObject *receiver, const char* slot );
00182
00183 signals:
00184 void toolActivated( const KDataToolInfo & info, const QString & command );
00185
00186 protected:
00187 virtual void slotActivated();
00188
00189 private:
00190 QString m_command;
00191 KDataToolInfo m_info;
00192 protected:
00193 virtual void virtual_hook( int id, void* data );
00194 private:
00195 class KDataToolActionPrivate* d;
00196
00197 };
00198
00210 class KDataTool : public QObject
00211 {
00212 Q_OBJECT
00213 public:
00218 KDataTool( QObject* parent = 0, const char* name = 0 );
00219
00223 void setInstance( KInstance* instance ) { m_instance = instance; }
00224
00229 KInstance* instance() const;
00230
00243 virtual bool run( const QString& command, void* data, const QString& datatype, const QString& mimetype) = 0;
00244
00245 private:
00246 KInstance * m_instance;
00247 protected:
00248 virtual void virtual_hook( int id, void* data );
00249 private:
00250 class KDataToolPrivate;
00251 KDataToolPrivate * d;
00252 };
00253
00254 #endif
This file is part of the documentation for kdelibs Version 3.1.4.