00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __ko_query_trader_h__
00021 #define __ko_query_trader_h__
00022
00023 #include <kservice.h>
00024 #include <ksharedptr.h>
00025 #include <q3valuelist.h>
00026 #include <koffice_export.h>
00027
00028 class QObject;
00029 class QStringList;
00030 class KoDocument;
00031 class KoFilter;
00032 class KoFilterChain;
00033
00038 class KOFFICECORE_EXPORT KoDocumentEntry
00039 {
00040
00041 public:
00042 KoDocumentEntry() { m_service = 0L; }
00043 explicit KoDocumentEntry( KService::Ptr service );
00044 ~KoDocumentEntry() { }
00045
00046 KService::Ptr service() const { return m_service; }
00047
00051 bool isEmpty() const { return m_service.isNull(); }
00052
00056 QString name() const { return m_service->name(); }
00057
00061 QStringList mimeTypes() const { return m_service->serviceTypes(); }
00062
00066 bool supportsMimeType( const QString & _mimetype ) const
00067 { return mimeTypes().contains( _mimetype ); }
00068
00073 KoDocument* createDoc( QString* errorMsg = 0, KoDocument* parent = 0 ) const;
00074
00083 static Q3ValueList<KoDocumentEntry> query( const QString & _constr = QString::null );
00084
00096
00097 static Q3ValueList<KoDocumentEntry> query( bool _onlyDocEmb,const QString& _constr);
00098
00099
00100
00101
00102
00103
00110 static KoDocumentEntry queryByMimeType( const QString & mimetype );
00111
00112 private:
00113 KService::Ptr m_service;
00114 };
00115
00119 class KOFFICECORE_EXPORT KoFilterEntry : public KShared
00120 {
00121
00122 public:
00123 typedef KSharedPtr<KoFilterEntry> Ptr;
00124
00125 KoFilterEntry() : weight( 0 ) { m_service = 0L; }
00126 KoFilterEntry( KService::Ptr service );
00127 ~KoFilterEntry() { }
00128
00129 KoFilter* createFilter( KoFilterChain* chain, QObject* parent = 0 );
00130
00134 QStringList import;
00135
00139 QStringList export_;
00140
00144 unsigned int weight;
00145
00149 QString available;
00150
00154 bool imports( const QString& _mimetype ) const
00155 { return ( import.contains( _mimetype ) ); }
00156
00160 bool exports( const QString& _m ) const
00161 { return ( export_.contains( _m ) ); }
00162
00170 static Q3ValueList<KoFilterEntry::Ptr> query( const QString& _constr = QString::null );
00171
00172 KService::Ptr service() const { return m_service; }
00173
00174 private:
00175 KService::Ptr m_service;
00176 };
00177
00178 #endif