KApplicationTrader
Typedefs | |
using | FilterFunc = std::function<bool(const KService::Ptr &)> |
Functions | |
KSERVICE_EXPORT bool | isSubsequence (const QString &pattern, const QString &text, Qt::CaseSensitivity cs=Qt::CaseSensitive) |
KSERVICE_EXPORT KService::Ptr | preferredService (const QString &mimeType) |
KSERVICE_EXPORT KService::List | query (FilterFunc filterFunc) |
KSERVICE_EXPORT KService::List | queryByMimeType (const QString &mimeType, FilterFunc filterFunc={}) |
KSERVICE_EXPORT void | setPreferredService (const QString &mimeType, const KService::Ptr service) |
Detailed Description
The application trader is a convenient way to find installed applications based on specific criteria (association with a MIME type, name contains Foo, etc.)
Example: say that you want to get the list of all applications that can handle PNG images. The code would look like:
If you want to get the preferred application for image/png you would use:
- See also
- KService
Typedef Documentation
◆ FilterFunc
using KApplicationTrader::FilterFunc = std::function<bool(const KService::Ptr &)> |
Filter function, used for filtering results of query and queryByMimeType.
Definition at line 39 of file kapplicationtrader.h.
Function Documentation
◆ isSubsequence()
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().
- Since
- 5.68
Definition at line 121 of file kapplicationtrader.cpp.
◆ preferredService()
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.
- Parameters
-
mimeType the MIME type (see query())
- Returns
- the preferred service, or
nullptr
if no service is available
- Since
- 5.68
Definition at line 87 of file kapplicationtrader.cpp.
◆ query()
KService::List KApplicationTrader::query | ( | FilterFunc | filterFunc | ) |
This method returns a list of services (applications) that match a given filter.
- Parameters
-
filter a callback function that returns true
if the application should be selected andfalse
if it should be skipped.
- Returns
- A list of services that satisfy the query
- Since
- 5.68
Definition at line 64 of file kapplicationtrader.cpp.
◆ queryByMimeType()
KService::List KApplicationTrader::queryByMimeType | ( | const QString & | mimeType, |
FilterFunc | filterFunc = {} ) |
This method returns a list of services (applications) which are associated with a given MIME type.
- Parameters
-
mimeType a MIME type like 'text/plain' or 'text/html' filter a callback function that returns true
if the application should be selected andfalse
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)
- Since
- 5.68
Definition at line 76 of file kapplicationtrader.cpp.
◆ setPreferredService()
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
- Parameters
-
mimeType the MIME type service the service to set as the preferred one
- Since
- 5.101
Definition at line 96 of file kapplicationtrader.cpp.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Dec 21 2024 17:00:21 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.