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 class QHostInfo; 00044 00050 class KIO_EXPORT KUriFilterSearchProvider 00051 { 00052 public: 00056 KUriFilterSearchProvider(); 00057 00061 KUriFilterSearchProvider(const KUriFilterSearchProvider&); 00062 00066 virtual ~KUriFilterSearchProvider(); 00067 00074 QString desktopEntryName() const; 00075 00082 QString name() const; 00083 00087 QString iconName() const; 00088 00094 QStringList keys() const; 00095 00104 QString defaultKey() const; 00105 00109 KUriFilterSearchProvider& operator=(const KUriFilterSearchProvider&); 00110 00111 protected: 00112 void setDesktopEntryName(const QString&); 00113 void setIconName(const QString&); 00114 void setKeys(const QStringList&); 00115 void setName(const QString&); 00116 00117 private: 00118 friend class KUriFilterPlugin; 00119 class KUriFilterSearchProviderPrivate; 00120 KUriFilterSearchProviderPrivate * const d; 00121 }; 00122 00169 class KIO_EXPORT KUriFilterData 00170 { 00171 public: 00188 enum UriTypes { NetProtocol=0, LocalFile, LocalDir, Executable, Help, Shell, Blocked, Error, Unknown }; 00189 00213 enum SearchFilterOption 00214 { 00215 SearchFilterOptionNone = 0x0, 00216 RetrieveSearchProvidersOnly = 0x01, 00217 RetrievePreferredSearchProvidersOnly = 0x02, 00218 RetrieveAvailableSearchProvidersOnly = (RetrievePreferredSearchProvidersOnly | RetrieveSearchProvidersOnly) 00219 }; 00220 Q_DECLARE_FLAGS(SearchFilterOptions, SearchFilterOption) 00221 00222 00227 KUriFilterData(); 00228 00234 explicit KUriFilterData( const KUrl& url ); 00235 00241 explicit KUriFilterData( const QString& url ); 00242 00250 KUriFilterData( const KUriFilterData& other ); 00251 00255 ~KUriFilterData(); 00256 00265 KUrl uri() const; 00266 00276 QString errorMsg() const; 00277 00286 UriTypes uriType() const; 00287 00295 QString absolutePath() const; 00296 00304 bool hasAbsolutePath() const; 00305 00312 QString argsAndOptions() const; 00313 00320 bool hasArgsAndOptions() const; 00321 00326 bool checkForExecutables() const; 00327 00331 QString typedString() const; 00332 00342 QString searchTerm() const; 00343 00354 QChar searchTermSeparator() const; 00355 00365 QString searchProvider() const; 00366 00391 QStringList preferredSearchProviders() const; 00392 00403 KUriFilterSearchProvider queryForSearchProvider(const QString& provider) const; 00404 00418 QString queryForPreferredSearchProvider(const QString &provider) const; 00419 00432 QStringList allQueriesForSearchProvider(const QString& provider) const; 00433 00443 QString iconNameForPreferredSearchProvider(const QString &provider) const; 00444 00457 QStringList alternateSearchProviders() const; 00458 00469 QString alternateDefaultSearchProvider() const; 00470 00479 QString defaultUrlScheme() const; 00480 00489 SearchFilterOptions searchFilteringOptions() const; 00490 00497 QString iconName(); 00498 00506 void setCheckForExecutables (bool check); 00507 00516 void setData( const KUrl& url ); 00517 00527 void setData( const QString& url ); 00528 00543 bool setAbsolutePath( const QString& abs_path ); 00544 00558 void setAlternateSearchProviders(const QStringList &providers); 00559 00572 void setAlternateDefaultSearchProvider(const QString &provider); 00573 00588 void setDefaultUrlScheme(const QString&); 00589 00605 void setSearchFilteringOptions(SearchFilterOptions options); 00606 00615 KUriFilterData& operator=( const KUrl& url ); 00616 00625 KUriFilterData& operator=( const QString& url ); 00626 00627 private: 00628 friend class KUriFilterPlugin; 00629 KUriFilterDataPrivate * const d; 00630 }; 00631 00632 00645 class KIO_EXPORT KUriFilterPlugin : public QObject 00646 { 00647 Q_OBJECT 00648 00649 public: 00657 #ifndef KDE_NO_DEPRECATED 00658 KDE_DEPRECATED typedef QHash<QString, QPair<QString, QString> > ProviderInfoList; 00659 #endif 00660 00667 explicit KUriFilterPlugin( const QString &name, QObject *parent = 0 ); 00668 00675 virtual bool filterUri( KUriFilterData& data ) const = 0; 00676 00685 virtual KCModule *configModule( QWidget*, const char* ) const; 00686 00692 virtual QString configName() const; 00693 00694 protected: 00698 void setFilteredUri ( KUriFilterData& data, const KUrl& uri ) const; 00699 00703 void setErrorMsg ( KUriFilterData& data, const QString& errmsg ) const; 00704 00708 void setUriType ( KUriFilterData& data, KUriFilterData::UriTypes type) const; 00709 00714 void setArguments( KUriFilterData& data, const QString& args ) const; 00715 00722 void setSearchProvider( KUriFilterData& data, const QString& provider, 00723 const QString& term, const QChar& separator) const; 00724 00731 #ifndef KDE_NO_DEPRECATED 00732 KDE_DEPRECATED void setPreferredSearchProviders(KUriFilterData& data, const ProviderInfoList& providers) const; 00733 #endif 00734 00740 void setSearchProviders(KUriFilterData& data, const QList<KUriFilterSearchProvider*>& providers) const; 00741 00747 QString iconNameFor(const KUrl& url, KUriFilterData::UriTypes type) const; 00748 00765 QHostInfo resolveName (const QString& hostname, unsigned long timeout) const; 00766 00767 private: 00768 class KUriFilterPluginPrivate * const d; 00769 }; 00770 00871 class KIO_EXPORT KUriFilter 00872 { 00873 public: 00880 enum SearchFilterType { 00881 NormalTextFilter = 0x01, 00882 WebShortcutFilter = 0x02 00883 }; 00884 Q_DECLARE_FLAGS(SearchFilterTypes, SearchFilterType) 00885 00886 00889 ~KUriFilter (); 00890 00894 static KUriFilter* self(); 00895 00907 bool filterUri( KUriFilterData& data, const QStringList& filters = QStringList() ); 00908 00920 bool filterUri( KUrl &uri, const QStringList& filters = QStringList() ); 00921 00933 bool filterUri( QString &uri, const QStringList& filters = QStringList() ); 00934 00946 KUrl filteredUri( const KUrl &uri, const QStringList& filters = QStringList() ); 00947 00959 QString filteredUri( const QString &uri, const QStringList& filters = QStringList() ); 00960 00967 #ifndef KDE_NO_DEPRECATED 00968 KDE_DEPRECATED bool filterSearchUri(KUriFilterData &data); 00969 #endif 00970 00987 bool filterSearchUri(KUriFilterData &data, SearchFilterTypes types); 00988 00994 QStringList pluginNames() const; 00995 00996 protected: 00997 01004 KUriFilter(); 01005 01011 void loadPlugins(); 01012 01013 private: 01014 KUriFilterPrivate * const d; 01015 }; 01016 01017 Q_DECLARE_OPERATORS_FOR_FLAGS(KUriFilterData::SearchFilterOptions) 01018 Q_DECLARE_OPERATORS_FOR_FLAGS(KUriFilter::SearchFilterTypes) 01019 01020 #endif
KDE 4.7 API Reference