00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef KNEWSTUFF_ENGINE_H
00021
#define KNEWSTUFF_ENGINE_H
00022
00023
#include <qmap.h>
00024
#include <qobject.h>
00025
#include <qstring.h>
00026
00027
#include "entry.h"
00028
#include "provider.h"
00029
00030
namespace KIO {
class Job; }
00031
00032
class KNewStuff;
00033
00034
namespace KNS {
00035
00036
class DownloadDialog;
00037
class UploadDialog;
00038
class ProviderDialog;
00039
00051 class KDE_EXPORT Engine :
public QObject
00052 {
00053 Q_OBJECT
00054
struct Private;
00055
public:
00063 Engine(
KNewStuff *newStuff,
const QString &type,
QWidget *parentWidget = 0 );
00072 Engine(
KNewStuff *newStuff,
const QString &type,
const QString &providerList,
QWidget *parentWidget = 0 );
00073
00077
virtual ~Engine();
00078
00084 QString type()
const {
return mType; }
00085
00091 QWidget *parentWidget()
const {
return mParentWidget; }
00092
00097
void download();
00098
00106
void upload(
const QString &fileName = QString::null,
const QString &previewName = QString::null );
00107
00113
void download(
Entry *entry );
00114
00121
void requestMetaInformation(
Provider *provider );
00122
00128
void upload(
Entry *entry );
00129
00135
void ignoreInstallResult(
bool ignore);
00136
00137 signals:
00141
void uploadFinished(
bool result );
00142
protected slots:
00143
void getMetaInformation(
Provider::List *providers );
00144
void selectUploadProvider(
Provider::List *providers );
00145
00146
void slotNewStuffJobData( KIO::Job *job,
const QByteArray &data );
00147
void slotNewStuffJobResult( KIO::Job *job );
00148
00149
void slotDownloadJobResult( KIO::Job *job );
00150
00151
void slotUploadPayloadJobResult( KIO::Job *job );
00152
void slotUploadPreviewJobResult (KIO::Job *job );
00153
void slotUploadMetaJobResult( KIO::Job *job );
00154
00155
protected:
00156
bool createMetaFile(
Entry * );
00157
00158
private:
00159
QWidget *mParentWidget;
00160
00161
ProviderLoader *mProviderLoader;
00162
00163
QMap<KIO::Job *,QString> mNewStuffJobData;
00164
QMap<KIO::Job *,Provider *> mProviderJobs;
00165
00166
QPtrList<Entry> mNewStuffList;
00167
00168
DownloadDialog *mDownloadDialog;
00169
UploadDialog *mUploadDialog;
00170
ProviderDialog *mProviderDialog;
00171
00172
QString mDownloadDestination;
00173
00174
Provider *mUploadProvider;
00175
00176
QString mUploadMetaFile;
00177
QString mUploadFile;
00178
QString mPreviewFile;
00179
QString mProviderList;
00180
00181 Private* d;
00182
00183
QString mType;
00184 };
00185
00186 }
00187
00188
#endif