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 #include <kdemacros.h>
00030 
00031 class KDataTool;
00032 class QPixmap;
00033 class QStringList;
00034 class KInstance;
00035 
00036 
00037 
00038 
00048 class KDataToolInfo
00049 {
00050 public:
00054     KDataToolInfo();
00060     KDataToolInfo( const KService::Ptr& service, KInstance* instance );
00064     KDataToolInfo( const KDataToolInfo& info );
00068     KDataToolInfo& operator= ( const KDataToolInfo& info );
00069 
00076     QString dataType() const;
00088     QStringList mimeTypes() const;
00089 
00094     bool isReadOnly() const;
00095 
00101     QPixmap icon() const KDE_DEPRECATED;
00107     QPixmap miniIcon() const KDE_DEPRECATED;
00112     QString iconName() const;
00126     QStringList userCommands() const;
00138     QStringList commands() const;
00139 
00146     KDataTool* createTool( QObject* parent = 0, const char* name = 0 ) const;
00147 
00152     KService::Ptr service() const;
00153 
00158     KInstance* instance() const { return m_instance; }
00159 
00165     bool isValid() const;
00166 
00175     static QValueList<KDataToolInfo> query( const QString& datatype, const QString& mimetype, KInstance * instance );
00176 
00177 private:
00178     KService::Ptr m_service;
00179     KInstance* m_instance;
00180 private:
00181     class KDataToolInfoPrivate* d;
00182 };
00183 
00184 
00195 class KDataToolAction : public KAction
00196 {
00197     Q_OBJECT
00198 public:
00208     KDataToolAction( const QString & text, const KDataToolInfo & info, const QString & command, QObject * parent = 0, const char * name = 0);
00209 
00220     static QPtrList<KAction> dataToolActionList( const QValueList<KDataToolInfo> & tools, const QObject *receiver, const char* slot );
00221 
00222 signals:
00228     void toolActivated( const KDataToolInfo & info, const QString & command );
00229 
00230 protected:
00231     virtual void slotActivated();
00232 
00233 private:
00234     QString m_command;
00235     KDataToolInfo m_info;
00236 protected:
00237     virtual void virtual_hook( int id, void* data );
00238 private:
00239     class KDataToolActionPrivate* d;
00240 
00241 };
00242 
00254 class KDataTool : public QObject
00255 {
00256     Q_OBJECT
00257 public:
00264     KDataTool( QObject* parent = 0, const char* name = 0 );
00265 
00269     void setInstance( KInstance* instance ) { m_instance = instance; }
00270 
00276     KInstance* instance() const;
00277 
00291     virtual bool run( const QString& command, void* data, const QString& datatype, const QString& mimetype) = 0;
00292 
00293 private:
00294     KInstance * m_instance;
00295 protected:
00296     virtual void virtual_hook( int id, void* data );
00297 private:
00298     class KDataToolPrivate;
00299     KDataToolPrivate * d;
00300 };
00301 
00302 #endif
 
This file is part of the documentation for kio Library Version 3.2.0.