KApplicationTrader Namespace
The application trader is a convenient way to find installed applications based on specific criteria (association with a MIME type, name contains Foo, etc.). More...
Header: | #include <KApplicationTrader> |
CMake: | find_package(KF6 REQUIRED COMPONENTS Service) target_link_libraries(mytarget PRIVATE KF6::Service) |
Types
Functions
(since 5.68) bool | isSubsequence(const QString &pattern, const QString &text, Qt::CaseSensitivity cs = Qt::CaseSensitive) |
(since 5.68) KService::Ptr | preferredService(const QString &mimeType) |
(since 5.68) KService::List | query(KApplicationTrader::FilterFunc filterFunc) |
(since 5.68) KService::List | queryByMimeType(const QString &mimeType, KApplicationTrader::FilterFunc filterFunc = {}) |
(since 5.101) void | setPreferredService(const QString &mimeType, const KService::Ptr service) |
Detailed Description
Example: say that you want to get the list of all applications that can handle PNG images. The code would look like:
KService::List lst = KApplicationTrader::queryByMimeType("image/png");
If you want to get the preferred application for image/png you would use:
KService::Ptr service = KApplicationTrader::preferredService("image/png");
See also KService.
Type Documentation
[alias]
KApplicationTrader::FilterFunc
Filter function, used for filtering results of query and queryByMimeType.
Function Documentation
[since 5.68]
bool KApplicationTrader::isSubsequence(const QString &pattern, const QString &text, Qt::CaseSensitivity cs = Qt::CaseSensitive)
Returns true if pattern matches a subsequence of the string text. For instance the pattern "libremath" matches the text "LibreOffice Math", assuming cs is Qt::CaseInsensitive.
This can be useful from your filter function, e.g. with text being service->name().
This function was introduced in 5.68.
[since 5.68]
KService::Ptr KApplicationTrader::preferredService(const QString &mimeType)
Returns the preferred service for mimeType
This a convenience method for queryByMimeType(mimeType).at(0), with a check for empty.
mimeType the MIME type (see query())
Returns the preferred service, or nullptr
if no service is available
This function was introduced in 5.68.
See also setPreferredService().
[since 5.68]
KService::List KApplicationTrader::query(KApplicationTrader::FilterFunc filterFunc)
This method returns a list of services (applications) that match a given filter.
filterFunc a callback function that returns true
if the application should be selected and false
if it should be skipped.
Returns a list of services that satisfy the query
This function was introduced in 5.68.
[since 5.68]
KService::List KApplicationTrader::queryByMimeType(const QString &mimeType, KApplicationTrader::FilterFunc filterFunc = {})
This method returns a list of services (applications) which are associated with a given MIME type.
mimeType a MIME type like 'text/plain' or 'text/html'
filterFunc a callback function that returns true
if the application should be selected and false
if it should be skipped. Do not return true for all services, this would return the complete list of all installed applications (slow).
Returns a list of services that satisfy the query, sorted by preference (preferred service first)
This function was introduced in 5.68.
[since 5.101]
void KApplicationTrader::setPreferredService(const QString &mimeType, const KService::Ptr service)
Changes the preferred service for mimeType to service
You may need to rebuild KSyCoca for the change to be reflected
mimeType the MIME type
service the service to set as the preferred one
This function was introduced in 5.101.
See also preferredService().