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

KIO

  • sources
  • kde-4.14
  • kdelibs
  • 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 
36 typedef QList<KUriFilterPlugin *> KUriFilterPluginList;
37 typedef QMap<QString, KUriFilterSearchProvider*> SearchProviderMap;
38 
39 
40 static 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 
99 class KUriFilterSearchProvider::KUriFilterSearchProviderPrivate
100 {
101 public:
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 
116 KUriFilterSearchProvider::KUriFilterSearchProvider()
117  :d(new KUriFilterSearchProvider::KUriFilterSearchProviderPrivate)
118 {
119 }
120 
121 KUriFilterSearchProvider::KUriFilterSearchProvider(const KUriFilterSearchProvider& other)
122  :d(new KUriFilterSearchProvider::KUriFilterSearchProviderPrivate(*(other.d)))
123 {
124 }
125 
126 KUriFilterSearchProvider::~KUriFilterSearchProvider()
127 {
128  delete d;
129 }
130 
131 QString KUriFilterSearchProvider::desktopEntryName() const
132 {
133  return d->desktopEntryName;
134 }
135 
136 QString KUriFilterSearchProvider::iconName() const
137 {
138  return d->iconName;
139 }
140 
141 QString KUriFilterSearchProvider::name() const
142 {
143  return d->name;
144 }
145 
146 QStringList KUriFilterSearchProvider::keys() const
147 {
148  return d->keys;
149 }
150 
151 QString KUriFilterSearchProvider::defaultKey() const
152 {
153  if (d->keys.isEmpty())
154  return QString();
155 
156  return d->keys.first();
157 }
158 
159 KUriFilterSearchProvider& 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 
168 void KUriFilterSearchProvider::setDesktopEntryName(const QString& desktopEntryName)
169 {
170  d->desktopEntryName = desktopEntryName;
171 }
172 
173 void KUriFilterSearchProvider::setIconName(const QString& iconName)
174 {
175  d->iconName = iconName;
176 }
177 
178 void KUriFilterSearchProvider::setName(const QString& name)
179 {
180  d->name = name;
181 }
182 
183 void KUriFilterSearchProvider::setKeys(const QStringList& keys)
184 {
185  d->keys = keys;
186 }
187 
188 class KUriFilterDataPrivate
189 {
190 public:
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 
274 KUriFilterData::KUriFilterData()
275  :d( new KUriFilterDataPrivate( KUrl(), QString() ) )
276 {
277 }
278 
279 KUriFilterData::KUriFilterData( const KUrl& url )
280  :d( new KUriFilterDataPrivate( url, url.url() ) )
281 {
282 }
283 
284 KUriFilterData::KUriFilterData( const QString& url )
285  :d( new KUriFilterDataPrivate( KUrl(url), url ) )
286 {
287 }
288 
289 
290 KUriFilterData::KUriFilterData( const KUriFilterData& other )
291  :d( new KUriFilterDataPrivate( other.d ) )
292 {
293 }
294 
295 KUriFilterData::~KUriFilterData()
296 {
297  delete d;
298 }
299 
300 KUrl KUriFilterData::uri() const
301 {
302  return d->url;
303 }
304 
305 QString KUriFilterData::errorMsg() const
306 {
307  return d->errMsg;
308 }
309 
310 KUriFilterData::UriTypes KUriFilterData::uriType() const
311 {
312  return d->uriType;
313 }
314 
315 QString KUriFilterData::absolutePath() const
316 {
317  return d->absPath;
318 }
319 
320 bool KUriFilterData::hasAbsolutePath() const
321 {
322  return !d->absPath.isEmpty();
323 }
324 
325 QString KUriFilterData::argsAndOptions() const
326 {
327  return d->args;
328 }
329 
330 bool KUriFilterData::hasArgsAndOptions() const
331 {
332  return !d->args.isEmpty();
333 }
334 
335 bool KUriFilterData::checkForExecutables() const
336 {
337  return d->checkForExecs;
338 }
339 
340 QString KUriFilterData::typedString() const
341 {
342  return d->typedString;
343 }
344 
345 QString KUriFilterData::searchTerm() const
346 {
347  return d->searchTerm;
348 }
349 
350 QChar KUriFilterData::searchTermSeparator() const
351 {
352  return d->searchTermSeparator;
353 }
354 
355 QString KUriFilterData::searchProvider() const
356 {
357  return d->searchProvider;
358 }
359 
360 QStringList KUriFilterData::preferredSearchProviders() const
361 {
362  return d->searchProviderList;
363 }
364 
365 KUriFilterSearchProvider 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 
375 QString 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 
383 QStringList 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 
391 QString 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 
399 QStringList KUriFilterData::alternateSearchProviders() const
400 {
401  return d->alternateSearchProviders;
402 }
403 
404 QString KUriFilterData::alternateDefaultSearchProvider() const
405 {
406  return d->alternateDefaultSearchProvider;
407 }
408 
409 QString KUriFilterData::defaultUrlScheme() const
410 {
411  return d->defaultUrlScheme;
412 }
413 
414 KUriFilterData::SearchFilterOptions KUriFilterData::searchFilteringOptions() const
415 {
416  return d->searchFilterOptions;
417 }
418 
419 QString 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 
429 void KUriFilterData::setData( const KUrl& url )
430 {
431  d->setData(url, url.url());
432 }
433 
434 void KUriFilterData::setData( const QString& url )
435 {
436  d->setData(KUrl(url), url);
437 }
438 
439 bool 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 
451 void KUriFilterData::setCheckForExecutables( bool check )
452 {
453  d->checkForExecs = check;
454 }
455 
456 void KUriFilterData::setAlternateSearchProviders(const QStringList &providers)
457 {
458  d->alternateSearchProviders = providers;
459 }
460 
461 void KUriFilterData::setAlternateDefaultSearchProvider(const QString &provider)
462 {
463  d->alternateDefaultSearchProvider = provider;
464 }
465 
466 void KUriFilterData::setDefaultUrlScheme(const QString& scheme)
467 {
468  d->defaultUrlScheme = scheme;
469 }
470 
471 void KUriFilterData::setSearchFilteringOptions(SearchFilterOptions options)
472 {
473  d->searchFilterOptions = options;
474 }
475 
476 KUriFilterData& KUriFilterData::operator=( const KUrl& url )
477 {
478  d->setData(url, url.url());
479  return *this;
480 }
481 
482 KUriFilterData& KUriFilterData::operator=( const QString& url )
483 {
484  d->setData(KUrl(url), url);
485  return *this;
486 }
487 
488 /************************* KUriFilterPlugin ******************************/
489 
490 KUriFilterPlugin::KUriFilterPlugin( const QString & name, QObject *parent )
491  :QObject( parent ), d( 0 )
492 {
493  setObjectName( name );
494 }
495 
496 KCModule *KUriFilterPlugin::configModule( QWidget*, const char* ) const
497 {
498  return 0;
499 }
500 
501 QString KUriFilterPlugin::configName() const
502 {
503  return objectName();
504 }
505 
506 void 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 
513 void KUriFilterPlugin::setErrorMsg ( KUriFilterData& data,
514  const QString& errmsg ) const
515 {
516  data.d->errMsg = errmsg;
517 }
518 
519 void KUriFilterPlugin::setUriType ( KUriFilterData& data,
520  KUriFilterData::UriTypes type) const
521 {
522  data.d->uriType = type;
523  data.d->wasModified = true;
524 }
525 
526 void KUriFilterPlugin::setArguments( KUriFilterData& data,
527  const QString& args ) const
528 {
529  data.d->args = args;
530 }
531 
532 void 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
541 void 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 
559 void 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 
567 QString KUriFilterPlugin::iconNameFor(const KUrl& url, KUriFilterData::UriTypes type) const
568 {
569  return lookupIconNameFor(url, type);
570 }
571 
572 QHostInfo KUriFilterPlugin::resolveName(const QString& hostname, unsigned long timeout) const
573 {
574  return KIO::HostInfo::lookupHost(hostname, timeout);
575 }
576 
577 
578 /******************************* KUriFilter ******************************/
579 
580 class KUriFilterPrivate
581 {
582 public:
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 
595 KUriFilter *KUriFilter::self()
596 {
597  K_GLOBAL_STATIC(KUriFilter, m_self)
598  return m_self;
599 }
600 
601 KUriFilter::KUriFilter()
602  : d(new KUriFilterPrivate())
603 {
604  loadPlugins();
605 }
606 
607 KUriFilter::~KUriFilter()
608 {
609  delete d;
610 }
611 
612 bool 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 
637 bool 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 
645 bool 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 
653 KUrl KUriFilter::filteredUri( const KUrl &uri, const QStringList& filters )
654 {
655  KUriFilterData data(uri);
656  filterUri( data, filters );
657  return data.uri();
658 }
659 
660 QString 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
668 bool KUriFilter::filterSearchUri(KUriFilterData &data)
669 {
670  return filterSearchUri(data, (NormalTextFilter | WebShortcutFilter));
671 }
672 #endif
673 
674 bool 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 
688 QStringList KUriFilter::pluginNames() const
689 {
690  return d->pluginNames;
691 }
692 
693 void 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"
KUriFilterData::searchProvider
QString searchProvider() const
Returns the name of the search service provider, e.g.
Definition: kurifilter.cpp:355
SearchProviderMap
QMap< QString, KUriFilterSearchProvider * > SearchProviderMap
Definition: kurifilter.cpp:37
KUriFilterPlugin
Base class for URI filter plugins.
Definition: kurifilter.h:645
KUriFilterData::checkForExecutables
bool checkForExecutables() const
Definition: kurifilter.cpp:335
KUriFilterData::errorMsg
QString errorMsg() const
Returns an error message.
Definition: kurifilter.cpp:305
KSharedPtr
Definition: kprotocolmanager.h:31
QString::indexOf
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
lookupIconNameFor
static QString lookupIconNameFor(const KUrl &url, KUriFilterData::UriTypes type)
Definition: kurifilter.cpp:40
QWidget
KUriFilterData::queryForPreferredSearchProvider
QString queryForPreferredSearchProvider(const QString &provider) const
Returns the web shortcut url for the given preferred search provider.
Definition: kurifilter.cpp:375
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
kdebug.h
KUriFilterData::searchTermSeparator
QChar searchTermSeparator() const
Returns the character that is used to separate the search term from the keyword.
Definition: kurifilter.cpp:350
KUriFilterData::Error
Definition: kurifilter.h:188
KUriFilterSearchProvider::operator=
KUriFilterSearchProvider & operator=(const KUriFilterSearchProvider &)
Assignment operator.
Definition: kurifilter.cpp:159
kmimetype.h
KUriFilterSearchProvider::setIconName
void setIconName(const QString &)
Definition: kurifilter.cpp:173
KUriFilterData::hasAbsolutePath
bool hasAbsolutePath() const
Checks whether the supplied data had an absolute path.
Definition: kurifilter.cpp:320
KUriFilterData::setAlternateDefaultSearchProvider
void setAlternateDefaultSearchProvider(const QString &provider)
Sets the search provider to use in case no default provider is available.
Definition: kurifilter.cpp:461
KIconLoader::global
static KIconLoader * global()
QHashIterator::key
const Key & key() const
KService::serviceByDesktopName
static Ptr serviceByDesktopName(const QString &_name)
KServiceTypeTrader::self
static KServiceTypeTrader * self()
KUriFilterSearchProvider::desktopEntryName
QString desktopEntryName() const
Returns the desktop filename of the search provider without any extension.
Definition: kurifilter.cpp:131
KUriFilterData::SearchFilterOptionNone
Definition: kurifilter.h:215
QChar
QHashIterator::hasNext
bool hasNext() const
KUriFilterData::argsAndOptions
QString argsAndOptions() const
Returns the command line options and arguments for a local resource when present. ...
Definition: kurifilter.cpp:325
KUriFilterSearchProvider::name
QString name() const
Returns the descriptive name of the search provider, e.g.
Definition: kurifilter.cpp:141
K_GLOBAL_STATIC
#define K_GLOBAL_STATIC(TYPE, NAME)
KStandardDirs::locate
static QString locate(const char *type, const QString &filename, const KComponentData &cData=KGlobal::mainComponent())
KUriFilterPluginList
QList< KUriFilterPlugin * > KUriFilterPluginList
Definition: kurifilter.cpp:36
QMap< QString, KUriFilterSearchProvider * >
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
KUriFilterSearchProvider::KUriFilterSearchProvider
KUriFilterSearchProvider()
Default constructor.
Definition: kurifilter.cpp:116
KUriFilterData::searchTerm
QString searchTerm() const
Returns the search term portion of the typed string.
Definition: kurifilter.cpp:345
KUriFilterSearchProvider::keys
QStringList keys() const
Returns all the web shortcut keys associated with this search provider.
Definition: kurifilter.cpp:146
KUriFilterData::alternateDefaultSearchProvider
QString alternateDefaultSearchProvider() const
Returns the search provider to use when a default provider is not available.
Definition: kurifilter.cpp:404
KIO::HostInfo::lookupHost
void lookupHost(const QString &hostName, QObject *receiver, const char *member)
Definition: hostinfo.cpp:240
kiconloader.h
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
KIconLoader::NoGroup
KUriFilterData::iconName
QString iconName()
The name of the icon that matches the current filtered URL.
Definition: kurifilter.cpp:419
kDebug
static QDebug kDebug(bool cond, int area=KDE_DEFAULT_DEBUG_AREA)
KUriFilterData::setDefaultUrlScheme
void setDefaultUrlScheme(const QString &)
Sets the default scheme used when filtering potentially valid url inputs.
Definition: kurifilter.cpp:466
KUriFilterData::allQueriesForSearchProvider
QStringList allQueriesForSearchProvider(const QString &provider) const
Returns all the query urls for the given search provider.
Definition: kurifilter.cpp:383
KUriFilterData::iconNameForPreferredSearchProvider
QString iconNameForPreferredSearchProvider(const QString &provider) const
Returns the icon associated with the given preferred search provider.
Definition: kurifilter.cpp:391
kurifilter.h
KUriFilter::KUriFilter
KUriFilter()
Constructor.
Definition: kurifilter.cpp:601
KUrl
KUriFilter::WebShortcutFilter
Definition: kurifilter.h:882
QString::lastIndexOf
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const
QString::clear
void clear()
KUriFilterData::setData
void setData(const KUrl &url)
Same as above except the argument is a URL.
Definition: kurifilter.cpp:429
kservicetypetrader.h
KUriFilterSearchProvider::setKeys
void setKeys(const QStringList &)
Definition: kurifilter.cpp:183
KUriFilterPlugin::setFilteredUri
void setFilteredUri(KUriFilterData &data, const KUrl &uri) const
Sets the URL in data to uri.
Definition: kurifilter.cpp:506
KUriFilterSearchProvider::defaultKey
QString defaultKey() const
Returns the default web shortcut key for this search provider.
Definition: kurifilter.cpp:151
QHash
KUriFilter::filterUri
bool filterUri(KUriFilterData &data, const QStringList &filters=QStringList())
Filters data using the specified filters.
Definition: kurifilter.cpp:612
QObject
KUriFilterSearchProvider
Class that holds information about a search provider.
Definition: kurifilter.h:50
KUriFilterPlugin::setSearchProviders
void setSearchProviders(KUriFilterData &data, const QList< KUriFilterSearchProvider * > &providers) const
Sets the information about the search providers in data.
Definition: kurifilter.cpp:559
QList::isEmpty
bool isEmpty() const
QObject::setObjectName
void setObjectName(const QString &name)
QHashIterator
QString::isEmpty
bool isEmpty() const
KUriFilterData::Executable
Definition: kurifilter.h:188
KUriFilter::loadPlugins
void loadPlugins()
Loads all allowed plugins.
Definition: kurifilter.cpp:693
Unknown
KUriFilterPlugin::configName
virtual QString configName() const
Returns the name of the configuration module for the filter.
Definition: kurifilter.cpp:501
KUriFilterData::UriTypes
UriTypes
Describes the type of the URI that was filtered.
Definition: kurifilter.h:188
QString
QList
KUrl::path
QString path(AdjustPathOption trailing=LeaveTrailingSlash) const
QStringList
KUriFilter
KUriFilter applies a number of filters to a URI and returns a filtered version if any filter matches...
Definition: kurifilter.h:871
KUriFilterData
This class is a basic messaging class used to exchange filtering information between the filter plugi...
Definition: kurifilter.h:169
KImageIO::types
QStringList types(Mode mode=Writing)
Returns a list of all KImageIO supported formats.
Definition: kimageio.cpp:82
KUriFilter::~KUriFilter
~KUriFilter()
Destructor.
Definition: kurifilter.cpp:607
KUriFilter::self
static KUriFilter * self()
Returns an instance of KUriFilter.
Definition: kurifilter.cpp:595
QHashIterator::next
Item next()
QLatin1Char
KUriFilter::NormalTextFilter
Definition: kurifilter.h:881
KUriFilter::pluginNames
QStringList pluginNames() const
Return a list of the names of all loaded plugins.
Definition: kurifilter.cpp:688
KUriFilterData::absolutePath
QString absolutePath() const
Returns the absolute path if one has already been set.
Definition: kurifilter.cpp:315
KUriFilterData::Blocked
Definition: kurifilter.h:188
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
KUriFilterPlugin::KUriFilterPlugin
KUriFilterPlugin(const QString &name, QObject *parent=0)
Constructs a filter plugin with a given name.
Definition: kurifilter.cpp:490
KServiceTypeTrader::query
KService::List query(const QString &servicetype, const QString &constraint=QString()) const
KUriFilterData::queryForSearchProvider
KUriFilterSearchProvider queryForSearchProvider(const QString &provider) const
Returns information about provider.
Definition: kurifilter.cpp:365
KUriFilterSearchProvider::~KUriFilterSearchProvider
virtual ~KUriFilterSearchProvider()
Destructor.
Definition: kurifilter.cpp:126
KUriFilterData::~KUriFilterData
~KUriFilterData()
Destructor.
Definition: kurifilter.cpp:295
QString::mid
QString mid(int position, int n) const
KUriFilterData::searchFilteringOptions
SearchFilterOptions searchFilteringOptions() const
Returns the specified search filter options.
Definition: kurifilter.cpp:414
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::iconName
QString iconName() const
Returns the icon name associated with the search provider when available.
Definition: kurifilter.cpp:136
QLatin1String
kstandarddirs.h
KUriFilterData::KUriFilterData
KUriFilterData()
Default constructor.
Definition: kurifilter.cpp:274
KUriFilterData::Shell
Definition: kurifilter.h:188
KUriFilterData::LocalFile
Definition: kurifilter.h:188
KUriFilter::filteredUri
KUrl filteredUri(const KUrl &uri, const QStringList &filters=QStringList())
Returns the filtered URI.
Definition: kurifilter.cpp:653
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
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::NetProtocol
Definition: kurifilter.h:188
QString::left
QString left(int n) const
KUriFilterPlugin::filterUri
virtual bool filterUri(KUriFilterData &data) const =0
Filters a URI.
KUriFilterPlugin::configModule
virtual KCModule * configModule(QWidget *, const char *) const
Creates a configuration module for the filter.
Definition: kurifilter.cpp:496
KUriFilterSearchProvider::setName
void setName(const QString &)
Definition: kurifilter.cpp:178
KUriFilter::filterSearchUri
bool filterSearchUri(KUriFilterData &data)
See filterSearchUri(KUriFilterData&, SearchFilterTypes)
Definition: kurifilter.cpp:668
KUriFilterData::operator=
KUriFilterData & operator=(const KUrl &url)
Overloaded assigenment operator.
Definition: kurifilter.cpp:476
KUriFilterData::Help
Definition: kurifilter.h:188
KUrl::url
QString url(AdjustPathOption trailing=LeaveTrailingSlash) const
QHashIterator::value
const T & value() const
KUriFilterPlugin::setPreferredSearchProviders
void setPreferredSearchProviders(KUriFilterData &data, const ProviderInfoList &providers) const
Sets the name of the preferred search providers in data.
Definition: kurifilter.cpp:541
KUriFilterData::setSearchFilteringOptions
void setSearchFilteringOptions(SearchFilterOptions options)
Sets the options used by search filter plugins to filter requests.
Definition: kurifilter.cpp:471
KUriFilterSearchProvider::setDesktopEntryName
void setDesktopEntryName(const QString &)
Definition: kurifilter.cpp:168
hostinfo_p.h
KUriFilterData::uriType
UriTypes uriType() const
Returns the URI type.
Definition: kurifilter.cpp:310
KUriFilterPlugin::setErrorMsg
void setErrorMsg(KUriFilterData &data, const QString &errmsg) const
Sets the error message in data to errormsg.
Definition: kurifilter.cpp:513
KUriFilterData::Unknown
Definition: kurifilter.h:188
KService::createInstance
T * createInstance(QObject *parent=0, const QVariantList &args=QVariantList(), QString *error=0) const
KUriFilterData::uri
KUrl uri() const
Returns the filtered or the original URL.
Definition: kurifilter.cpp:300
QHostInfo
KCModule
KUriFilterData::LocalDir
Definition: kurifilter.h:188
KUriFilterData::setCheckForExecutables
void setCheckForExecutables(bool check)
Check whether the provided uri is executable or not.
Definition: kurifilter.cpp:451
KUriFilterPlugin::setUriType
void setUriType(KUriFilterData &data, KUriFilterData::UriTypes type) const
Sets the URI type in data to type.
Definition: kurifilter.cpp:519
KUriFilterData::typedString
QString typedString() const
The string as typed by the user, before any URL processing is done.
Definition: kurifilter.cpp:340
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::defaultUrlScheme
QString defaultUrlScheme() const
Returns the default protocol to use when filtering potentially valid url inputs.
Definition: kurifilter.cpp:409
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:24:53 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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

Search



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