File indexing completed on 2024-04-28 03:55:32

0001 /*
0002     SPDX-FileCopyrightText: 2000-2001, 2003, 2010 Dawit Alemayehu <adawit at kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "kurifilter.h"
0007 #include <QMap>
0008 
0009 typedef QMap<QString, KUriFilterSearchProvider *> SearchProviderMap;
0010 class KUriFilterDataPrivate
0011 {
0012 public:
0013     explicit KUriFilterDataPrivate(const QUrl &u, const QString &typedUrl)
0014         : checkForExecs(true)
0015         , wasModified(true)
0016         , uriType(KUriFilterData::Unknown)
0017         , searchFilterOptions(KUriFilterData::SearchFilterOptionNone)
0018         , url(u.adjusted(QUrl::NormalizePathSegments))
0019         , typedString(typedUrl)
0020     {
0021     }
0022 
0023     ~KUriFilterDataPrivate()
0024     {
0025     }
0026 
0027     static QString lookupIconNameFor(const QUrl &url, KUriFilterData::UriTypes type);
0028 
0029     void setData(const QUrl &u, const QString &typedUrl)
0030     {
0031         checkForExecs = true;
0032         wasModified = true;
0033         uriType = KUriFilterData::Unknown;
0034         searchFilterOptions = KUriFilterData::SearchFilterOptionNone;
0035 
0036         url = u.adjusted(QUrl::NormalizePathSegments);
0037         typedString = typedUrl;
0038 
0039         errMsg.clear();
0040         iconName.clear();
0041         absPath.clear();
0042         args.clear();
0043         searchTerm.clear();
0044         searchProvider.clear();
0045         searchTermSeparator = QChar();
0046         alternateDefaultSearchProvider.clear();
0047         alternateSearchProviders.clear();
0048         searchProviderMap.clear();
0049         defaultUrlScheme.clear();
0050     }
0051 
0052     KUriFilterDataPrivate(KUriFilterDataPrivate *data)
0053     {
0054         wasModified = data->wasModified;
0055         checkForExecs = data->checkForExecs;
0056         uriType = data->uriType;
0057         searchFilterOptions = data->searchFilterOptions;
0058 
0059         url = data->url;
0060         typedString = data->typedString;
0061 
0062         errMsg = data->errMsg;
0063         iconName = data->iconName;
0064         absPath = data->absPath;
0065         args = data->args;
0066         searchTerm = data->searchTerm;
0067         searchTermSeparator = data->searchTermSeparator;
0068         searchProvider = data->searchProvider;
0069         alternateDefaultSearchProvider = data->alternateDefaultSearchProvider;
0070         alternateSearchProviders = data->alternateSearchProviders;
0071         searchProviderMap = data->searchProviderMap;
0072         defaultUrlScheme = data->defaultUrlScheme;
0073     }
0074 
0075     bool checkForExecs;
0076     bool wasModified;
0077     KUriFilterData::UriTypes uriType;
0078     KUriFilterData::SearchFilterOptions searchFilterOptions;
0079 
0080     QUrl url;
0081     QString typedString;
0082     QString errMsg;
0083     QString iconName;
0084     QString absPath;
0085     QString args;
0086     QString searchTerm;
0087     QString searchProvider;
0088     QString alternateDefaultSearchProvider;
0089     QString defaultUrlScheme;
0090     QChar searchTermSeparator;
0091 
0092     QStringList alternateSearchProviders;
0093     QStringList searchProviderList;
0094     SearchProviderMap searchProviderMap;
0095 };