00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef __koffice_filter_manager_h__
00022
#define __koffice_filter_manager_h__
00023
00024
#include <qobject.h>
00025
#include <qmap.h>
00026
#include <koFilterChain.h>
00027
00028
class KoDocument;
00029
00043 class KoFilterManager :
public QObject
00044 {
00045 Q_OBJECT
00046
public:
00050 enum Direction { Import = 1, Export = 2 };
00051
00055
KoFilterManager(
KoDocument* document );
00070
KoFilterManager(
const QString& url,
const QCString& mimetypeHint =
"",
00071
KoFilterChain*
const parentChain = 0 );
00072
00073
virtual ~
KoFilterManager();
00074
00082
QString import(
const QString& url, KoFilter::ConversionStatus& status );
00089 KoFilter::ConversionStatus exp0rt(
const QString& url,
QCString& mimeType );
00090
00091
00092
00098
static QStringList mimeFilter(
const QCString& mimetype, Direction direction );
00099
00107
static QStringList mimeFilter();
00108
00113
static bool filterAvailable( KoFilterEntry::Ptr entry );
00114
00115 signals:
00116
void sigProgress(
int );
00117
00118
private:
00119
00120
00121
00122
00123
friend QString KoFilterChain::filterManagerImportFile() const;
00124
QString importFile()
const {
return m_importUrl; }
00125
friend QString KoFilterChain::filterManagerExportFile() const;
00126
QString exportFile()
const {
return m_exportUrl; }
00127
friend KoDocument* KoFilterChain::filterManagerKoDocument() const;
00128
KoDocument* document()
const {
return m_document; }
00129
friend int KoFilterChain::filterManagerDirection() const;
00130
int direction()
const {
return static_cast<int>( m_direction ); }
00131
friend KoFilterChain*
const KoFilterChain::filterManagerParentChain() const;
00132
KoFilterChain* const parentChain()
const {
return m_parentChain; }
00133
00134
00135
KoFilterManager(
const KoFilterManager& rhs );
00136
KoFilterManager &operator=(
const KoFilterManager& rhs );
00137
00138
void importErrorHelper(
const QString& mimeType,
const bool suppressDialog =
false );
00139
00140
static const int s_area;
00141
00142
KoDocument* m_document;
00143
KoFilterChain*
const m_parentChain;
00144
QString m_importUrl, m_exportUrl;
00145
QCString m_importUrlMimetypeHint;
00146 KOffice::Graph m_graph;
00147 Direction m_direction;
00148
00149
00150
static QMap<QString, bool> m_filterAvailable;
00151
00152
00153
class Private;
00154 Private *d;
00155 };
00156
00157
#endif // __koffice_filter_manager_h__