• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KIO

  • kio
  • kio
kurifilter.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 * Copyright (C) 2000 Yves Arrouye <yves@realnames.com>
3 * Copyright (C) 2000,2010 Dawit Alemayehu <adawit at kde.org>
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more details.
14 *
15 * You should have received a copy of the GNU Library General Public License
16 * along with this library; see the file COPYING.LIB. If not, write to
17 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19 **/
20
21#include "kurifilter.h"
22
23#include "hostinfo_p.h"
24
25#include <kdebug.h>
26#include <kiconloader.h>
27#include <kservicetypetrader.h>
28#include <kmimetype.h>
29#include <kstandarddirs.h>
30
31#include <QtCore/QHashIterator>
32#include <QtCore/QStringBuilder>
33#include <QtNetwork/QHostInfo>
34#include <QtNetwork/QHostAddress>
35
36typedef QList<KUriFilterPlugin *> KUriFilterPluginList;
37typedef QMap<QString, KUriFilterSearchProvider*> SearchProviderMap;
38
39
40static QString lookupIconNameFor(const KUrl &url, KUriFilterData::UriTypes type)
41{
42 QString iconName;
43
44 switch ( type )
45 {
46 case KUriFilterData::NetProtocol:
47 iconName = KMimeType::favIconForUrl(url);
48 if (iconName.isEmpty())
49 iconName = KMimeType::iconNameForUrl( url );
50 else
51 iconName = KStandardDirs::locate("cache", iconName + QLatin1String(".png"));
52 break;
53 case KUriFilterData::LocalFile:
54 case KUriFilterData::LocalDir:
55 {
56 iconName = KMimeType::iconNameForUrl( url );
57 break;
58 }
59 case KUriFilterData::Executable:
60 {
61 QString exeName = url.path();
62 exeName = exeName.mid( exeName.lastIndexOf( '/' ) + 1 ); // strip path if given
63 KService::Ptr service = KService::serviceByDesktopName( exeName );
64 if (service && service->icon() != QLatin1String( "unknown" ))
65 iconName = service->icon();
66 // Try to find an icon with the same name as the binary (useful for non-kde apps)
67 // Use iconPath rather than loadIcon() as the latter uses QPixmap (not threadsafe)
68 else if ( !KIconLoader::global()->iconPath( exeName, KIconLoader::NoGroup, true ).isNull() )
69 iconName = exeName;
70 else
71 // not found, use default
72 iconName = QLatin1String("system-run");
73 break;
74 }
75 case KUriFilterData::Help:
76 {
77 iconName = QLatin1String("khelpcenter");
78 break;
79 }
80 case KUriFilterData::Shell:
81 {
82 iconName = QLatin1String("konsole");
83 break;
84 }
85 case KUriFilterData::Error:
86 case KUriFilterData::Blocked:
87 {
88 iconName = QLatin1String("error");
89 break;
90 }
91 default:
92 break;
93 }
94
95 return iconName;
96}
97
98
99class KUriFilterSearchProvider::KUriFilterSearchProviderPrivate
100{
101public:
102 KUriFilterSearchProviderPrivate() {}
103 KUriFilterSearchProviderPrivate(const KUriFilterSearchProviderPrivate& other)
104 : desktopEntryName(other.desktopEntryName),
105 iconName(other.iconName),
106 name(other.name),
107 keys(other.keys) {}
108
109
110 QString desktopEntryName;
111 QString iconName;
112 QString name;
113 QStringList keys;
114};
115
116KUriFilterSearchProvider::KUriFilterSearchProvider()
117 :d(new KUriFilterSearchProvider::KUriFilterSearchProviderPrivate)
118{
119}
120
121KUriFilterSearchProvider::KUriFilterSearchProvider(const KUriFilterSearchProvider& other)
122 :d(new KUriFilterSearchProvider::KUriFilterSearchProviderPrivate(*(other.d)))
123{
124}
125
126KUriFilterSearchProvider::~KUriFilterSearchProvider()
127{
128 delete d;
129}
130
131QString KUriFilterSearchProvider::desktopEntryName() const
132{
133 return d->desktopEntryName;
134}
135
136QString KUriFilterSearchProvider::iconName() const
137{
138 return d->iconName;
139}
140
141QString KUriFilterSearchProvider::name() const
142{
143 return d->name;
144}
145
146QStringList KUriFilterSearchProvider::keys() const
147{
148 return d->keys;
149}
150
151QString KUriFilterSearchProvider::defaultKey() const
152{
153 if (d->keys.isEmpty())
154 return QString();
155
156 return d->keys.first();
157}
158
159KUriFilterSearchProvider& KUriFilterSearchProvider::operator=(const KUriFilterSearchProvider& other)
160{
161 d->desktopEntryName = other.d->desktopEntryName;
162 d->iconName = other.d->iconName;
163 d->keys = other.d->keys;
164 d->name = other.d->name;
165 return *this;
166}
167
168void KUriFilterSearchProvider::setDesktopEntryName(const QString& desktopEntryName)
169{
170 d->desktopEntryName = desktopEntryName;
171}
172
173void KUriFilterSearchProvider::setIconName(const QString& iconName)
174{
175 d->iconName = iconName;
176}
177
178void KUriFilterSearchProvider::setName(const QString& name)
179{
180 d->name = name;
181}
182
183void KUriFilterSearchProvider::setKeys(const QStringList& keys)
184{
185 d->keys = keys;
186}
187
188class KUriFilterDataPrivate
189{
190public:
191 explicit KUriFilterDataPrivate( const KUrl& u, const QString& typedUrl )
192 : checkForExecs(true),
193 wasModified(true),
194 uriType(KUriFilterData::Unknown),
195 searchFilterOptions(KUriFilterData::SearchFilterOptionNone),
196 url(u),
197 typedString(typedUrl)
198 {
199 }
200
201 ~KUriFilterDataPrivate()
202 {
203 qDeleteAll(searchProviderMap.begin(), searchProviderMap.end());
204 }
205
206 void setData( const KUrl& u, const QString& typedUrl )
207 {
208 checkForExecs = true;
209 wasModified = true;
210 uriType = KUriFilterData::Unknown;
211 searchFilterOptions = KUriFilterData::SearchFilterOptionNone;
212
213 url = u;
214 typedString = typedUrl;
215
216 errMsg.clear();
217 iconName.clear();
218 absPath.clear();
219 args.clear();
220 searchTerm.clear();
221 searchProvider.clear();
222 searchTermSeparator = QChar();
223 alternateDefaultSearchProvider.clear();
224 alternateSearchProviders.clear();
225 searchProviderMap.clear();
226 defaultUrlScheme.clear();
227 }
228
229 KUriFilterDataPrivate( KUriFilterDataPrivate * data )
230 {
231 wasModified = data->wasModified;
232 checkForExecs = data->checkForExecs;
233 uriType = data->uriType;
234 searchFilterOptions = data->searchFilterOptions;
235
236 url = data->url;
237 typedString = data->typedString;
238
239 errMsg = data->errMsg;
240 iconName = data->iconName;
241 absPath = data->absPath;
242 args = data->args;
243 searchTerm = data->searchTerm;
244 searchTermSeparator = data->searchTermSeparator;
245 searchProvider = data->searchProvider;
246 alternateDefaultSearchProvider = data->alternateDefaultSearchProvider;
247 alternateSearchProviders = data->alternateSearchProviders;
248 searchProviderMap = data->searchProviderMap;
249 defaultUrlScheme = data->defaultUrlScheme;
250 }
251
252 bool checkForExecs;
253 bool wasModified;
254 KUriFilterData::UriTypes uriType;
255 KUriFilterData::SearchFilterOptions searchFilterOptions;
256
257 KUrl url;
258 QString typedString;
259 QString errMsg;
260 QString iconName;
261 QString absPath;
262 QString args;
263 QString searchTerm;
264 QString searchProvider;
265 QString alternateDefaultSearchProvider;
266 QString defaultUrlScheme;
267 QChar searchTermSeparator;
268
269 QStringList alternateSearchProviders;
270 QStringList searchProviderList;
271 SearchProviderMap searchProviderMap;
272};
273
274KUriFilterData::KUriFilterData()
275 :d( new KUriFilterDataPrivate( KUrl(), QString() ) )
276{
277}
278
279KUriFilterData::KUriFilterData( const KUrl& url )
280 :d( new KUriFilterDataPrivate( url, url.url() ) )
281{
282}
283
284KUriFilterData::KUriFilterData( const QString& url )
285 :d( new KUriFilterDataPrivate( KUrl(url), url ) )
286{
287}
288
289
290KUriFilterData::KUriFilterData( const KUriFilterData& other )
291 :d( new KUriFilterDataPrivate( other.d ) )
292{
293}
294
295KUriFilterData::~KUriFilterData()
296{
297 delete d;
298}
299
300KUrl KUriFilterData::uri() const
301{
302 return d->url;
303}
304
305QString KUriFilterData::errorMsg() const
306{
307 return d->errMsg;
308}
309
310KUriFilterData::UriTypes KUriFilterData::uriType() const
311{
312 return d->uriType;
313}
314
315QString KUriFilterData::absolutePath() const
316{
317 return d->absPath;
318}
319
320bool KUriFilterData::hasAbsolutePath() const
321{
322 return !d->absPath.isEmpty();
323}
324
325QString KUriFilterData::argsAndOptions() const
326{
327 return d->args;
328}
329
330bool KUriFilterData::hasArgsAndOptions() const
331{
332 return !d->args.isEmpty();
333}
334
335bool KUriFilterData::checkForExecutables() const
336{
337 return d->checkForExecs;
338}
339
340QString KUriFilterData::typedString() const
341{
342 return d->typedString;
343}
344
345QString KUriFilterData::searchTerm() const
346{
347 return d->searchTerm;
348}
349
350QChar KUriFilterData::searchTermSeparator() const
351{
352 return d->searchTermSeparator;
353}
354
355QString KUriFilterData::searchProvider() const
356{
357 return d->searchProvider;
358}
359
360QStringList KUriFilterData::preferredSearchProviders() const
361{
362 return d->searchProviderList;
363}
364
365KUriFilterSearchProvider KUriFilterData::queryForSearchProvider(const QString& provider) const
366{
367 const KUriFilterSearchProvider* searchProvider = d->searchProviderMap.value(provider);
368
369 if (searchProvider)
370 return *(searchProvider);
371
372 return KUriFilterSearchProvider();
373}
374
375QString KUriFilterData::queryForPreferredSearchProvider(const QString& provider) const
376{
377 const KUriFilterSearchProvider* searchProvider = d->searchProviderMap.value(provider);
378 if (searchProvider)
379 return (searchProvider->defaultKey() % searchTermSeparator() % searchTerm());
380 return QString();
381}
382
383QStringList KUriFilterData::allQueriesForSearchProvider(const QString& provider) const
384{
385 const KUriFilterSearchProvider* searchProvider = d->searchProviderMap.value(provider);
386 if (searchProvider)
387 return searchProvider->keys();
388 return QStringList();
389}
390
391QString KUriFilterData::iconNameForPreferredSearchProvider(const QString &provider) const
392{
393 const KUriFilterSearchProvider* searchProvider = d->searchProviderMap.value(provider);
394 if (searchProvider)
395 return searchProvider->iconName();
396 return QString();
397}
398
399QStringList KUriFilterData::alternateSearchProviders() const
400{
401 return d->alternateSearchProviders;
402}
403
404QString KUriFilterData::alternateDefaultSearchProvider() const
405{
406 return d->alternateDefaultSearchProvider;
407}
408
409QString KUriFilterData::defaultUrlScheme() const
410{
411 return d->defaultUrlScheme;
412}
413
414KUriFilterData::SearchFilterOptions KUriFilterData::searchFilteringOptions() const
415{
416 return d->searchFilterOptions;
417}
418
419QString KUriFilterData::iconName()
420{
421 if (d->wasModified) {
422 d->iconName = lookupIconNameFor(d->url, d->uriType);
423 d->wasModified = false;
424 }
425
426 return d->iconName;
427}
428
429void KUriFilterData::setData( const KUrl& url )
430{
431 d->setData(url, url.url());
432}
433
434void KUriFilterData::setData( const QString& url )
435{
436 d->setData(KUrl(url), url);
437}
438
439bool KUriFilterData::setAbsolutePath( const QString& absPath )
440{
441 // Since a malformed URL could possibly be a relative
442 // URL we tag it as a possible local resource...
443 if( (d->url.protocol().isEmpty() || d->url.isLocalFile()) )
444 {
445 d->absPath = absPath;
446 return true;
447 }
448 return false;
449}
450
451void KUriFilterData::setCheckForExecutables( bool check )
452{
453 d->checkForExecs = check;
454}
455
456void KUriFilterData::setAlternateSearchProviders(const QStringList &providers)
457{
458 d->alternateSearchProviders = providers;
459}
460
461void KUriFilterData::setAlternateDefaultSearchProvider(const QString &provider)
462{
463 d->alternateDefaultSearchProvider = provider;
464}
465
466void KUriFilterData::setDefaultUrlScheme(const QString& scheme)
467{
468 d->defaultUrlScheme = scheme;
469}
470
471void KUriFilterData::setSearchFilteringOptions(SearchFilterOptions options)
472{
473 d->searchFilterOptions = options;
474}
475
476KUriFilterData& KUriFilterData::operator=( const KUrl& url )
477{
478 d->setData(url, url.url());
479 return *this;
480}
481
482KUriFilterData& KUriFilterData::operator=( const QString& url )
483{
484 d->setData(KUrl(url), url);
485 return *this;
486}
487
488/************************* KUriFilterPlugin ******************************/
489
490KUriFilterPlugin::KUriFilterPlugin( const QString & name, QObject *parent )
491 :QObject( parent ), d( 0 )
492{
493 setObjectName( name );
494}
495
496KCModule *KUriFilterPlugin::configModule( QWidget*, const char* ) const
497{
498 return 0;
499}
500
501QString KUriFilterPlugin::configName() const
502{
503 return objectName();
504}
505
506void KUriFilterPlugin::setFilteredUri( KUriFilterData& data, const KUrl& uri ) const
507{
508 data.d->url = uri;
509 data.d->wasModified = true;
510 kDebug(7022) << "Got filtered to:" << uri;
511}
512
513void KUriFilterPlugin::setErrorMsg ( KUriFilterData& data,
514 const QString& errmsg ) const
515{
516 data.d->errMsg = errmsg;
517}
518
519void KUriFilterPlugin::setUriType ( KUriFilterData& data,
520 KUriFilterData::UriTypes type) const
521{
522 data.d->uriType = type;
523 data.d->wasModified = true;
524}
525
526void KUriFilterPlugin::setArguments( KUriFilterData& data,
527 const QString& args ) const
528{
529 data.d->args = args;
530}
531
532void KUriFilterPlugin::setSearchProvider( KUriFilterData &data, const QString& provider,
533 const QString &term, const QChar &separator) const
534{
535 data.d->searchProvider = provider;
536 data.d->searchTerm = term;
537 data.d->searchTermSeparator = separator;
538}
539
540#ifndef KDE_NO_DEPRECATED
541void KUriFilterPlugin::setPreferredSearchProviders(KUriFilterData &data, const ProviderInfoList &providers) const
542{
543 QHashIterator<QString, QPair<QString, QString> > it (providers);
544 while (it.hasNext())
545 {
546 it.next();
547 KUriFilterSearchProvider* searchProvider = data.d->searchProviderMap[it.key()];
548 searchProvider->setName(it.key());
549 searchProvider->setIconName(it.value().second);
550 QStringList keys;
551 const QStringList queries = it.value().first.split(QLatin1Char(','));
552 Q_FOREACH(const QString& query, queries)
553 keys << query.left(query.indexOf(data.d->searchTermSeparator));
554 searchProvider->setKeys(keys);
555 }
556}
557#endif
558
559void KUriFilterPlugin::setSearchProviders(KUriFilterData &data, const QList<KUriFilterSearchProvider*>& providers) const
560{
561 Q_FOREACH(KUriFilterSearchProvider* searchProvider, providers) {
562 data.d->searchProviderList << searchProvider->name();
563 data.d->searchProviderMap.insert(searchProvider->name(), searchProvider);
564 }
565}
566
567QString KUriFilterPlugin::iconNameFor(const KUrl& url, KUriFilterData::UriTypes type) const
568{
569 return lookupIconNameFor(url, type);
570}
571
572QHostInfo KUriFilterPlugin::resolveName(const QString& hostname, unsigned long timeout) const
573{
574 return KIO::HostInfo::lookupHost(hostname, timeout);
575}
576
577
578/******************************* KUriFilter ******************************/
579
580class KUriFilterPrivate
581{
582public:
583 KUriFilterPrivate() {}
584 ~KUriFilterPrivate()
585 {
586 qDeleteAll(plugins);
587 plugins.clear();
588 }
589 QHash<QString, KUriFilterPlugin *> plugins;
590 // NOTE: DO NOT REMOVE this variable! Read the
591 // comments in KUriFilter::loadPlugins to understand why...
592 QStringList pluginNames;
593};
594
595KUriFilter *KUriFilter::self()
596{
597 K_GLOBAL_STATIC(KUriFilter, m_self)
598 return m_self;
599}
600
601KUriFilter::KUriFilter()
602 : d(new KUriFilterPrivate())
603{
604 loadPlugins();
605}
606
607KUriFilter::~KUriFilter()
608{
609 delete d;
610}
611
612bool KUriFilter::filterUri( KUriFilterData& data, const QStringList& filters )
613{
614 bool filtered = false;
615
616 // If no specific filters were requested, iterate through all the plugins.
617 // Otherwise, only use available filters.
618 if( filters.isEmpty() ) {
619 QStringListIterator it (d->pluginNames);
620 while (it.hasNext()) {
621 KUriFilterPlugin* plugin = d->plugins.value(it.next());
622 if (plugin && plugin->filterUri( data ))
623 filtered = true;
624 }
625 } else {
626 QStringListIterator it (filters);
627 while (it.hasNext()) {
628 KUriFilterPlugin* plugin = d->plugins.value(it.next());
629 if (plugin && plugin->filterUri( data ))
630 filtered = true;
631 }
632 }
633
634 return filtered;
635}
636
637bool KUriFilter::filterUri( KUrl& uri, const QStringList& filters )
638{
639 KUriFilterData data(uri);
640 bool filtered = filterUri( data, filters );
641 if( filtered ) uri = data.uri();
642 return filtered;
643}
644
645bool KUriFilter::filterUri( QString& uri, const QStringList& filters )
646{
647 KUriFilterData data(uri);
648 bool filtered = filterUri( data, filters );
649 if( filtered ) uri = data.uri().url();
650 return filtered;
651}
652
653KUrl KUriFilter::filteredUri( const KUrl &uri, const QStringList& filters )
654{
655 KUriFilterData data(uri);
656 filterUri( data, filters );
657 return data.uri();
658}
659
660QString KUriFilter::filteredUri( const QString &uri, const QStringList& filters )
661{
662 KUriFilterData data(uri);
663 filterUri( data, filters );
664 return data.uri().url();
665}
666
667#ifndef KDE_NO_DEPRECATED
668bool KUriFilter::filterSearchUri(KUriFilterData &data)
669{
670 return filterSearchUri(data, (NormalTextFilter | WebShortcutFilter));
671}
672#endif
673
674bool KUriFilter::filterSearchUri(KUriFilterData &data, SearchFilterTypes types)
675{
676 QStringList filters;
677
678 if (types & WebShortcutFilter)
679 filters << "kurisearchfilter";
680
681 if (types & NormalTextFilter)
682 filters << "kuriikwsfilter";
683
684 return filterUri(data, filters);
685}
686
687
688QStringList KUriFilter::pluginNames() const
689{
690 return d->pluginNames;
691}
692
693void KUriFilter::loadPlugins()
694{
695 const KService::List offers = KServiceTypeTrader::self()->query( "KUriFilter/Plugin" );
696
697 // NOTE: Plugin priority is determined by the InitialPreference entry in
698 // the .desktop files, so the trader result is already sorted and should
699 // not be manually sorted.
700 Q_FOREACH (const KService::Ptr &ptr, offers) {
701 KUriFilterPlugin *plugin = ptr->createInstance<KUriFilterPlugin>();
702 if (plugin) {
703 const QString& pluginName = plugin->objectName();
704 Q_ASSERT( !pluginName.isEmpty() );
705 d->plugins.insert(pluginName, plugin );
706 // Needed to ensure the order of filtering is honored since
707 // items are ordered arbitarily in a QHash and QMap always
708 // sorts by keys. Both undesired behavior.
709 d->pluginNames << pluginName;
710 }
711 }
712}
713
714#include "kurifilter.moc"
KCModule
KIconLoader::NoGroup
NoGroup
KIconLoader::global
static KIconLoader * global()
KMimeType::favIconForUrl
static QString favIconForUrl(const KUrl &url)
KMimeType::iconNameForUrl
static QString iconNameForUrl(const KUrl &url, mode_t mode=0)
KServiceTypeTrader::self
static KServiceTypeTrader * self()
KServiceTypeTrader::query
KService::List query(const QString &servicetype, const QString &constraint=QString()) const
KService::serviceByDesktopName
static Ptr serviceByDesktopName(const QString &_name)
KSharedPtr< KService >
KStandardDirs::locate
static QString locate(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
KUriFilterData
This class is a basic messaging class used to exchange filtering information between the filter plugi...
Definition: kurifilter.h:170
KUriFilterData::allQueriesForSearchProvider
QStringList allQueriesForSearchProvider(const QString &provider) const
Returns all the query urls for the given search provider.
Definition: kurifilter.cpp:383
KUriFilterData::absolutePath
QString absolutePath() const
Returns the absolute path if one has already been set.
Definition: kurifilter.cpp:315
KUriFilterData::KUriFilterData
KUriFilterData()
Default constructor.
Definition: kurifilter.cpp:274
KUriFilterData::uri
KUrl uri() const
Returns the filtered or the original URL.
Definition: kurifilter.cpp:300
KUriFilterData::queryForSearchProvider
KUriFilterSearchProvider queryForSearchProvider(const QString &provider) const
Returns information about provider.
Definition: kurifilter.cpp:365
KUriFilterData::setSearchFilteringOptions
void setSearchFilteringOptions(SearchFilterOptions options)
Sets the options used by search filter plugins to filter requests.
Definition: kurifilter.cpp:471
KUriFilterData::setAbsolutePath
bool setAbsolutePath(const QString &abs_path)
Sets the absolute path to be used whenever the supplied data is a relative local URL.
Definition: kurifilter.cpp:439
KUriFilterData::errorMsg
QString errorMsg() const
Returns an error message.
Definition: kurifilter.cpp:305
KUriFilterData::iconNameForPreferredSearchProvider
QString iconNameForPreferredSearchProvider(const QString &provider) const
Returns the icon associated with the given preferred search provider.
Definition: kurifilter.cpp:391
KUriFilterData::setDefaultUrlScheme
void setDefaultUrlScheme(const QString &)
Sets the default scheme used when filtering potentially valid url inputs.
Definition: kurifilter.cpp:466
KUriFilterData::argsAndOptions
QString argsAndOptions() const
Returns the command line options and arguments for a local resource when present.
Definition: kurifilter.cpp:325
KUriFilterData::iconName
QString iconName()
The name of the icon that matches the current filtered URL.
Definition: kurifilter.cpp:419
KUriFilterData::hasAbsolutePath
bool hasAbsolutePath() const
Checks whether the supplied data had an absolute path.
Definition: kurifilter.cpp:320
KUriFilterData::searchFilteringOptions
SearchFilterOptions searchFilteringOptions() const
Returns the specified search filter options.
Definition: kurifilter.cpp:414
KUriFilterData::preferredSearchProviders
QStringList preferredSearchProviders() const
Returns a list of the names of preferred or available search providers.
Definition: kurifilter.cpp:360
KUriFilterData::alternateSearchProviders
QStringList alternateSearchProviders() const
Returns the list of alternate search providers.
Definition: kurifilter.cpp:399
KUriFilterData::checkForExecutables
bool checkForExecutables() const
Definition: kurifilter.cpp:335
KUriFilterData::searchTerm
QString searchTerm() const
Returns the search term portion of the typed string.
Definition: kurifilter.cpp:345
KUriFilterData::typedString
QString typedString() const
The string as typed by the user, before any URL processing is done.
Definition: kurifilter.cpp:340
KUriFilterData::operator=
KUriFilterData & operator=(const KUrl &url)
Overloaded assigenment operator.
Definition: kurifilter.cpp:476
KUriFilterData::UriTypes
UriTypes
Describes the type of the URI that was filtered.
Definition: kurifilter.h:188
KUriFilterData::Error
@ Error
Definition: kurifilter.h:188
KUriFilterData::Blocked
@ Blocked
Definition: kurifilter.h:188
KUriFilterData::NetProtocol
@ NetProtocol
Definition: kurifilter.h:188
KUriFilterData::Shell
@ Shell
Definition: kurifilter.h:188
KUriFilterData::Unknown
@ Unknown
Definition: kurifilter.h:188
KUriFilterData::Executable
@ Executable
Definition: kurifilter.h:188
KUriFilterData::LocalFile
@ LocalFile
Definition: kurifilter.h:188
KUriFilterData::Help
@ Help
Definition: kurifilter.h:188
KUriFilterData::LocalDir
@ LocalDir
Definition: kurifilter.h:188
KUriFilterData::defaultUrlScheme
QString defaultUrlScheme() const
Returns the default protocol to use when filtering potentially valid url inputs.
Definition: kurifilter.cpp:409
KUriFilterData::SearchFilterOptionNone
@ SearchFilterOptionNone
Definition: kurifilter.h:215
KUriFilterData::uriType
UriTypes uriType() const
Returns the URI type.
Definition: kurifilter.cpp:310
KUriFilterData::setAlternateDefaultSearchProvider
void setAlternateDefaultSearchProvider(const QString &provider)
Sets the search provider to use in case no default provider is available.
Definition: kurifilter.cpp:461
KUriFilterData::queryForPreferredSearchProvider
QString queryForPreferredSearchProvider(const QString &provider) const
Returns the web shortcut url for the given preferred search provider.
Definition: kurifilter.cpp:375
KUriFilterData::searchProvider
QString searchProvider() const
Returns the name of the search service provider, e.g.
Definition: kurifilter.cpp:355
KUriFilterData::setCheckForExecutables
void setCheckForExecutables(bool check)
Check whether the provided uri is executable or not.
Definition: kurifilter.cpp:451
KUriFilterData::hasArgsAndOptions
bool hasArgsAndOptions() const
Checks whether the current data is a local resource with command line options and arguments.
Definition: kurifilter.cpp:330
KUriFilterData::setData
void setData(const KUrl &url)
Same as above except the argument is a URL.
Definition: kurifilter.cpp:429
KUriFilterData::~KUriFilterData
~KUriFilterData()
Destructor.
Definition: kurifilter.cpp:295
KUriFilterData::alternateDefaultSearchProvider
QString alternateDefaultSearchProvider() const
Returns the search provider to use when a default provider is not available.
Definition: kurifilter.cpp:404
KUriFilterData::setAlternateSearchProviders
void setAlternateSearchProviders(const QStringList &providers)
Sets a list of search providers to use in case no preferred search providers are available.
Definition: kurifilter.cpp:456
KUriFilterData::searchTermSeparator
QChar searchTermSeparator() const
Returns the character that is used to separate the search term from the keyword.
Definition: kurifilter.cpp:350
KUriFilterPlugin
Base class for URI filter plugins.
Definition: kurifilter.h:646
KUriFilterPlugin::setErrorMsg
void setErrorMsg(KUriFilterData &data, const QString &errmsg) const
Sets the error message in data to errormsg.
Definition: kurifilter.cpp:513
KUriFilterPlugin::configModule
virtual KCModule * configModule(QWidget *, const char *) const
Creates a configuration module for the filter.
Definition: kurifilter.cpp:496
KUriFilterPlugin::configName
virtual QString configName() const
Returns the name of the configuration module for the filter.
Definition: kurifilter.cpp:501
KUriFilterPlugin::setFilteredUri
void setFilteredUri(KUriFilterData &data, const KUrl &uri) const
Sets the URL in data to uri.
Definition: kurifilter.cpp:506
KUriFilterPlugin::setPreferredSearchProviders
void setPreferredSearchProviders(KUriFilterData &data, const ProviderInfoList &providers) const
Sets the name of the preferred search providers in data.
Definition: kurifilter.cpp:541
KUriFilterPlugin::filterUri
virtual bool filterUri(KUriFilterData &data) const =0
Filters a URI.
KUriFilterPlugin::setUriType
void setUriType(KUriFilterData &data, KUriFilterData::UriTypes type) const
Sets the URI type in data to type.
Definition: kurifilter.cpp:519
KUriFilterPlugin::setSearchProviders
void setSearchProviders(KUriFilterData &data, const QList< KUriFilterSearchProvider * > &providers) const
Sets the information about the search providers in data.
Definition: kurifilter.cpp:559
KUriFilterPlugin::resolveName
QHostInfo resolveName(const QString &hostname, unsigned long timeout) const
Performs a DNS lookup for hostname and returns the result.
Definition: kurifilter.cpp:572
KUriFilterPlugin::iconNameFor
QString iconNameFor(const KUrl &url, KUriFilterData::UriTypes type) const
Returns the icon name for the given url and URI type.
Definition: kurifilter.cpp:567
KUriFilterPlugin::setArguments
void setArguments(KUriFilterData &data, const QString &args) const
Sets the arguments and options string in data to args if any were found during filterting.
Definition: kurifilter.cpp:526
KUriFilterPlugin::KUriFilterPlugin
KUriFilterPlugin(const QString &name, QObject *parent=0)
Constructs a filter plugin with a given name.
Definition: kurifilter.cpp:490
KUriFilterPlugin::setSearchProvider
void setSearchProvider(KUriFilterData &data, const QString &provider, const QString &term, const QChar &separator) const
Sets the name of the search provider, the search term and keyword/term separator in data.
Definition: kurifilter.cpp:532
KUriFilterSearchProvider
Class that holds information about a search provider.
Definition: kurifilter.h:51
KUriFilterSearchProvider::setKeys
void setKeys(const QStringList &)
Definition: kurifilter.cpp:183
KUriFilterSearchProvider::keys
QStringList keys() const
Returns all the web shortcut keys associated with this search provider.
Definition: kurifilter.cpp:146
KUriFilterSearchProvider::operator=
KUriFilterSearchProvider & operator=(const KUriFilterSearchProvider &)
Assignment operator.
Definition: kurifilter.cpp:159
KUriFilterSearchProvider::iconName
QString iconName() const
Returns the icon name associated with the search provider when available.
Definition: kurifilter.cpp:136
KUriFilterSearchProvider::~KUriFilterSearchProvider
virtual ~KUriFilterSearchProvider()
Destructor.
Definition: kurifilter.cpp:126
KUriFilterSearchProvider::defaultKey
QString defaultKey() const
Returns the default web shortcut key for this search provider.
Definition: kurifilter.cpp:151
KUriFilterSearchProvider::setName
void setName(const QString &)
Definition: kurifilter.cpp:178
KUriFilterSearchProvider::name
QString name() const
Returns the descriptive name of the search provider, e.g.
Definition: kurifilter.cpp:141
KUriFilterSearchProvider::setDesktopEntryName
void setDesktopEntryName(const QString &)
Definition: kurifilter.cpp:168
KUriFilterSearchProvider::KUriFilterSearchProvider
KUriFilterSearchProvider()
Default constructor.
Definition: kurifilter.cpp:116
KUriFilterSearchProvider::setIconName
void setIconName(const QString &)
Definition: kurifilter.cpp:173
KUriFilterSearchProvider::desktopEntryName
QString desktopEntryName() const
Returns the desktop filename of the search provider without any extension.
Definition: kurifilter.cpp:131
KUriFilter
KUriFilter applies a number of filters to a URI and returns a filtered version if any filter matches.
Definition: kurifilter.h:872
KUriFilter::loadPlugins
void loadPlugins()
Loads all allowed plugins.
Definition: kurifilter.cpp:693
KUriFilter::WebShortcutFilter
@ WebShortcutFilter
Definition: kurifilter.h:882
KUriFilter::NormalTextFilter
@ NormalTextFilter
Definition: kurifilter.h:881
KUriFilter::filterSearchUri
bool filterSearchUri(KUriFilterData &data)
See filterSearchUri(KUriFilterData&, SearchFilterTypes)
Definition: kurifilter.cpp:668
KUriFilter::KUriFilter
KUriFilter()
Constructor.
Definition: kurifilter.cpp:601
KUriFilter::filteredUri
KUrl filteredUri(const KUrl &uri, const QStringList &filters=QStringList())
Returns the filtered URI.
Definition: kurifilter.cpp:653
KUriFilter::~KUriFilter
~KUriFilter()
Destructor.
Definition: kurifilter.cpp:607
KUriFilter::pluginNames
QStringList pluginNames() const
Return a list of the names of all loaded plugins.
Definition: kurifilter.cpp:688
KUriFilter::self
static KUriFilter * self()
Returns an instance of KUriFilter.
Definition: kurifilter.cpp:595
KUriFilter::filterUri
bool filterUri(KUriFilterData &data, const QStringList &filters=QStringList())
Filters data using the specified filters.
Definition: kurifilter.cpp:612
KUrl
KUrl::url
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
KUrl::path
QString path(AdjustPathOption trailing=LeaveTrailingSlash) const
QHash
QList
QMap
QObject
QWidget
K_GLOBAL_STATIC
#define K_GLOBAL_STATIC(TYPE, NAME)
kDebug
#define kDebug
hostinfo_p.h
kdebug.h
kiconloader.h
timeout
int timeout
kmimetype.h
kservicetypetrader.h
kstandarddirs.h
SearchProviderMap
QMap< QString, KUriFilterSearchProvider * > SearchProviderMap
Definition: kurifilter.cpp:37
lookupIconNameFor
static QString lookupIconNameFor(const KUrl &url, KUriFilterData::UriTypes type)
Definition: kurifilter.cpp:40
KUriFilterPluginList
QList< KUriFilterPlugin * > KUriFilterPluginList
Definition: kurifilter.cpp:36
kurifilter.h
Unknown
Unknown
KIO::HostInfo::lookupHost
void lookupHost(const QString &hostName, QObject *receiver, const char *member)
Definition: hostinfo.cpp:240
name
const char * name(StandardAction id)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KIO

Skip menu "KIO"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal