File indexing completed on 2024-04-28 03:55:43
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 "kuriikwsfiltereng_private_export.h" 0017 #include "searchproviderregistry_p.h" 0018 #include <QMap> 0019 #include <QObject> 0020 #include <QStringList> 0021 #include <QUrl> 0022 0023 class QStringEncoder; 0024 class SearchProvider; 0025 0026 namespace KIO 0027 { 0028 class KURIIKWSFILTERENG_PRIVATE_EXPORT KURISearchFilterEngine : public QObject 0029 { 0030 Q_OBJECT 0031 public: 0032 typedef QMap<QString, QString> SubstMap; 0033 0034 QByteArray name() const; 0035 char keywordDelimiter() const; 0036 QString defaultSearchEngine() const; 0037 QStringList favoriteEngineList() const; 0038 SearchProvider *webShortcutQuery(const QString &typedString, QString &searchTerm) const; 0039 SearchProvider *autoWebSearchQuery(const QString &typedString, const QString &defaultShortcut = QString()) const; 0040 QUrl formatResult(const QString &url, const QString &cset1, const QString &cset2, const QString &query, bool isMalformed) const; 0041 0042 SearchProviderRegistry *registry(); 0043 0044 static KURISearchFilterEngine *self(); 0045 static QStringList defaultSearchProviders(); 0046 0047 protected: 0048 QUrl formatResult(const QString &url, const QString &cset1, const QString &cset2, const QString &query, bool isMalformed, SubstMap &map) const; 0049 0050 private: 0051 KURISearchFilterEngine(); 0052 ~KURISearchFilterEngine(); 0053 0054 Q_SLOT void configure(); 0055 Q_DISABLE_COPY_MOVE(KURISearchFilterEngine) 0056 0057 QStringList modifySubstitutionMap(SubstMap &map, const QString &query) const; 0058 QString substituteQuery(const QString &url, SubstMap &map, const QString &userquery, QStringEncoder &codec) const; 0059 0060 SearchProviderRegistry m_registry; 0061 QString m_defaultWebShortcut; 0062 QStringList m_preferredWebShortcuts; 0063 bool m_bWebShortcutsEnabled; 0064 bool m_bUseOnlyPreferredWebShortcuts; 0065 char m_cKeywordDelimiter; 0066 bool m_reloadRegistry = false; // We would load it twice otherwise 0067 }; 0068 } 0069 0070 #endif // KURIIKWSFILTERENG_H