KUriFilterData Class

Header: #include <KUriFilterData>
CMake: find_package(KF6 REQUIRED COMPONENTS KIO)
target_link_libraries(mytarget PRIVATE KIOGui)

Public Types

enum SearchFilterOption { SearchFilterOptionNone, RetrieveSearchProvidersOnly, RetrievePreferredSearchProvidersOnly, RetrieveAvailableSearchProvidersOnly }
flags SearchFilterOptions
enum UriTypes { NetProtocol, LocalFile, LocalDir, Executable, Help, …, Unknown }

Public Functions

KUriFilterData()
KUriFilterData(const QString &url)
KUriFilterData(const QUrl &url)
KUriFilterData(const KUriFilterData &other)
~KUriFilterData()
QString absolutePath() const
QStringList allQueriesForSearchProvider(const QString &provider) const
QString alternateDefaultSearchProvider() const
QStringList alternateSearchProviders() const
QString argsAndOptions() const
bool checkForExecutables() const
QString defaultUrlScheme() const
QString errorMsg() const
bool hasAbsolutePath() const
bool hasArgsAndOptions() const
QString iconName()
QString iconNameForPreferredSearchProvider(const QString &provider) const
QStringList preferredSearchProviders() const
QString queryForPreferredSearchProvider(const QString &provider) const
KUriFilterSearchProvider queryForSearchProvider(const QString &provider) const
KUriFilterData::SearchFilterOptions searchFilteringOptions() const
QString searchProvider() const
QString searchTerm() const
QChar searchTermSeparator() const
bool setAbsolutePath(const QString &abs_path)
void setAlternateDefaultSearchProvider(const QString &provider)
void setAlternateSearchProviders(const QStringList &providers)
void setCheckForExecutables(bool check)
void setData(const QString &url)
void setData(const QUrl &url)
void setDefaultUrlScheme(const QString &)
void setSearchFilteringOptions(KUriFilterData::SearchFilterOptions options)
QString typedString() const
QUrl uri() const
KUriFilterData::UriTypes uriType() const
KUriFilterData &operator=(const QString &url)
KUriFilterData &operator=(const QUrl &url)

Detailed Description

@class KUriFilterData kurifilter.h <KUriFilter>

This class is a basic messaging class used to exchange filtering information between the filter plugins and the application requesting the filtering service.

Use this object if you require a more detailed information about the URI you want to filter. Any application can create an instance of this class and send it to KUriFilter to have the plugins fill out all possible information about the URI.

On successful filtering you can use @ref uriType() to determine what type of resource the request was filtered into. See @ref KUriFilter::UriTypes for details. If an error is encountered, then @ref KUriFilter::Error is returned. You can use @ref errorMsg to obtain the error information.

The functions in this class are not reentrant.

Example

Here is a basic example of how this class is used with @ref KUriFilter:

KUriFilterData filterData (QLatin1String("kde.org"));
bool filtered = KUriFilter::self()->filterUri(filterData);

If you are only interested in getting the list of preferred search providers, then you can do the following:

KUriFilterData data;
data.setData("<text-to-search-for>");
data.setSearchFilteringOption(KUriFilterData::RetrievePreferredSearchProvidersOnly);
bool filtered = KUriFilter::self()->filterSearchUri(data, KUriFilter::NormalTextFilter);

@short A class for exchanging filtering information. @author Dawit Alemayehu <adawit at kde.org>

Member Type Documentation

enum KUriFilterData::SearchFilterOption
flags KUriFilterData::SearchFilterOptions

This enum describes the search filtering options to be used.

@li SearchFilterOptionNone No search filter options are set and normal filtering is performed on the input data. @li RetrieveSearchProvidersOnly If set, the list of all available search providers are returned without any input filtering. This flag only applies when used in conjunction with the @ref KUriFilter::NormalTextFilter flag. @li RetrievePreferredSearchProvidersOnly If set, the list of preferred search providers are returned without any input filtering. This flag only applies when used in conjunction with the @ref KUriFilter::NormalTextFilter flag. @li RetrieveAvailableSearchProvidersOnly Same as doing RetrievePreferredSearchProvidersOnly | RetrieveSearchProvidersOnly, where all available search providers are returned if no preferred ones ones are available. No input filtering will be performed.

@see setSearchFilteringOptions @see KUriFilter::filterSearchUri @see SearchFilterOptions

The SearchFilterOptions type is a typedef for QFlags<SearchFilterOption>. It stores an OR combination of SearchFilterOption values.

enum KUriFilterData::UriTypes

Describes the type of the URI that was filtered.

Member Function Documentation

KUriFilterData::KUriFilterData()

Default constructor.

Creates a UriFilterData object.

[explicit] KUriFilterData::KUriFilterData(const QString &url)

Creates a KUriFilterData object from the given string.

@param url is the string to be filtered.

[explicit] KUriFilterData::KUriFilterData(const QUrl &url)

Creates a KUriFilterData object from the given URL.

@param url is the URL to be filtered.

KUriFilterData::KUriFilterData(const KUriFilterData &other)

Copy constructor.

Creates a KUriFilterData object from another KURIFilterData object.

@param other the uri filter data to be copied.

[noexcept] KUriFilterData::~KUriFilterData()

Destructor.

QString KUriFilterData::absolutePath() const

Returns the absolute path if one has already been set.

@return the absolute path, or QString()

@see hasAbsolutePath()

See also setAbsolutePath().

QStringList KUriFilterData::allQueriesForSearchProvider(const QString &provider) const

Returns all the query urls for the given search provider.

Use this function to obtain all the different queries that can be used for the given provider. For example, if a search engine provider named "foobar" has web shortcuts named "foobar", "foo" and "bar", then this function, unlike @ref queryForPreferredSearchProvider, will return a a query for each and every web shortcut.

@see queryForPreferredSearchProvider

QString KUriFilterData::alternateDefaultSearchProvider() const

Returns the search provider to use when a default provider is not available.

This function returns an empty string if @ref setAlternateDefaultSearchProvider was not called to set the default search provider to be used when none has been chosen by the user through the search configuration module.

@see setAlternateDefaultSearchProvider

See also setAlternateDefaultSearchProvider().

QStringList KUriFilterData::alternateSearchProviders() const

Returns the list of alternate search providers.

This function returns an empty list if @ref setAlternateSearchProviders was not called to set the alternate search providers to be when no preferred providers have been chosen by the user through the search configuration module.

@see setAlternatteSearchProviders @see preferredSearchProviders

See also setAlternateSearchProviders().

QString KUriFilterData::argsAndOptions() const

Returns the command line options and arguments for a local resource when present.

@return options and arguments when present, otherwise QString()

bool KUriFilterData::checkForExecutables() const

@return true if the filters should attempt to check whether the supplied uri is an executable. False otherwise.

See also setCheckForExecutables().

QString KUriFilterData::defaultUrlScheme() const

Returns the default protocol to use when filtering potentially valid url inputs.

By default this function will return an empty string.

@see setDefaultUrlScheme

See also setDefaultUrlScheme().

QString KUriFilterData::errorMsg() const

Returns an error message.

This functions returns the error message set by the plugin whenever the uri type is set to KUriFilterData::ERROR. Otherwise, it returns a nullptr string.

@return the error message or a nullptr when there is none.

bool KUriFilterData::hasAbsolutePath() const

Checks whether the supplied data had an absolute path.

@return true if the supplied data has an absolute path

@see absolutePath()

bool KUriFilterData::hasArgsAndOptions() const

Checks whether the current data is a local resource with command line options and arguments.

@return true if the current data has command line options and arguments

QString KUriFilterData::iconName()

The name of the icon that matches the current filtered URL.

This function returns a null string by default and when no icon is found for the filtered URL.

QString KUriFilterData::iconNameForPreferredSearchProvider(const QString &provider) const

Returns the icon associated with the given preferred search provider.

You can use this function to obtain the icon names associated with the preferred search providers returned by @ref preferredSearchProviders.

@see preferredSearchProviders

QStringList KUriFilterData::preferredSearchProviders() const

Returns a list of the names of preferred or available search providers.

This function returns the list of providers marked as preferred whenever the input data, i.e. @ref typedString, is successfully filtered.

If no default search provider has been selected prior to a filter request, this function will return an empty list. To avoid this problem you must either set an alternate default search provider using @ref setAlternateDefaultSearchProvider or set one of the @ref SearchFilterOption flags if you are only interested in getting the list of providers and not filtering the input.

Additionally, you can also provide alternate search providers in case there are no preferred ones already selected.

You can use @ref queryForPreferredServiceProvider to obtain the query associated with the list of search providers returned by this function.

@see setAlternateSearchProviders @see setAlternateDefaultSearchProvider @see setSearchFilteringOption @see queryForPreferredServiceProvider

QString KUriFilterData::queryForPreferredSearchProvider(const QString &provider) const

Returns the web shortcut url for the given preferred search provider.

You can use this function to obtain the query for the preferred search providers returned by @ref preferredSearchProviders.

The query returned by this function is in web shortcut format, i.e. "gg:foo bar", and must be re-filtered through KUriFilter to obtain a valid url.

@see preferredSearchProviders

KUriFilterSearchProvider KUriFilterData::queryForSearchProvider(const QString &provider) const

Returns information about @p provider.

You can use this function to obtain the more information about the search providers returned by @ref preferredSearchProviders.

@see preferredSearchProviders @see KUriFilterSearchProvider

KUriFilterData::SearchFilterOptions KUriFilterData::searchFilteringOptions() const

Returns the specified search filter options.

By default this function returns @ref SearchFilterOptionNone.

@see setSearchFilteringOptions

See also setSearchFilteringOptions().

QString KUriFilterData::searchProvider() const

Returns the name of the search service provider, e.g. Google.

If @ref typedString was not filtered by a search filter plugin, this function returns an empty string.

@see typedString

QString KUriFilterData::searchTerm() const

Returns the search term portion of the typed string.

If the @ref typedString was not filtered by a search filter plugin, this function returns an empty string.

@see typedString

QChar KUriFilterData::searchTermSeparator() const

Returns the character that is used to separate the search term from the keyword.

If @ref typedString was not filtered by a search filter plugin, this function returns a null character.

@see typedString

bool KUriFilterData::setAbsolutePath(const QString &abs_path)

Sets the absolute path to be used whenever the supplied data is a relative local URL.

NOTE: This function should only be used for local resources, i.e. the "file:/" protocol. It is useful for specifying the absolute path in cases where the actual URL might be relative. If deriving the path from a QUrl, make sure you set the argument for this function to the result of calling path () instead of url ().

@param abs_path the absolute path to the local resource.

@return true if absolute path is successfully set. Otherwise, false.

See also absolutePath().

void KUriFilterData::setAlternateDefaultSearchProvider(const QString &provider)

Sets the search provider to use in case no default provider is available.

The default search provider set using this function will only be used if the default and favorite search providers have not yet been selected by the user. Otherwise, the default provider specified by through function will be ignored.

@see alternateDefaultSearchProvider @see preferredSearchProviders

See also alternateDefaultSearchProvider().

void KUriFilterData::setAlternateSearchProviders(const QStringList &providers)

Sets a list of search providers to use in case no preferred search providers are available.

The list of preferred search providers set using this function will only be used if the default and favorite search providers have not yet been selected by the user. Otherwise, the providers specified through this function will be ignored.

@see alternateSearchProviders @see preferredSearchProviders

See also alternateSearchProviders().

void KUriFilterData::setCheckForExecutables(bool check)

Check whether the provided uri is executable or not.

Setting this to false ensures that typing the name of an executable does not start that application. This is useful in the location bar of a browser. The default value is true.

See also checkForExecutables().

void KUriFilterData::setData(const QString &url)

Sets the URL to be filtered.

Use this function to set the string to be filtered when you construct an empty filter object.

@param url the string to be filtered.

void KUriFilterData::setData(const QUrl &url)

Same as above except the argument is a URL.

Use this function to set the string to be filtered when you construct an empty filter object.

@param url the URL to be filtered.

void KUriFilterData::setDefaultUrlScheme(const QString &)

Sets the default scheme used when filtering potentially valid url inputs.

Use this function to change the default protocol used when filtering potentially valid url inputs. The default protocol is http.

If the scheme is specified without a separator, then "://" will be used as the separator by default. For example, if the default url scheme was simply set to "ftp", then a potentially valid url input such as "kde.org" will be filtered to "ftp://kde.org".

@see defaultUrlScheme

See also defaultUrlScheme().

void KUriFilterData::setSearchFilteringOptions(KUriFilterData::SearchFilterOptions options)

Sets the options used by search filter plugins to filter requests.

The default search filter option is @ref SearchFilterOptionNone. See @ref SearchFilterOption for the description of the other flags.

It is important to note that the options set through this function can prevent any filtering from being performed by search filter plugins. As such, @ref uriTypes can return KUriFilterData::Unknown and @ref uri can return an invalid url even though the filtering request returned a successful response.

@see searchFilteringOptions

See also searchFilteringOptions().

QString KUriFilterData::typedString() const

The string as typed by the user, before any URL processing is done.

QUrl KUriFilterData::uri() const

Returns the filtered or the original URL.

If one of the plugins successfully filtered the original input, this function returns it. Otherwise, it will return the input itself.

@return the filtered or original url.

KUriFilterData::UriTypes KUriFilterData::uriType() const

Returns the URI type.

This method always returns KUriFilterData::UNKNOWN if the given URL was not filtered.

@return the type of the URI

KUriFilterData &KUriFilterData::operator=(const QString &url)

Overloaded assignment operator.

This function allows you to easily assign a QString to a KUriFilterData object.

@return an instance of a KUriFilterData object.

KUriFilterData &KUriFilterData::operator=(const QUrl &url)

Overloaded assignment operator.

This function allows you to easily assign a QUrl to a KUriFilterData object.

@return an instance of a KUriFilterData object.