#include <krun.h>
Inherits TQObject.
Signals | |
void | finished () |
void | error () |
Public Member Functions | |
KRun (const KURL &url, mode_t mode=0, bool isLocalFile=false, bool showProgressInfo=true) | |
KRun (const KURL &url, TQWidget *window, mode_t mode=0, bool isLocalFile=false, bool showProgressInfo=true) | |
KRun (const KURL &url, TQWidget *window, const TQCString &asn, mode_t mode=0, bool isLocalFile=false, bool showProgressInfo=true) | |
virtual | ~KRun () |
void | abort () |
bool | hasError () const |
bool | hasFinished () const |
bool | autoDelete () const |
void | setAutoDelete (bool b) |
void | setPreferredService (const TQString &desktopEntryName) |
void | setRunExecutables (bool b) |
void | setEnableExternalBrowser (bool b) |
void | setSuggestedFileName (const TQString &fileName) |
Static Public Member Functions | |
static pid_t | run (const KService &_service, const KURL::List &_urls, TQWidget *window, bool tempFiles=false) |
static pid_t | run (const KService &_service, const KURL::List &_urls, TQWidget *window, const TQCString &asn, bool tempFiles=false) |
static pid_t | run (const KService &_service, const KURL::List &_urls, bool tempFiles) |
static pid_t | run (const KService &_service, const KURL::List &_urls) |
static pid_t | run (const KService &_service, const KURL::List &_urls, TQWidget *window, bool tempFiles, const TQString &suggestedFileName) |
static pid_t | run (const KService &_service, const KURL::List &_urls, TQWidget *window, const TQCString &asn, bool tempFiles, const TQString &suggestedFileName) |
static pid_t | run (const TQString &_exec, const KURL::List &_urls, const TQString &_name=TQString::null, const TQString &_icon=TQString::null, const TQString &_obsolete1=TQString::null, const TQString &_obsolete2=TQString::null) |
static pid_t | runURL (const KURL &_url, const TQString &_mimetype, bool tempFile, bool runExecutables) |
static pid_t | runURL (const KURL &_url, const TQString &_mimetype, bool tempFile) |
static pid_t | runURL (const KURL &_url, const TQString &_mimetype) |
static pid_t | runURL (const KURL &_url, const TQString &_mimetype, TQWidget *window, const TQCString &asn, bool tempFile, bool runExecutables, const TQString &suggestedFileName) |
static pid_t | runURL (const KURL &_url, const TQString &_mimetype, bool tempFile, bool runExecutables, const TQString &suggestedFileName) |
static pid_t | runCommand (TQString cmd) |
static pid_t | runCommand (const TQString &cmd, const TQString &execName, const TQString &icon) |
static pid_t | runCommand (const TQString &cmd, const TQString &execName, const TQString &icon, TQWidget *window, const TQCString &asn) |
static bool | displayOpenWithDialog (const KURL::List &lst, bool tempFiles) |
static bool | displayOpenWithDialog (const KURL::List &lst) |
static bool | displayOpenWithDialog (const KURL::List &lst, bool tempFiles, const TQString &suggestedFileName) |
static void | shellQuote (TQString &_str) |
static TQStringList | processDesktopExec (const KService &_service, const KURL::List &_urls, bool has_shell, bool tempFiles) |
static TQStringList | processDesktopExec (const KService &_service, const KURL::List &_urls, bool has_shell) |
static TQStringList | processDesktopExec (const KService &_service, const KURL::List &_urls, bool has_shell, bool tempFiles, const TQString &suggestedFileName) |
static TQString | binaryName (const TQString &execLine, bool removePath) |
static bool | isExecutable (const TQString &serviceType) |
static bool | isExecutableFile (const KURL &url, const TQString &mimetype) |
static bool | checkStartupNotify (const TQString &binName, const KService *service, bool *silent_arg, TQCString *wmclass_arg) |
Protected Slots | |
void | slotTimeout () |
void | slotScanFinished (TDEIO::Job *) |
void | slotScanMimeType (TDEIO::Job *, const TQString &type) |
virtual void | slotStatResult (TDEIO::Job *) |
Protected Member Functions | |
virtual void | init () |
virtual void | scanFile () |
virtual void | foundMimeType (const TQString &_type) |
virtual void | killJob () |
virtual void | virtual_hook (int id, void *data) |
Protected Attributes | |
KURL | m_strURL |
bool | m_bFault |
bool | m_bAutoDelete |
bool | m_bProgressInfo |
bool | m_bFinished |
TDEIO::Job * | m_job |
TQTimer | m_timer |
bool | m_bScanFile |
bool | m_bIsDirectory |
bool | m_bInit |
bool | m_bIsLocalFile |
mode_t | m_mode |
Detailed Description
To open files with their associated applications in KDE, use KRun.
It can execute any desktop entry, as well as any file, using the default application or another application "bound" to the file type (or URL protocol).
In that example, the mimetype of the file is not known by the application, so a KRun instance must be created. It will determine the mimetype by itself. If the mimetype is known, or if you even know the service (application) to use for this file, use one of the static methods.
By default KRun uses auto deletion. It causes the KRun instance to delete itself when the it finished its task. If you allocate the KRun object on the stack you must disable auto deletion, otherwise it will crash.
Opens files with their associated applications in KDE
Constructor & Destructor Documentation
◆ KRun() [1/2]
KRun::KRun | ( | const KURL & | url, |
mode_t | mode = 0 , |
||
bool | isLocalFile = false , |
||
bool | showProgressInfo = true |
||
) |
Create a KRun object to run the preferred application for a file/URL.
KRun will first determine the type of the file, and will then run the associated application.
- Parameters
-
url the URL of the file or directory to 'run' mode The st_mode
field ofstruct stat
. If you don't know this set it to 0.isLocalFile If this parameter is set to false
thenurl
is examined to find out whether it is a local URL or not. This flag is just used to improve speed, since the function KURL::isLocalFile is a bit slow.showProgressInfo Whether to show progress information when determining the type of the file (i.e. when using TDEIO::stat and TDEIO::mimetype) Before you set this to false to avoid a dialog box, think about a very slow FTP server... It is always better to provide progress info in such cases.
◆ KRun() [2/2]
KRun::KRun | ( | const KURL & | url, |
TQWidget * | window, | ||
mode_t | mode = 0 , |
||
bool | isLocalFile = false , |
||
bool | showProgressInfo = true |
||
) |
BIC: Combine with the above ctor for KDE 4.0.
- Parameters
-
window The top-level widget of the app that invoked this object. It is used to make sure private information like passwords are properly handled per application. url the URL of the file or directory to 'run' mode The st_mode
field ofstruct stat
. If you don't know this set it to 0.isLocalFile If this parameter is set to false
thenurl
is examined to find out whether it is a local URL or not. This flag is just used to improve speed, since the function KURL::isLocalFile is a bit slow.showProgressInfo Whether to show progress information when determining the type of the file (i.e. when using TDEIO::stat and TDEIO::mimetype) Before you set this to false to avoid a dialog box, think about a very slow FTP server... It is always better to provide progress info in such cases.
◆ ~KRun()
|
virtual |
Member Function Documentation
◆ abort()
void KRun::abort | ( | ) |
◆ autoDelete()
|
inline |
◆ binaryName()
|
static |
Given a full command line (e.g.
the Exec= line from a .desktop file), extract the name of the binary being run.
- Parameters
-
execLine the full command line removePath if true, remove a (relative or absolute) path. E.g. /usr/bin/ls becomes ls.
- Returns
- the name of the binary to run
- Since
- 3.1
◆ displayOpenWithDialog() [1/2]
|
static |
◆ displayOpenWithDialog() [2/2]
|
static |
◆ error
|
signal |
Emitted when the operation had an error.
- See also
- hasError()
◆ finished
|
signal |
Emitted when the operation finished.
- See also
- hasFinished()
◆ foundMimeType()
|
protectedvirtual |
Called if the mimetype has been detected.
The function checks whether the document and appends the gzip protocol to the URL. Otherwise runURL is called to finish the job.
Note: the line above means that if that service failed, we'll go to runURL to maybe find another service, even though a dialog box was displayed. That's good if runURL tries another service, but it's not good if it tries the same one :}
◆ hasError()
|
inline |
◆ hasFinished()
|
inline |
Returns true if the KRun instance has finished.
- Returns
- true if the KRun instance has finished
- See also
- finished()
◆ isExecutable()
|
static |
◆ isExecutableFile()
|
static |
Returns wether the url
of mimetype
is executable.
To be executable the file must pass the following rules:
- Must reside on the local filesystem.
- Must be marked as executable for the user by the filesystem.
- The mime type must inherit application/x-executable or application/x-executable-script. To allow a script to run when the above rules are satisfied add the entry to the mimetype's desktop file.X-TDE-IsAlso=application/x-executable-script
- Since
- 3.3
◆ processDesktopExec() [1/2]
|
static |
Processes a Exec= line as found in .desktop files.
- Parameters
-
_service the service to extract information from. _urls The urls the service should open. has_shell If true, the arguments are going to be fed into a shell e.g by using system(). If false, the arguments are going to be fed into a exec() kind call. If the arguments are intended for an exec() kind of call and the Exec line contains shell commands then "/bin/sh -c" is added. tempFiles if true and _urls are local files, they will be deleted when the application exits.
- Returns
- a list of arguments suitable for either system() or exec().
◆ processDesktopExec() [2/2]
|
static |
◆ run() [1/4]
|
static |
Open a list of URLs with a certain service (application).
- Parameters
-
_service the service to run _urls the list of URLs, can be empty (app launched without argument) tempFiles if true and _urls are local files, they will be deleted when the application exits.
- Returns
- the process id, or 0 on error
◆ run() [2/4]
|
static |
◆ run() [3/4]
|
static |
Open a list of URLs with a certain service (application).
- Parameters
-
_service the service to run _urls the list of URLs, can be empty (app launched without argument) window The top-level widget of the app that invoked this object. tempFiles if true and _urls are local files, they will be deleted when the application exits.
- Returns
- the process id, or 0 on error
- Since
- 3.5.2
◆ run() [4/4]
|
static |
Open a list of URLs with.
- Parameters
-
_exec the name of the executable, for example "/usr/bin/netscape". _urls the list of URLs to open, can be empty (app launched without argument) _name the logical name of the application, for example "Netscape 4.06". _icon the icon which should be used by the application. _obsolete1 Do not use! _obsolete2 Do not use!
- Returns
- the process id, or 0 on error
◆ runCommand() [1/2]
|
static |
Same as the other runCommand(), but it also takes the name of the binary, to display an error message in case it couldn't find it.
- Parameters
-
cmd must be a shell command. You must not append "&" to it, since the function will do that for you. execName the name of the executable icon icon for app starting notification
- Returns
- PID of running command, 0 if it could not be started, 0 - (PID of running command) if command was unsafe for map notification.
◆ runCommand() [2/2]
|
static |
Run the given shell command and notifies kicker of the starting of the application.
If the program to be called doesn't exist, an error box will be displayed.
Use only when you know the full command line. Otherwise use the other static methods, or KRun's constructor.
_cmd
must be a shell command. You must not append "&" to it, since the function will do that for you.
- Returns
- PID of running command, 0 if it could not be started, 0 - (PID of running command) if command was unsafe for map notification.
◆ runURL() [1/2]
|
static |
Open the given URL.
This function is used after the mime type is found out. It will search for all services which can handle the mime type and call run() afterwards.
- Parameters
-
_url the URL to open _mimetype the mime type of the resource tempFile if true and _url is a local file, it will be deleted when the launched application exits. runExecutables if false then local .desktop files, executables and shell scripts will not be run. See also isExecutable().
- Returns
- the process id, or 0 on error
◆ runURL() [2/2]
|
static |
◆ setAutoDelete()
|
inline |
◆ setEnableExternalBrowser()
void KRun::setEnableExternalBrowser | ( | bool | b | ) |
◆ setPreferredService()
void KRun::setPreferredService | ( | const TQString & | desktopEntryName | ) |
Set the preferred service for opening this URL, after its mimetype will have been found by KRun.
IMPORTANT: the service is only used if its configuration says it can handle this mimetype. This is used for instance for the X-TDE-LastOpenedWith key, for the recent documents list.
- Parameters
-
desktopEntryName the desktopEntryName of the service, e.g. "kate".
◆ setRunExecutables()
void KRun::setRunExecutables | ( | bool | b | ) |
Sets whether executables, .desktop files or shell scripts should be run by KRun.
This is enabled by default.
- Parameters
-
b whether to run executable files or not.
- See also
- isExecutable()
- Since
- 3.2
◆ setSuggestedFileName()
void KRun::setSuggestedFileName | ( | const TQString & | fileName | ) |
Sets the file name to use in the case of downloading the file to a tempfile in order to give to a non-url-aware application.
Some apps rely on the extension to determine the mimetype of the file. Usually the file name comes from the URL, but in the case of the HTTP Content-Disposition header, we need to override the file name.
- Since
- 3.5.3
◆ shellQuote()
|
static |
Member Data Documentation
◆ m_bInit
|
protected |
◆ m_bScanFile
|
protected |
The documentation for this class was generated from the following files: