KIO::ApplicationLauncherJob

KIO::ApplicationLauncherJob Class Reference

#include <KIO/ApplicationLauncherJob>

Inheritance diagram for KIO::ApplicationLauncherJob:

Public Types

enum  RunFlag { DeleteTemporaryFiles = 0x1 }
 
typedef QFlags< RunFlagRunFlags
 
- Public Types inherited from KJob
typedef QFlags< CapabilityCapabilities
 
enum  Capability
 

Public Member Functions

 ApplicationLauncherJob (const KService::Ptr &service, QObject *parent=nullptr)
 
 ApplicationLauncherJob (const KServiceAction &serviceAction, QObject *parent=nullptr)
 
 ApplicationLauncherJob (QObject *parent=nullptr)
 
 ~ApplicationLauncherJob () override
 
qint64 pid () const
 
QVector< qint64 > pids () const
 
void setRunFlags (RunFlags runFlags)
 
void setStartupId (const QByteArray &startupId)
 
void setSuggestedFileName (const QString &suggestedFileName)
 
void setUrls (const QList< QUrl > &urls)
 
void start () override
 
- Public Member Functions inherited from KJob
 KJob (QObject *parent=nullptr)
 
Capabilities capabilities () const
 
int error () const
 
virtual QString errorString () const
 
QString errorText () const
 
bool exec ()
 
bool isAutoDelete () const
 
bool isSuspended () const
 
unsigned long percent () const
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 
void setAutoDelete (bool autodelete)
 
void setUiDelegate (KJobUiDelegate *delegate)
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 
KJobUiDelegateuiDelegate () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
bool blockSignals (bool block)
 
const QObjectListchildren () const const
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method) const const
 
bool disconnect (const QObject *receiver, const char *method) const const
 
void dumpObjectInfo ()
 
void dumpObjectInfo () const const
 
void dumpObjectTree ()
 
void dumpObjectTree () const const
 
QList< QByteArraydynamicPropertyNames () const const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegExp &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isWidgetType () const const
 
bool isWindowType () const const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const const
 
void moveToThread (QThread *targetThread)
 
QString objectName () const const
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
QVariant property (const char *name) const const
 
 Q_CLASSINFO (Name, Value)
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_NAMESPACE Q_NAMESPACE
 
 Q_NAMESPACE_EXPORT (EXPORT_MACRO)
 
 Q_OBJECT Q_OBJECT
 
 Q_PROPERTY (...)
 
 Q_REVISION Q_REVISION
 
 Q_SET_OBJECT_NAME (Object)
 
 Q_SIGNAL Q_SIGNAL
 
 Q_SIGNALS Q_SIGNALS
 
 Q_SLOT Q_SLOT
 
 Q_SLOTS Q_SLOTS
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds time, Qt::TimerType timerType)
 
QThreadthread () const const
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 
- Signals inherited from KJob
void description (KJob *job, const QString &title, const QPair< QString, QString > &field1=QPair< QString, QString >(), const QPair< QString, QString > &field2=QPair< QString, QString >())
 
void finished (KJob *job)
 
void infoMessage (KJob *job, const QString &plain, const QString &rich=QString())
 
void percent (KJob *job, unsigned long percent)
 
void processedAmount (KJob *job, KJob::Unit unit, qulonglong amount)
 
void processedSize (KJob *job, qulonglong size)
 
void result (KJob *job)
 
void resumed (KJob *job)
 
void speed (KJob *job, unsigned long speed)
 
void suspended (KJob *job)
 
void totalAmount (KJob *job, KJob::Unit unit, qulonglong amount)
 
void totalSize (KJob *job, qulonglong size)
 
void warning (KJob *job, const QString &plain, const QString &rich=QString())
 
- Public Slots inherited from KJob
bool kill (KillVerbosity verbosity=Quietly)
 
bool resume ()
 
bool suspend ()
 
- Static Public Member Functions inherited from QObject
QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, Functor functor)
 
QMetaObject::Connection connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type)
 
bool disconnect (const QMetaObject::Connection &connection)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from KJob
 Killable
 
 NoCapabilities
 
 Suspendable
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Member Functions inherited from KJob
virtual bool doKill ()
 
virtual bool doResume ()
 
virtual bool doSuspend ()
 
void emitPercent (qulonglong processedAmount, qulonglong totalAmount)
 
void emitResult ()
 
void emitSpeed (unsigned long speed)
 
void setCapabilities (Capabilities capabilities)
 
void setError (int errorCode)
 
void setErrorText (const QString &errorText)
 
void setPercent (unsigned long percentage)
 
void setProcessedAmount (Unit unit, qulonglong amount)
 
void setTotalAmount (Unit unit, qulonglong amount)
 
- Protected Member Functions inherited from QObject
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
bool isSignalConnected (const QMetaMethod &signal) const const
 
int receivers (const char *signal) const const
 
QObjectsender () const const
 
int senderSignalIndex () const const
 
virtual void timerEvent (QTimerEvent *event)
 

Detailed Description

ApplicationLauncherJob runs an application and watches it while running.

It creates a startup notification and finishes it on success or on error (for the taskbar). It also emits an error message if necessary (e.g. "program not found").

When passing multiple URLs to an application that doesn't support opening multiple files, the application will be launched once for each URL.

The job finishes when the application is successfully started. At that point you can query the PID(s).

For error handling, either connect to the result() signal, or for a simple messagebox on error, you can do

Using JobUiDelegate (which is widgets based) also enables the feature of asking the user in case the executable or desktop file isn't marked as executable. Otherwise the job will just refuse executing those files.

Since
5.69

Definition at line 62 of file applicationlauncherjob.h.

Member Typedef Documentation

Stores a combination of RunFlag values.

Definition at line 111 of file applicationlauncherjob.h.

Member Enumeration Documentation

See also
RunFlag
Enumerator
DeleteTemporaryFiles 

the URLs passed to the service will be deleted when it exits (if the URLs are local files)

Definition at line 105 of file applicationlauncherjob.h.

Constructor & Destructor Documentation

KIO::ApplicationLauncherJob::ApplicationLauncherJob ( const KService::Ptr service,
QObject parent = nullptr 
)
explicit

Creates an ApplicationLauncherJob.

Parameters
servicethe service (application desktop file) to run
parentthe parent QObject

Definition at line 74 of file applicationlauncherjob.cpp.

KIO::ApplicationLauncherJob::ApplicationLauncherJob ( const KServiceAction serviceAction,
QObject parent = nullptr 
)
explicit

Creates an ApplicationLauncherJob.

Parameters
serviceActionthe service action to run
parentthe parent QObject

Definition at line 79 of file applicationlauncherjob.cpp.

KIO::ApplicationLauncherJob::ApplicationLauncherJob ( QObject parent = nullptr)
explicit

Creates an ApplicationLauncherJob which will prompt the user for which application to use (via the "open with" dialog).

Parameters
parentthe parent QObject

Definition at line 87 of file applicationlauncherjob.cpp.

KIO::ApplicationLauncherJob::~ApplicationLauncherJob ( )
override

Destructor.

Note that jobs auto-delete themselves after emitting result. Deleting/killing the job will not stop the started application.

Definition at line 92 of file applicationlauncherjob.cpp.

Member Function Documentation

qint64 KIO::ApplicationLauncherJob::pid ( ) const
Returns
the PID of the application that was started

Convenience method for pids().at(0). You should only use this when specifying zero or one URL, or when you are sure that the application supports opening multiple files. Otherwise use pids(). Available after the job emits result().

Definition at line 248 of file applicationlauncherjob.cpp.

QVector< qint64 > KIO::ApplicationLauncherJob::pids ( ) const
Returns
the PIDs of the applications that were started

Available after the job emits result().

Definition at line 253 of file applicationlauncherjob.cpp.

void KIO::ApplicationLauncherJob::setRunFlags ( RunFlags  runFlags)

Specifies various flags.

Parameters
runFlagsthe flags to be set. For instance, whether the URLs are temporary files that should be deleted after execution.

Definition at line 103 of file applicationlauncherjob.cpp.

void KIO::ApplicationLauncherJob::setStartupId ( const QByteArray startupId)

Sets the startup notification id of the application launch.

Parameters
startupIdstartup notification id, if any (otherwise "").

Definition at line 113 of file applicationlauncherjob.cpp.

void KIO::ApplicationLauncherJob::setSuggestedFileName ( const QString suggestedFileName)

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.

Parameters
suggestedFileNamethe file name

Definition at line 108 of file applicationlauncherjob.cpp.

void KIO::ApplicationLauncherJob::setUrls ( const QList< QUrl > &  urls)

Specifies the URLs to be passed to the application.

Parameters
urlslist of files (local or remote) to open

Note that when passing multiple URLs to an application that doesn't support opening multiple files, the application will be launched once for each URL.

Definition at line 98 of file applicationlauncherjob.cpp.

void KIO::ApplicationLauncherJob::start ( )
overridevirtual

Starts the job.

You must call this, after having done all the setters. This is (potentially) a GUI job, never use exec(), it would block user interaction.

Implements KJob.

Definition at line 125 of file applicationlauncherjob.cpp.


The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Wed May 27 2020 23:03:12 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.