00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KNEWSTUFF_PROVIDER_H
00022 #define KNEWSTUFF_PROVIDER_H
00023
00024 #include <tqcstring.h>
00025 #include <tqdom.h>
00026 #include <tqobject.h>
00027 #include <tqptrlist.h>
00028 #include <tqstring.h>
00029
00030 #include <kurl.h>
00031
00032 namespace TDEIO { class Job; }
00033
00034 namespace KNS {
00035
00047 class KDE_EXPORT Provider : public TQObject
00048 {
00049 Q_OBJECT
00050 public:
00051 typedef TQPtrList<Provider> List;
00052
00056 Provider( TQString type = TQString::null, TQWidget* parent = 0 );
00057
00061 Provider( const TQDomElement &, TQString type = TQString::null, TQWidget* parent = 0 );
00062
00066 virtual ~Provider();
00067
00071 bool loaded();
00072
00076 void setName( const TQString & );
00077
00083 TQString name() const;
00084
00088 void setDownloadUrl( const KURL & );
00089
00095 KURL downloadUrl() const;
00096
00103 KURL downloadUrlVariant( TQString variant ) const;
00104
00108 void setUploadUrl( const KURL & );
00109
00115 KURL uploadUrl() const;
00116
00123 void setNoUploadUrl( const KURL & );
00124
00131 KURL noUploadUrl() const;
00132
00136 void setNoUpload( bool );
00137
00143 bool noUpload() const;
00144
00150 void setIcon( const KURL & );
00151
00157 KURL icon() const;
00158
00159 protected:
00160 void parseDomElement( const TQDomElement & );
00161
00162 TQDomElement createDomElement( TQDomDocument &, TQDomElement &parent );
00163
00164 protected slots:
00165 void slotJobData( TDEIO::Job *, const TQByteArray & );
00166 void slotJobResult( TDEIO::Job * );
00167
00168 signals:
00169 void providerLoaded();
00170
00171 private:
00172 TQString mName;
00173 KURL mDownloadUrl;
00174 KURL mUploadUrl;
00175 KURL mNoUploadUrl;
00176 KURL mIcon;
00177 bool mNoUpload;
00178 TQString mJobData;
00179 TQString mBaseURL;
00180 TQWidget* mParent;
00181 bool mLoaded;
00182 TQString mContentType;
00183 };
00184
00191 class KDE_EXPORT ProviderLoader : public TQObject
00192 {
00193 Q_OBJECT
00194 public:
00200 ProviderLoader( TQWidget *parentWidget );
00201
00211 void load( const TQString &type, const TQString &providerList = TQString::null );
00212
00213 signals:
00217 void providersLoaded( Provider::List * );
00218 void percent(TDEIO::Job *job, unsigned long percent);
00219 void error();
00220
00221 protected slots:
00222 void slotJobData( TDEIO::Job *, const TQByteArray & );
00223 void slotJobResult( TDEIO::Job * );
00224 void providerLoaded();
00225
00226 private:
00227 TQWidget *mParentWidget;
00228
00229 TQString mJobData;
00230 TQString mContentType;
00231
00232 Provider::List mProviders;
00233 };
00234
00235 }
00236
00237 #endif