KHTML
khtml_run.cpp
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
00020
00021
00022
00023 #include "khtml_run.h"
00024 #include "khtmlpart_p.h"
00025 #include <kio/job.h>
00026 #include <kdebug.h>
00027 #include <klocale.h>
00028 #include "khtml_ext.h"
00029 #include <QtGui/QImage>
00030
00031 KHTMLRun::KHTMLRun( KHTMLPart *part, khtml::ChildFrame *child, const KUrl &url,
00032 const KParts::OpenUrlArguments& args,
00033 const KParts::BrowserArguments &browserArgs,
00034 bool hideErrorDialog )
00035 : KParts::BrowserRun( url, args, browserArgs, part, part->widget() ? part->widget()->topLevelWidget() : 0,
00036 false, false, hideErrorDialog ),
00037 m_child( child )
00038 {
00039
00040 setEnableExternalBrowser(false);
00041
00042
00043 part->started(0L);
00044 }
00045
00046
00047
00048
00049 void KHTMLRun::foundMimeType( const QString &_type )
00050 {
00051
00052 Q_ASSERT(!hasFinished());
00053 QString mimeType = _type;
00054
00055 bool requestProcessed = static_cast<KHTMLPart *>(part())->processObjectRequest( m_child, KRun::url(), mimeType );
00056
00057 if ( requestProcessed )
00058 setFinished( true );
00059 else {
00060 if ( hasFinished() )
00061 return;
00062
00063 KParts::BrowserRun::NonEmbeddableResult res = handleNonEmbeddable( mimeType );
00064 if ( res == KParts::BrowserRun::Delayed )
00065 return;
00066 setFinished( res == KParts::BrowserRun::Handled );
00067 if ( hasFinished() ) {
00068 m_child->m_bCompleted = true;
00069 static_cast<KHTMLPart *>(part())->checkCompleted();
00070 }
00071 }
00072
00073 if ( hasFinished() ) {
00074 kDebug() << "finished";
00075 timer().setSingleShot( true );
00076 timer().start( 0 );
00077 return;
00078 }
00079
00080
00081 KRun::foundMimeType( mimeType );
00082
00083
00084 m_child->m_bCompleted = true;
00085 static_cast<KHTMLPart *>(part())->checkCompleted();
00086 }
00087
00088 void KHTMLRun::handleError(KJob*)
00089 {
00090
00091 static_cast<KHTMLPart *>(part())->processObjectRequest( m_child, KUrl(), QString() );
00092 setJob(0);
00093 }
00094
00095 void KHTMLRun::save( const KUrl & url, const QString & suggestedFilename )
00096 {
00097 KHTMLPopupGUIClient::saveURL( part()->widget(), i18n( "Save As" ), url, arguments().metaData(), QString(), 0, suggestedFilename );
00098 }
00099
00100 #include "khtml_run.moc"