BrowserRun Class Reference
from PyKDE4.kparts import *
Inherits: KRun → QObject
Namespace: KParts
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>
Enumerations |
AskEmbedOrSaveFlags | { InlineDisposition, AttachmentDisposition } |
AskSaveResult | { Save, Open, Cancel } |
NonEmbeddableResult | { Handled, NotHandled, Delayed } |
Methods |
| __init__ (self, KUrl url, KParts.OpenUrlArguments args, KParts.BrowserArguments browserArgs, KParts.ReadOnlyPart part, QWidget window, bool removeReferrer, bool trustedSource, bool hideErrorDialog=0) |
KParts.OpenUrlArguments | arguments (self) |
KParts.BrowserArguments | browserArguments (self) |
QString | contentDisposition (self) |
| handleError (self, KJob job) |
KParts.BrowserRun.NonEmbeddableResult | handleNonEmbeddable (self, QString mimeType, KSharedPtr pSelectedService) |
bool | hideErrorDialog (self) |
| init (self) |
KParts.ReadOnlyPart | part (self) |
| save (self, KUrl url, QString suggestedFileName) |
| scanFile (self) |
bool | serverSuggestsSave (self) |
| slotBrowserMimetype (self, KIO.Job job, QString type) |
| slotBrowserScanFinished (self, KJob job) |
| slotCopyToTempFileResult (self, KJob job) |
| slotStatResult (self, KJob job) |
KUrl | url (self) |
Static Methods |
bool | allowExecution (QString mimeType, KUrl url) |
KParts.BrowserRun.AskSaveResult | askEmbedOrSave (KUrl url, QString mimeType, QString suggestedFileName=QString(), int flags=0) |
KParts.BrowserRun.AskSaveResult | askSave (KUrl url, KSharedPtr offer, QString mimeType, QString suggestedFileName=QString()) |
bool | isTextExecutable (QString mimeType) |
KUrl | makeErrorUrl (int error, QString errorText, QString initialUrl) |
| saveUrl (KUrl url, QString suggestedFileName, QWidget window, KParts.OpenUrlArguments args) |
| saveUrlUsingKIO (KUrl srcUrl, KUrl destUrl, QWidget window, {QString:QString} metaData) |
| simpleSave (KUrl url, QString suggestedFileName, QWidget window=0) |
Method Documentation
- Parameters:
-
| url | the URL we're probing
|
| args | URL args - includes reload, metaData, etc.
|
| browserArgs | browser-related args - includes data for a HTTP POST, etc.
|
| part | the part going to open this URL - can be 0 if not created yet
|
| window | the mainwindow - passed to KIO.Job.setWindow()
|
| removeReferrer | if true, the "referrer" metadata from args isn't passed on
|
| trustedSource | if false, a warning will be shown before launching an executable.
Always pass false for trustedSource, except for local directory views.
|
| hideErrorDialog | if true, no dialog will be shown in case of errors.
|
QString contentDisposition |
( |
|
self ) |
|
- Returns:
- Suggested disposition by the server (e.g. HTTP content-disposition)
handleError |
( |
self, |
|
|
|
KJob |
job |
|
) |
|
|
|
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.
Helper for foundMimeType: call this if the mimetype couldn't be embedded
- Parameters:
-
| mimeType | the mimetype found for the URL
|
| pSelectedService | Output 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
bool hideErrorDialog |
( |
|
self ) |
|
save |
( |
self, |
|
|
|
KUrl |
url, |
|
|
QString |
suggestedFileName |
|
) |
|
|
|
bool serverSuggestsSave |
( |
|
self ) |
|
- Returns:
- Wheter the returned disposition suggests saving or opening inline
slotBrowserMimetype |
( |
self, |
|
|
|
KIO.Job |
job, |
|
|
QString |
type |
|
) |
|
|
|
slotBrowserScanFinished |
( |
self, |
|
|
|
KJob |
job |
|
) |
|
|
|
slotCopyToTempFileResult |
( |
self, |
|
|
|
KJob |
job |
|
) |
|
|
|
slotStatResult |
( |
self, |
|
|
|
KJob |
job |
|
) |
|
|
|
Static Method Documentation
bool allowExecution |
( |
QString |
mimeType, |
|
|
KUrl |
url |
|
) |
|
|
|
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:
-
| url | the URL in question
|
| mimeType | the mimetype of the URL
|
| suggestedFileName | optional filename suggested by the server
|
| flags | set 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!
Ask the user whether to save or open a url in another application.
- Parameters:
-
| url | the URL in question
|
| offer | the application that will be used to open the URL
|
| mimeType | the mimetype of the URL
|
| suggestedFileName | optional 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();
bool isTextExecutable |
( |
QString |
mimeType |
|
) |
|
|
|
KUrl makeErrorUrl |
( |
int |
error, |
|
|
QString |
errorText, |
|
|
QString |
initialUrl |
|
) |
|
|
|
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:
-
| error | the KIO error code (or KIO.ERR_SLAVE_DEFINED if not from KIO)
|
| errorText | the text of the error message
|
| initialUrl | the URL that we were trying to open (as a string, so that this can
support invalid URLs as well)
|
- Since:
- 4.6
If kget integration is enabled, passes the url to kget.
Otherwise, asks the user for a destination url, and calls saveUrlUsingKIO.
- Since:
- 4.4
saveUrlUsingKIO |
( |
KUrl |
srcUrl, |
|
|
KUrl |
destUrl, |
|
|
QWidget |
window, |
|
|
{QString:QString} |
metaData |
|
) |
|
|
|
Starts the KIO file copy job to download srcUrl into destUrl.
- Since:
- 4.4
simpleSave |
( |
KUrl |
url, |
|
|
QString |
suggestedFileName, |
|
|
QWidget |
window=0 |
|
) |
|
|
|
Enumeration Documentation
- Enumerator:
-
InlineDisposition = 0 | |
AttachmentDisposition = 1 | |
NotHandled means that foundMimeType should call KRun.foundMimeType,
i.e. launch an external app.
- Enumerator:
-
Handled | |
NotHandled | |
Delayed | |