File indexing completed on 2024-05-12 15:42:12
0001 /* 0002 This file is part of the KDE project 0003 SPDX-FileCopyrightText: 2002, 2003 Dawit Alemayehu <adawit@kde.org> 0004 SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org> 0005 SPDX-FileCopyrightText: 1999 Yves Arrouye <yves@realnames.com> 0006 0007 Advanced web shortcuts 0008 SPDX-FileCopyrightText: 2001 Andreas Hochsteger <e9625392@student.tuwien.ac.at> 0009 0010 SPDX-License-Identifier: GPL-2.0-or-later 0011 */ 0012 0013 #ifndef KURIIKWSFILTERENG_H 0014 #define KURIIKWSFILTERENG_H 0015 0016 #include "searchproviderregistry.h" 0017 #include <QMap> 0018 #include <QStringList> 0019 #include <QUrl> 0020 0021 class QTextCodec; 0022 0023 class SearchProvider; 0024 0025 class KURISearchFilterEngine 0026 { 0027 public: 0028 typedef QMap<QString, QString> SubstMap; 0029 0030 KURISearchFilterEngine(); 0031 ~KURISearchFilterEngine(); 0032 0033 QByteArray name() const; 0034 char keywordDelimiter() const; 0035 QString defaultSearchEngine() const; 0036 QStringList favoriteEngineList() const; 0037 SearchProvider *webShortcutQuery(const QString &typedString, QString &searchTerm) const; 0038 SearchProvider *autoWebSearchQuery(const QString &typedString, const QString &defaultShortcut = QString()) const; 0039 QUrl formatResult(const QString &url, const QString &cset1, const QString &cset2, const QString &query, bool isMalformed) const; 0040 0041 SearchProviderRegistry *registry(); 0042 0043 static KURISearchFilterEngine *self(); 0044 void loadConfig(); 0045 0046 static QStringList defaultSearchProviders(); 0047 0048 protected: 0049 QUrl formatResult(const QString &url, const QString &cset1, const QString &cset2, const QString &query, bool isMalformed, SubstMap &map) const; 0050 0051 private: 0052 KURISearchFilterEngine(const KURISearchFilterEngine &) = delete; 0053 KURISearchFilterEngine &operator=(const KURISearchFilterEngine &) = delete; 0054 0055 QStringList modifySubstitutionMap(SubstMap &map, const QString &query) const; 0056 QString substituteQuery(const QString &url, SubstMap &map, const QString &userquery, QTextCodec *codec) const; 0057 0058 SearchProviderRegistry m_registry; 0059 QString m_defaultWebShortcut; 0060 QStringList m_preferredWebShortcuts; 0061 bool m_bWebShortcutsEnabled; 0062 bool m_bUseOnlyPreferredWebShortcuts; 0063 char m_cKeywordDelimiter; 0064 }; 0065 0066 #endif // KURIIKWSFILTERENG_H