• Skip to content
  • Skip to link menu
KDE 4.6 API Reference
  • KDE API Reference
  • kdelibs
  • KDE Home
  • Contact Us
 

KParts

  • KParts
  • BrowserRun
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Slots | Protected Member Functions

KParts::BrowserRun Class Reference

This class extends KRun to provide additional functionality for browsers:

  • "save or open" dialog boxes
  • "save" functionality
  • support for HTTP POST (including saving the result to a temp file if opening a separate application)
  • warning before launching executables off the web
  • custom error handling (i.e.
More...

#include <browserrun.h>

Inheritance diagram for KParts::BrowserRun:
Inheritance graph
[legend]

List of all members.

Public Types

enum  AskEmbedOrSaveFlags { InlineDisposition = 0, AttachmentDisposition = 1 }
enum  AskSaveResult { Save, Open, Cancel }

Public Member Functions

 BrowserRun (const KUrl &url, const KParts::OpenUrlArguments &args, const KParts::BrowserArguments &browserArgs, KParts::ReadOnlyPart *part, QWidget *window, bool removeReferrer, bool trustedSource, bool hideErrorDialog=false)
virtual ~BrowserRun ()
KParts::OpenUrlArguments & arguments ()
KParts::BrowserArguments & browserArguments ()
QString contentDisposition () const
bool hideErrorDialog () const
KParts::ReadOnlyPart * part () const
virtual void save (const KUrl &url, const QString &suggestedFileName)
bool serverSuggestsSave () const
KUrl url () const

Static Public Member Functions

static bool allowExecution (const QString &mimeType, const KUrl &url)
static AskSaveResult askEmbedOrSave (const KUrl &url, const QString &mimeType, const QString &suggestedFileName=QString(), int flags=0)
static AskSaveResult askSave (const KUrl &url, KService::Ptr offer, const QString &mimeType, const QString &suggestedFileName=QString())
static bool isTextExecutable (const QString &mimeType)
static KUrl makeErrorUrl (int error, const QString &errorText, const QString &initialUrl)
static void saveUrl (const KUrl &url, const QString &suggestedFileName, QWidget *window, const KParts::OpenUrlArguments &args)
static void saveUrlUsingKIO (const KUrl &srcUrl, const KUrl &destUrl, QWidget *window, const QMap< QString, QString > &metaData)
static void simpleSave (const KUrl &url, const QString &suggestedFileName, QWidget *window=0)

Protected Types

enum  NonEmbeddableResult { Handled, NotHandled, Delayed }

Protected Slots

void slotBrowserMimetype (KIO::Job *job, const QString &type)
void slotBrowserScanFinished (KJob *job)
void slotCopyToTempFileResult (KJob *job)
virtual void slotStatResult (KJob *job)

Protected Member Functions

virtual void handleError (KJob *job)
NonEmbeddableResult handleNonEmbeddable (const QString &mimeType, KService::Ptr *pSelectedService)
NonEmbeddableResult handleNonEmbeddable (const QString &mimeType)
virtual void init ()
virtual void scanFile ()

Detailed Description

This class extends KRun to provide additional functionality for browsers:

  • "save or open" dialog boxes
  • "save" functionality
  • support for HTTP POST (including saving the result to a temp file if opening a separate application)
  • warning before launching executables off the web
  • custom error handling (i.e.

treating errors as HTML pages)

  • generation of SSL metadata depending on the previous URL shown by the part
    Author:
    David Faure <faure@kde.org>

Definition at line 39 of file browserrun.h.


Member Enumeration Documentation

enum KParts::BrowserRun::AskEmbedOrSaveFlags
Enumerator:
InlineDisposition 
AttachmentDisposition 

Definition at line 98 of file browserrun.h.

enum KParts::BrowserRun::AskSaveResult
Enumerator:
Save 
Open 
Cancel 

Definition at line 80 of file browserrun.h.

enum KParts::BrowserRun::NonEmbeddableResult [protected]

NotHandled means that foundMimeType should call KRun::foundMimeType, i.e.

launch an external app.

Enumerator:
Handled 
NotHandled 
Delayed 

Definition at line 176 of file browserrun.h.


Constructor & Destructor Documentation

BrowserRun::BrowserRun ( const KUrl &  url,
const KParts::OpenUrlArguments &  args,
const KParts::BrowserArguments &  browserArgs,
KParts::ReadOnlyPart *  part,
QWidget *  window,
bool  removeReferrer,
bool  trustedSource,
bool  hideErrorDialog = false 
)
Parameters:
urlthe URL we're probing
argsURL args - includes reload, metaData, etc.
browserArgsbrowser-related args - includes data for a HTTP POST, etc.
partthe part going to open this URL - can be 0 if not created yet
windowthe mainwindow - passed to KIO::Job::setWindow()
removeReferrerif true, the "referrer" metadata from args isn't passed on
trustedSourceif false, a warning will be shown before launching an executable. Always pass false for trustedSource, except for local directory views.
hideErrorDialogif true, no dialog will be shown in case of errors.

Definition at line 57 of file browserrun.cpp.

BrowserRun::~BrowserRun ( ) [virtual]

Definition at line 73 of file browserrun.cpp.


Member Function Documentation

bool BrowserRun::allowExecution ( const QString &  mimeType,
const KUrl &  url 
) [static]

Definition at line 326 of file browserrun.cpp.

KParts::OpenUrlArguments & KParts::BrowserRun::arguments ( )

Definition at line 577 of file browserrun.cpp.

BrowserRun::AskSaveResult BrowserRun::askEmbedOrSave ( const KUrl &  url,
const QString &  mimeType,
const QString &  suggestedFileName = QString(),
int  flags = 0 
) [static]

Similar to askSave but for the case where the current application is able to embed the url itself (instead of passing it to another app).

Parameters:
urlthe URL in question
mimeTypethe mimetype of the URL
suggestedFileNameoptional filename suggested by the server
flagsset to AttachmentDisposition if suggested by the server
Returns:
Save, Open or Cancel.
Deprecated:
use BrowserOpenOrSaveQuestion
  BrowserOpenOrSaveQuestion dlg(parent, url, mimeType, suggestedFileName);
  const BrowserOpenOrSaveQuestion::Result res = dlg.askEmbedOrSave(flags);
  // Important: returns Embed now, not Open!

Definition at line 355 of file browserrun.cpp.

BrowserRun::AskSaveResult BrowserRun::askSave ( const KUrl &  url,
KService::Ptr  offer,
const QString &  mimeType,
const QString &  suggestedFileName = QString() 
) [static]

Ask the user whether to save or open a url in another application.

Parameters:
urlthe URL in question
offerthe application that will be used to open the URL
mimeTypethe mimetype of the URL
suggestedFileNameoptional file name suggested by the server
Returns:
Save, Open or Cancel.
Deprecated:
use BrowserOpenOrSaveQuestion
  BrowserOpenOrSaveQuestion dlg(parent, url, mimeType, suggestedFileName);
  const BrowserOpenOrSaveQuestion::Result res = dlg.askOpenOrSave();

Definition at line 341 of file browserrun.cpp.

KParts::BrowserArguments & KParts::BrowserRun::browserArguments ( )

Definition at line 582 of file browserrun.cpp.

QString BrowserRun::contentDisposition ( ) const
Returns:
Suggested disposition by the server (e.g. HTTP content-disposition)

Definition at line 565 of file browserrun.cpp.

void BrowserRun::handleError ( KJob *  job) [protected, virtual]

Called when an error happens.

NOTE: job could be 0L, if you passed hideErrorDialog=true. The default implementation shows a message box, but only when job != 0 .... It is strongly recommended to reimplement this method if you passed hideErrorDialog=true.

Definition at line 473 of file browserrun.cpp.

BrowserRun::NonEmbeddableResult BrowserRun::handleNonEmbeddable ( const QString &  mimeType) [protected]

Helper for foundMimeType: call this if the mimetype couldn't be embedded.

Definition at line 249 of file browserrun.cpp.

BrowserRun::NonEmbeddableResult BrowserRun::handleNonEmbeddable ( const QString &  mimeType,
KService::Ptr *  pSelectedService 
) [protected]

Helper for foundMimeType: call this if the mimetype couldn't be embedded.

Parameters:
mimeTypethe mimetype found for the URL
pSelectedServiceOutput variable: pointer to a KService::Ptr, which will be set to the service selected in the BrowserOpenOrSaveQuestion dialog, if any.

How to handle this properly: if pSelectedService is non-zero, then the dialog will show additional "open with" buttons. In your code, you should write:

            if (selectedService) {
                KRun::setPreferredService(selectedService->desktopEntryName());
                // and let this code path fall back to KRun::foundMimeType(mimeType);
            } else {
                KRun::displayOpenWithDialog(url(), m_window, false, suggestedFileName());
                setFinished(true);
            }
Since:
4.5

Definition at line 255 of file browserrun.cpp.

bool BrowserRun::hideErrorDialog ( ) const

Definition at line 560 of file browserrun.cpp.

void BrowserRun::init ( ) [protected, virtual]

Reimplemented from KRun.

Reimplemented from KRun.

Definition at line 88 of file browserrun.cpp.

bool BrowserRun::isTextExecutable ( const QString &  mimeType) [static]

Definition at line 554 of file browserrun.cpp.

KUrl BrowserRun::makeErrorUrl ( int  error,
const QString &  errorText,
const QString &  initialUrl 
) [static]

KDE webbrowsing kparts support error urls to display errors in-line in the browser component.

This helper method creates the error URL from its parameters.

Parameters:
errorthe KIO error code (or KIO::ERR_SLAVE_DEFINED if not from KIO)
errorTextthe text of the error message
initialUrlthe URL that we were trying to open (as a string, so that this can support invalid URLs as well)
Since:
4.6

Definition at line 502 of file browserrun.cpp.

KParts::ReadOnlyPart * BrowserRun::part ( ) const

Definition at line 78 of file browserrun.cpp.

void BrowserRun::save ( const KUrl &  url,
const QString &  suggestedFileName 
) [virtual]

Definition at line 367 of file browserrun.cpp.

void KParts::BrowserRun::saveUrl ( const KUrl &  url,
const QString &  suggestedFileName,
QWidget *  window,
const KParts::OpenUrlArguments &  args 
) [static]

If kget integration is enabled, passes the url to kget.

Otherwise, asks the user for a destination url, and calls saveUrlUsingKIO.

Since:
4.4

Definition at line 379 of file browserrun.cpp.

void BrowserRun::saveUrlUsingKIO ( const KUrl &  srcUrl,
const KUrl &  destUrl,
QWidget *  window,
const QMap< QString, QString > &  metaData 
) [static]

Starts the KIO file copy job to download srcUrl into destUrl.

Since:
4.4

Definition at line 447 of file browserrun.cpp.

void BrowserRun::scanFile ( ) [protected, virtual]

Reimplemented from KRun.

Reimplemented from KRun.

Definition at line 116 of file browserrun.cpp.

bool BrowserRun::serverSuggestsSave ( ) const
Returns:
Wheter the returned disposition suggests saving or opening inline

Definition at line 570 of file browserrun.cpp.

void BrowserRun::simpleSave ( const KUrl &  url,
const QString &  suggestedFileName,
QWidget *  window = 0 
) [static]

Definition at line 373 of file browserrun.cpp.

void BrowserRun::slotBrowserMimetype ( KIO::Job *  job,
const QString &  type 
) [protected, slot]

Definition at line 205 of file browserrun.cpp.

void BrowserRun::slotBrowserScanFinished ( KJob *  job) [protected, slot]

Definition at line 182 of file browserrun.cpp.

void BrowserRun::slotCopyToTempFileResult ( KJob *  job) [protected, slot]

Definition at line 542 of file browserrun.cpp.

void BrowserRun::slotStatResult ( KJob *  job) [protected, virtual, slot]

Reimplemented from KRun.

Definition at line 464 of file browserrun.cpp.

KUrl BrowserRun::url ( ) const

Reimplemented from KRun.

Definition at line 83 of file browserrun.cpp.


The documentation for this class was generated from the following files:
  • browserrun.h
  • browserrun.cpp

KParts

Skip menu "KParts"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.7.3
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal