Attica 5.109.0
providermanager.h
1/*
2 This file is part of KDE.
3
4 SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org>
5 SPDX-FileCopyrightText: 2009 Frederik Gladhorn <gladhorn@kde.org>
6
7 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
8*/
9
10#ifndef ATTICA_PROVIDERMANAGER_H
11#define ATTICA_PROVIDERMANAGER_H
12
13#include <QNetworkReply>
14#include <QUrl>
15
16#include "attica_export.h"
17#include "provider.h"
18
22namespace Attica
23{
59class ATTICA_EXPORT ProviderManager : public QObject
60{
61 Q_OBJECT
62
63public:
64 enum ProviderFlag {
65 NoFlags = 0x0,
66 DisablePlugins = 0x1,
67 };
68 Q_DECLARE_FLAGS(ProviderFlags, ProviderFlag)
69
70 ProviderManager(const ProviderFlags &flags = NoFlags);
71 ~ProviderManager() override;
72
77
83 QList<QUrl> defaultProviderFiles();
84
113
114 void removeProviderFileFromDefaultProviders(const QUrl &url);
115
119 void setAuthenticationSuppressed(bool suppressed);
120
124 void clear();
125
129 void addProviderFromXml(const QString &providerXml);
130 void addProviderFile(const QUrl &file);
131 QList<QUrl> providerFiles() const;
132
136 QList<Provider> providers() const;
137
138#if ATTICA_ENABLE_DEPRECATED_SINCE(5, 23)
142 ATTICA_DEPRECATED_VERSION(5, 23, "Use ProviderManager::contains(const QUrl&)")
143 bool contains(const QString &provider) const;
144#endif
145
149 bool contains(const QUrl &provider) const;
150
154 Provider providerByUrl(const QUrl &url) const;
155
159 Provider providerFor(const QUrl &url) const;
160
161Q_SIGNALS:
162 void providerAdded(const Attica::Provider &provider);
163 void defaultProvidersLoaded();
164 void authenticationCredentialsMissing(const Provider &provider);
165 void failedToLoad(const QUrl &provider, QNetworkReply::NetworkError error);
166
167private Q_SLOTS:
168 ATTICA_NO_EXPORT void fileFinished(const QString &url);
169 ATTICA_NO_EXPORT void authenticate(QNetworkReply *, QAuthenticator *);
170 ATTICA_NO_EXPORT void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator);
171 ATTICA_NO_EXPORT void slotLoadDefaultProvidersInternal();
172
173private:
174 ProviderManager(const ProviderManager &other) = delete;
175 ProviderManager &operator=(const ProviderManager &other) = delete;
176
177 ATTICA_NO_EXPORT void initNetworkAccesssManager();
178 ATTICA_NO_EXPORT PlatformDependent *loadPlatformDependent(const ProviderFlags &flags);
179
180 ATTICA_NO_EXPORT void parseProviderFile(const QString &xmlString, const QUrl &url);
181
182 class Private;
183 Private *const d;
184};
185
186Q_DECLARE_OPERATORS_FOR_FLAGS(ProviderManager::ProviderFlags)
187
188}
189
190#endif
Attica ProviderManager.
Definition providermanager.h:60
Provider providerByUrl(const QUrl &url) const
QList< Provider > providers() const
void setAuthenticationSuppressed(bool suppressed)
Suppresses the authentication, so that the application can take care of authenticating itself.
QList< QUrl > defaultProviderFiles()
The list of provider files that get loaded by loadDefaultProviders.
void clear()
Remove all providers and provider files that have been loaded.
void addProviderFromXml(const QString &providerXml)
Parse a xml file containing a provider description.
void addProviderFileToDefaultProviders(const QUrl &url)
Add a provider file to the default providers (xml that contains provider descriptions).
bool contains(const QUrl &provider) const
void loadDefaultProviders()
Load available providers from configuration.
Provider providerFor(const QUrl &url) const
The Provider class represents one Open Collaboration Service provider.
Definition provider.h:97
The Attica namespace,.
Definition activity.h:21