KIO
kurifilter.h
Go to the documentation of this file.
00001 /* 00002 * This file is part of the KDE libraries 00003 * Copyright (C) 2000-2001,2003,2010 Dawit Alemayehu <adawit at kde.org> 00004 * 00005 * Original author 00006 * Copyright (C) 2000 Yves Arrouye <yves@realnames.com> 00007 * 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Library General Public 00011 * License as published by the Free Software Foundation; either 00012 * version 2 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Library General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Library General Public License 00020 * along with this library; see the file COPYING.LIB. If not, write to 00021 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00022 * Boston, MA 02110-1301, USA. 00023 **/ 00024 00025 #ifndef KURIFILTER_H 00026 #define KURIFILTER_H 00027 00028 #include <kio/kio_export.h> 00029 #include <kurl.h> 00030 00031 #include <QtCore/QObject> 00032 #include <QtCore/QHash> 00033 #include <QtCore/QPair> 00034 #include <QtCore/QStringList> 00035 00036 #ifdef Q_OS_WIN 00037 #undef ERROR 00038 #endif 00039 00040 class KUriFilterPrivate; 00041 class KUriFilterDataPrivate; 00042 class KCModule; 00043 00049 class KIO_EXPORT KUriFilterSearchProvider 00050 { 00051 public: 00055 KUriFilterSearchProvider(); 00056 00060 KUriFilterSearchProvider(const KUriFilterSearchProvider&); 00061 00065 virtual ~KUriFilterSearchProvider(); 00066 00073 QString desktopEntryName() const; 00074 00081 QString name() const; 00082 00086 QString iconName() const; 00087 00093 QStringList keys() const; 00094 00103 QString defaultKey() const; 00104 00108 KUriFilterSearchProvider& operator=(const KUriFilterSearchProvider&); 00109 00110 protected: 00111 void setDesktopEntryName(const QString&); 00112 void setIconName(const QString&); 00113 void setKeys(const QStringList&); 00114 void setName(const QString&); 00115 00116 private: 00117 friend class KUriFilterPlugin; 00118 class KUriFilterSearchProviderPrivate; 00119 KUriFilterSearchProviderPrivate * const d; 00120 }; 00121 00168 class KIO_EXPORT KUriFilterData 00169 { 00170 public: 00187 enum UriTypes { NetProtocol=0, LocalFile, LocalDir, Executable, Help, Shell, Blocked, Error, Unknown }; 00188 00212 enum SearchFilterOption 00213 { 00214 SearchFilterOptionNone = 0x0, 00215 RetrieveSearchProvidersOnly = 0x01, 00216 RetrievePreferredSearchProvidersOnly = 0x02, 00217 RetrieveAvailableSearchProvidersOnly = (RetrievePreferredSearchProvidersOnly | RetrieveSearchProvidersOnly) 00218 }; 00219 Q_DECLARE_FLAGS(SearchFilterOptions, SearchFilterOption) 00220 00221 00226 KUriFilterData(); 00227 00233 explicit KUriFilterData( const KUrl& url ); 00234 00240 explicit KUriFilterData( const QString& url ); 00241 00249 KUriFilterData( const KUriFilterData& other ); 00250 00254 ~KUriFilterData(); 00255 00264 KUrl uri() const; 00265 00275 QString errorMsg() const; 00276 00285 UriTypes uriType() const; 00286 00294 QString absolutePath() const; 00295 00303 bool hasAbsolutePath() const; 00304 00311 QString argsAndOptions() const; 00312 00319 bool hasArgsAndOptions() const; 00320 00325 bool checkForExecutables() const; 00326 00330 QString typedString() const; 00331 00341 QString searchTerm() const; 00342 00353 QChar searchTermSeparator() const; 00354 00364 QString searchProvider() const; 00365 00390 QStringList preferredSearchProviders() const; 00391 00402 KUriFilterSearchProvider queryForSearchProvider(const QString& provider) const; 00403 00417 QString queryForPreferredSearchProvider(const QString &provider) const; 00418 00431 QStringList allQueriesForSearchProvider(const QString& provider) const; 00432 00442 QString iconNameForPreferredSearchProvider(const QString &provider) const; 00443 00456 QStringList alternateSearchProviders() const; 00457 00468 QString alternateDefaultSearchProvider() const; 00469 00478 QString defaultUrlScheme() const; 00479 00488 SearchFilterOptions searchFilteringOptions() const; 00489 00496 QString iconName(); 00497 00505 void setCheckForExecutables (bool check); 00506 00515 void setData( const KUrl& url ); 00516 00526 void setData( const QString& url ); 00527 00542 bool setAbsolutePath( const QString& abs_path ); 00543 00557 void setAlternateSearchProviders(const QStringList &providers); 00558 00571 void setAlternateDefaultSearchProvider(const QString &provider); 00572 00587 void setDefaultUrlScheme(const QString&); 00588 00604 void setSearchFilteringOptions(SearchFilterOptions options); 00605 00614 KUriFilterData& operator=( const KUrl& url ); 00615 00624 KUriFilterData& operator=( const QString& url ); 00625 00626 private: 00627 friend class KUriFilterPlugin; 00628 KUriFilterDataPrivate * const d; 00629 }; 00630 00631 00644 class KIO_EXPORT KUriFilterPlugin : public QObject 00645 { 00646 Q_OBJECT 00647 00648 public: 00656 #ifndef KDE_NO_DEPRECATED 00657 KDE_DEPRECATED typedef QHash<QString, QPair<QString, QString> > ProviderInfoList; 00658 #endif 00659 00666 explicit KUriFilterPlugin( const QString &name, QObject *parent = 0 ); 00667 00674 virtual bool filterUri( KUriFilterData& data ) const = 0; 00675 00684 virtual KCModule *configModule( QWidget*, const char* ) const; 00685 00691 virtual QString configName() const; 00692 00693 protected: 00697 void setFilteredUri ( KUriFilterData& data, const KUrl& uri ) const; 00698 00702 void setErrorMsg ( KUriFilterData& data, const QString& errmsg ) const; 00703 00707 void setUriType ( KUriFilterData& data, KUriFilterData::UriTypes type) const; 00708 00713 void setArguments( KUriFilterData& data, const QString& args ) const; 00714 00721 void setSearchProvider( KUriFilterData& data, const QString& provider, 00722 const QString& term, const QChar& separator) const; 00723 00730 #ifndef KDE_NO_DEPRECATED 00731 KDE_DEPRECATED void setPreferredSearchProviders(KUriFilterData& data, const ProviderInfoList& providers) const; 00732 #endif 00733 00739 void setSearchProviders(KUriFilterData& data, const QList<KUriFilterSearchProvider*>& providers) const; 00740 00746 QString iconNameFor(const KUrl& url, KUriFilterData::UriTypes type) const; 00747 00748 private: 00749 class KUriFilterPluginPrivate * const d; 00750 }; 00751 00848 class KIO_EXPORT KUriFilter 00849 { 00850 public: 00857 enum SearchFilterType { 00858 NormalTextFilter = 0x01, 00859 WebShortcutFilter = 0x02 00860 }; 00861 Q_DECLARE_FLAGS(SearchFilterTypes, SearchFilterType) 00862 00863 00866 ~KUriFilter (); 00867 00871 static KUriFilter* self(); 00872 00884 bool filterUri( KUriFilterData& data, const QStringList& filters = QStringList() ); 00885 00897 bool filterUri( KUrl &uri, const QStringList& filters = QStringList() ); 00898 00910 bool filterUri( QString &uri, const QStringList& filters = QStringList() ); 00911 00923 KUrl filteredUri( const KUrl &uri, const QStringList& filters = QStringList() ); 00924 00936 QString filteredUri( const QString &uri, const QStringList& filters = QStringList() ); 00937 00944 #ifndef KDE_NO_DEPRECATED 00945 KDE_DEPRECATED bool filterSearchUri(KUriFilterData &data); 00946 #endif 00947 00964 bool filterSearchUri(KUriFilterData &data, SearchFilterTypes types); 00965 00971 QStringList pluginNames() const; 00972 00973 protected: 00974 00981 KUriFilter(); 00982 00988 void loadPlugins(); 00989 00990 private: 00991 KUriFilterPrivate * const d; 00992 }; 00993 00994 Q_DECLARE_OPERATORS_FOR_FLAGS(KUriFilterData::SearchFilterOptions) 00995 Q_DECLARE_OPERATORS_FOR_FLAGS(KUriFilter::SearchFilterTypes) 00996 00997 #endif
KDE 4.6 API Reference