# class KRun | Opens files with their associated applications in KDE. More...
Definition | `#include <krun.h>`
Inherits | QObject (qt) [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- KRun ( const KURL& url, mode_t mode = 0, bool isLocalFile = false, bool showProgressInfo = true )
- virtual ~KRun ()
- bool hasError () const
- bool hasFinished () const
- bool autoDelete () const
- void setAutoDelete (bool b)

#### Signals

- void finished ()
- void error ()

#### Public Static Methods

- static pid_t run ( const KService& _service, const KURL::List& _urls )
- static pid_t run ( const QString& _exec, const KURL::List& _urls, const QString& _name = QString::null, const QString& _icon = QString::null, const QString& _mini_icon = QString::null, const QString& _desktop_file = QString::null )
- static pid_t runURL ( const KURL& _url, const QString& _mimetype )
- static pid_t runCommand ( QString cmd )
- static pid_t runCommand ( const QString& cmd, const QString & execName, const QString & )
- static void shellQuote ( QString &_str )

#### Protected Methods

- virtual void init ()
- virtual void scanFile ()
- virtual void foundMimeType ( const QString& _type )
- virtual void killJob ()

#### Protected Slots

- void slotTimeout ()
- void slotScanFinished ( KIO::Job * )
- void slotStatResult ( KIO::Job * )

#### Protected Static Methods

- static pid_t runOldApplication ( const QString& _exec, const KURL::List& _urls, bool _allow_multiple )
- static pid_t run ( const QString& _cmd )
- static void clientStarted ( const QString & name, const QString & iconName, pid_t pid, const QString & resName, bool compliant, int screen_number = 0 )
- static QString binaryName ( const QString & execLine, bool removePath = true )

#### Protected Members

- KURL m_strURL
- bool m_bFault
- bool m_bAutoDelete
- bool m_bProgressInfo
- bool m_bFinished
- KIO::Job * m_job
- QTimer m_timer
- bool m_bScanFile
- bool m_bIsDirectory
- bool m_bInit
- bool m_bIsLocalFile
- mode_t m_mode
- Forward KRunPrivate
- KRunPrivate *d

## 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.

You need to create an instance of KFileOpenWithHandler before, so that in case the mime-type of the file is unknown, or if there is no application associated, KRun will bring up the "open with" dialog. Example: KFileOpenWithHandler fowh; new KRun( url );

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.

KRun ( const KURL& url, mode_t mode = 0, bool isLocalFile = false, bool showProgressInfo = true ) | ### KRun

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 of <tt>struct stat</tt>. If you don't know this set it to 0.
isLocalFile | If this parameter is set to `false` then `url` 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 KIO::stat and KIO::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 () | ### ~KRun

[virtual]

Destructor. Don't call it yourself, since a KRun object auto-deletes itself.

bool hasError () | ### hasError

[const]

bool hasFinished () | ### hasFinished

[const]

bool autoDelete () | ### autoDelete

[const]

By default auto deletion is on.

void setAutoDelete (bool b) | ### setAutoDelete

pid_t run ( const KService& _service, const KURL::List& _urls ) | ### run

[static]

Open a list of URLs with a certain service.

Parameters:

_urls | the list of URLs, can be empty (app launched without argument)

pid_t run ( const QString& _exec, const KURL::List& _urls, const QString& _name = QString::null, const QString& _icon = QString::null, const QString& _mini_icon = QString::null, const QString& _desktop_file = QString::null ) | ### run

[static]

Open a list of URLs with.

Parameters:

_exec | The name of the executable, for example "/usr/bin/netscape".
_name | The logical name of the application, for example "Netscape 4.06".
_icon | The icon which should be used by the application.
_miniicon | The icon which should be used by the application.

pid_t runURL ( const KURL& _url, const QString& _mimetype ) | ### runURL

[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.

pid_t runCommand ( QString cmd ) | ### runCommand

[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.

_cmd must be a shell command. You must not append "&" to it, since the function will do that for you.

Use only when you know the full command line. Otherwise use the other static methods, or KRun's constructor.

Returns: PID of running command, 0 if it could not be started, 0 - (PID of running command) if command was unsafe for map notification.

pid_t runCommand ( const QString& cmd, const QString & execName, const QString & ) | ### runCommand

[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. The last argument is now unused but kept for binary compatibility.

void shellQuote ( QString &_str ) | ### shellQuote

[static]

Quotes a string for the shell

void finished () | ### finished

[signal]

void error () | ### error

[signal]

void slotTimeout () | ### slotTimeout

[protected slots slot]

void slotScanFinished ( KIO::Job * ) | ### slotScanFinished

[protected slots slot]

void slotStatResult ( KIO::Job * ) | ### slotStatResult

[protected slots slot]

void init () | ### init

[protected virtual]

void scanFile () | ### scanFile

[protected virtual]

void foundMimeType ( const QString& _type ) | ### foundMimeType

[protected virtual]

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.

void killJob () | ### killJob

[protected virtual]

KURL m_strURL | ### m_strURL

[protected]

bool m_bFault | ### m_bFault

[protected]

bool m_bAutoDelete | ### m_bAutoDelete

[protected]

bool m_bProgressInfo | ### m_bProgressInfo

[protected]

bool m_bFinished | ### m_bFinished

[protected]

KIO::Job * m_job | ### m_job

[protected]

QTimer m_timer | ### m_timer

[protected]

bool m_bScanFile | ### m_bScanFile

[protected]

bool m_bIsDirectory | ### m_bIsDirectory

[protected]

bool m_bInit | ### m_bInit

[protected]

bool m_bIsLocalFile | ### m_bIsLocalFile

[protected]

mode_t m_mode | ### m_mode

[protected]

KRunPrivate * d | ### d

[protected]

pid_t runOldApplication ( const QString& _exec, const KURL::List& _urls, bool _allow_multiple ) | ### runOldApplication

[protected static]

For remote URLs to be opened with apps that don't support remote URLs. Uses kfmexec.

pid_t run ( const QString& _cmd ) | ### run

[protected static]

Runs a shell command.

_cmd must be a quoted shell command. You must not append "&" to it, since the function will do that for you. An example is "<tt>greet 'Hello Torben'</tt>".

Returns: PID of running command, 0 if it could not be started, 0 - (PID of running command) if command was unsafe for map notification.

void clientStarted ( const QString & name, const QString & iconName, pid_t pid, const QString & resName, bool compliant, int screen_number = 0 ) | ### clientStarted

[protected static]

Send a DCOP signal to indicate that an application has been started.

If the translated name of the application is unavailable, the binary name may be used for the `name' parameter.

If the name of the mini icon used for the application is unknown, QString::null may be passed for the `iconName' parameter.

If the application does not comply with the NET_WM protocol (it does not set NET_WM_PID on a window at startup,) but you do know that it will set a specific string in WM_CLASS.res_name, then you may pass that name in the `resName' parameter.

If the application is known to comply with the NET_WM protocol, pass true for the `compliant' parameter.

Applications that are NET_WM compliant work perfectly with app-starting notification.

Applications that are not NET_WM compliant but do set WM_CLASS.res_name will work almost correctly. The only side-effect of non-compliance is that in some uncommon cases the app-starting indication may end prematurely for this app, plus others starting in parallel which have specified the same WM_CLASS.res_name.

Applications that are neither NET_WM compliant nor set WM_CLASS.res_name will still have app-starting notification. The side-effect is that for this app and any other non-compliant apps starting in parallel with this (which also do not set WM_CLASS.res_name), the app-start indication may end prematurely.

Parameters:

name | Translated name of the app.
iconName | Name of the app's mini icon.
pid | PID of the running process.
resName | Name that will be set in WM_CLASS.res_name on startup.
compliant | Application complies with the NET_WM protocol.
screen | On multihead displays, this is the screen that the application was run on.

QString binaryName ( const QString & execLine, bool removePath = true ) | ### binaryName

[protected static]

Extracts binary name from Exec command line

Parameters:

execLine | the command line
removePath | if true, /usr/bin/konqueror will be returned as "konqueror" if false, it will be returned with the path.

Generated by: root@i386.ports.openbsd.org on Wed Apr 25 13:58:36 2001, using kdoc 2.0a53.