KIO::ApplicationLauncherJob

Search for usage in LXR

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
 
enum  Unit
 

Public Member Functions

 ApplicationLauncherJob (const KDesktopFileAction &desktopFileAction, QObject *parent=nullptr)
 
 ApplicationLauncherJob (const KService::Ptr &service, QObject *parent=nullptr)
 
 ApplicationLauncherJob (const KServiceAction &serviceAction, QObject *parent=nullptr)
 
 ApplicationLauncherJob (QObject *parent=nullptr)
 
 ~ApplicationLauncherJob () override
 
qint64 pid () const
 
QList< 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 isFinishedNotificationHidden () const
 
bool isStartedWithExec () const
 
bool isSuspended () const
 
unsigned long percent () const
 
Q_SCRIPTABLE qulonglong processedAmount (Unit unit) const
 
void setAutoDelete (bool autodelete)
 
void setFinishedNotificationHidden (bool hide=true)
 
void setUiDelegate (KJobUiDelegate *delegate)
 
Q_SCRIPTABLE qulonglong totalAmount (Unit unit) const
 
KJobUiDelegateuiDelegate () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
QBindable< QStringbindableObjectName ()
 
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 () const const
 
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 QRegularExpression &re, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QString &name, Qt::FindChildOptions options) const const
 
QList< T > findChildren (Qt::FindChildOptions options) const const
 
bool inherits (const char *className) const const
 
void installEventFilter (QObject *filterObj)
 
bool isQuickItemType () const const
 
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_EMIT Q_EMIT
 
 Q_ENUM (...)
 
 Q_ENUM_NS (...)
 
 Q_ENUMS (...)
 
 Q_FLAG (...)
 
 Q_FLAG_NS (...)
 
 Q_FLAGS (...)
 
 Q_GADGET Q_GADGET
 
 Q_GADGET_EXPORT (EXPORT_MACRO)
 
 Q_INTERFACES (...)
 
 Q_INVOKABLE Q_INVOKABLE
 
 Q_MOC_INCLUDE Q_MOC_INCLUDE
 
 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
 
qobject_cast (const QObject *object)
 
qobject_cast (QObject *object)
 
 QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
 
void removeEventFilter (QObject *obj)
 
void setObjectName (const QString &name)
 
void setObjectName (QAnyStringView name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool setProperty (const char *name, QVariant &&value)
 
bool signalsBlocked () const const
 
int startTimer (int interval, Qt::TimerType timerType)
 
int startTimer (std::chrono::milliseconds interval, 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 &message)
 
void percentChanged (KJob *job, unsigned long percent)
 
void processedAmountChanged (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 totalAmountChanged (KJob *job, KJob::Unit unit, qulonglong amount)
 
void totalSize (KJob *job, qulonglong size)
 
void warning (KJob *job, const QString &message)
 
- Public Slots inherited from KJob
bool kill (KJob::KillVerbosity verbosity=KJob::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 *context, Functor functor, 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)
 
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, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
bool disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
- Public Attributes inherited from KJob
 Bytes
 
 Directories
 
 Files
 
 Items
 
 Killable
 
 NoCapabilities
 
 Suspendable
 
 UnitsCount
 
- 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)
 
bool isFinished () const
 
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 setProgressUnit (Unit unit)
 
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 use:

// Since 5.98 use:
// For older releases use:
A UI delegate tuned to be used with KIO Jobs.
KIOCORE_EXPORT KJobUiDelegate * createDefaultJobUiDelegate()
Convenience method: use default factory, if there's one, to create a delegate and return it.

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 such files.

To invoke the open-with dialog (from KIOWidgets), construct an ApplicationLauncherJob without any arguments or with a null KService.

Since
5.69

Definition at line 54 of file applicationlauncherjob.h.

Member Typedef Documentation

◆ RunFlags

Stores a combination of RunFlag values.

Definition at line 111 of file applicationlauncherjob.h.

Member Enumeration Documentation

◆ RunFlag

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

◆ ApplicationLauncherJob() [1/4]

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 59 of file applicationlauncherjob.cpp.

◆ ApplicationLauncherJob() [2/4]

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 69 of file applicationlauncherjob.cpp.

◆ ApplicationLauncherJob() [3/4]

KIO::ApplicationLauncherJob::ApplicationLauncherJob ( const KDesktopFileAction & desktopFileAction,
QObject * parent = nullptr )
explicit

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
6.0

Definition at line 76 of file applicationlauncherjob.cpp.

◆ ApplicationLauncherJob() [4/4]

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 from KIOWidgets).

Parameters
parentthe parent QObject
Since
5.71

Definition at line 84 of file applicationlauncherjob.cpp.

◆ ~ApplicationLauncherJob()

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 90 of file applicationlauncherjob.cpp.

Member Function Documentation

◆ pid()

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 250 of file applicationlauncherjob.cpp.

◆ pids()

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

Available after the job emits result().

Definition at line 255 of file applicationlauncherjob.cpp.

◆ setRunFlags()

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 101 of file applicationlauncherjob.cpp.

◆ setStartupId()

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

Sets the platform-specific startup id of the application launch.

Parameters
startupIdstartup id, if any (otherwise ""). For X11, this would be the id for the Startup Notification protocol. For Wayland, this would be the token for the XDG Activation protocol.

Definition at line 111 of file applicationlauncherjob.cpp.

◆ setSuggestedFileName()

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 MIME type 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 106 of file applicationlauncherjob.cpp.

◆ setUrls()

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 96 of file applicationlauncherjob.cpp.

◆ start()

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 123 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-2024 The KDE developers.
Generated on Sat Apr 27 2024 22:13:16 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.