00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef __kmultipart_h__
00021
#define __kmultipart_h__
00022
00023
#include <httpfilter/httpfilter.h>
00024
00025
#include <kparts/part.h>
00026
#include <kparts/factory.h>
00027
#include <kparts/browserextension.h>
00028
#include <kaboutdata.h>
00029
#include <qdatetime.h>
00030
00031
class KHTMLPart;
00032
class KInstance;
00033
class KTempFile;
00034
class KLineParser;
00035
00039 class KMultiPart :
public KParts::ReadOnlyPart
00040 {
00041 Q_OBJECT
00042
public:
00043
KMultiPart(
QWidget *parentWidget,
const char *widgetName,
00044
QObject *parent,
const char *name,
const QStringList& );
00045
virtual ~
KMultiPart();
00046
00047
virtual bool openFile() {
return false; }
00048
virtual bool openURL(
const KURL &url );
00049
00050
virtual bool closeURL();
00051
00052
static KAboutData* createAboutData();
00053
00054
protected:
00055
virtual void guiActivateEvent(
KParts::GUIActivateEvent *e );
00056
void setPart(
const QString& mimeType );
00057
00058
void startOfData();
00059
void sendData(
const QByteArray& line );
00060
void endOfData();
00061
00062
private slots:
00063
void reallySendData(
const QByteArray& line );
00064
00065
void slotJobFinished(
KIO::Job *job );
00066
void slotData(
KIO::Job *,
const QByteArray & );
00067
00068
00069
void slotPartCompleted();
00070
00071
void startHeader();
00072
00073
void slotProgressInfo();
00074
00075
private:
00076
KParts::BrowserExtension* m_extension;
00077
QGuardedPtr<KParts::ReadOnlyPart> m_part;
00078
bool m_isHTMLPart;
00079
bool m_partIsLoading;
00080
KIO::Job* m_job;
00081
QCString m_boundary;
00082
int m_boundaryLength;
00083
QString m_mimeType;
00084
QString m_nextMimeType;
00085
KTempFile* m_tempFile;
00086 KLineParser* m_lineParser;
00087
bool m_bParsingHeader;
00088
bool m_bGotAnyHeader;
00089
bool m_gzip;
00090 HTTPFilterBase *m_filter;
00091
00092
long m_totalNumberOfFrames;
00093
long m_numberOfFrames;
00094
long m_numberOfFramesSkipped;
00095
QTime m_qtime;
00096
QTimer* m_timer;
00097 };
00098
00099
#if 0
00100
class KMultiPartBrowserExtension :
public KParts::BrowserExtension
00101 {
00102
00103
public:
00104 KMultiPartBrowserExtension(
KMultiPart *parent,
const char *name = 0 );
00105
00106
virtual int xOffset();
00107
virtual int yOffset();
00108
00109
00110
void print();
00111
void reparseConfiguration();
00112
00113
private:
00114
KMultiPart *m_imgPart;
00115 };
00116
#endif
00117
00118
#endif