KParts
browserrun.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef kparts_browserrun_h
00020 #define kparts_browserrun_h
00021
00022 #include <krun.h>
00023 #include <kservice.h>
00024 #include <kparts/browserextension.h>
00025
00026 namespace KParts {
00027
00039 class KPARTS_EXPORT BrowserRun : public KRun
00040 {
00041 Q_OBJECT
00042 public:
00054 BrowserRun( const KUrl& url,
00055 const KParts::OpenUrlArguments& args,
00056 const KParts::BrowserArguments& browserArgs,
00057 KParts::ReadOnlyPart *part,
00058 QWidget *window,
00059 bool removeReferrer, bool trustedSource, bool hideErrorDialog = false );
00060
00061 virtual ~BrowserRun();
00062
00063 KParts::OpenUrlArguments& arguments();
00064 KParts::BrowserArguments& browserArguments();
00065 KParts::ReadOnlyPart* part() const;
00066 KUrl url() const;
00067
00068 bool hideErrorDialog() const;
00069
00073 QString contentDisposition() const;
00074
00075 bool serverSuggestsSave() const { return contentDisposition() == QString::fromLatin1("attachment"); }
00076
00077 enum AskSaveResult { Save, Open, Cancel };
00086 static AskSaveResult askSave( const KUrl & url, KService::Ptr offer, const QString& mimeType, const QString & suggestedFileName = QString() );
00087
00088 enum AskEmbedOrSaveFlags { InlineDisposition = 0, AttachmentDisposition = 1 };
00098 static AskSaveResult askEmbedOrSave( const KUrl & url, const QString& mimeType, const QString & suggestedFileName = QString(), int flags = 0 );
00099
00100
00101 virtual void save( const KUrl & url, const QString & suggestedFileName );
00102
00103
00104 static void simpleSave( const KUrl & url, const QString & suggestedFileName,
00105 QWidget* window =0 );
00106
00107
00108 static bool allowExecution( const QString &mimeType, const KUrl &url );
00109
00110 static bool isTextExecutable( const QString &mimeType );
00111
00112 protected:
00116 virtual void scanFile();
00120 virtual void init();
00128 virtual void handleError( KJob * job );
00129
00134 enum NonEmbeddableResult { Handled, NotHandled, Delayed };
00135
00139 NonEmbeddableResult handleNonEmbeddable( const QString& mimeType );
00140
00141 protected Q_SLOTS:
00142 void slotBrowserScanFinished(KJob *job);
00143 void slotBrowserMimetype(KIO::Job *job, const QString &type);
00144 void slotCopyToTempFileResult(KJob *job);
00145 virtual void slotStatResult( KJob *job );
00146
00147 private:
00148 void redirectToError( int error, const QString& errorText );
00149 class BrowserRunPrivate;
00150 BrowserRunPrivate* const d;
00151
00152 };
00153 }
00154 #endif