Messagelib

networkurlinterceptormanager.cpp
1 /*
2  SPDX-FileCopyrightText: 2016-2023 Laurent Montel <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "networkurlinterceptormanager.h"
8 #include "networkurlinterceptorpluginmanager.h"
9 
10 using namespace WebEngineViewer;
11 
12 class WebEngineViewer::NetworkUrlInterceptorManagerPrivate
13 {
14 public:
15  NetworkUrlInterceptorManagerPrivate(QWebEngineView *webEngine, KActionCollection *ac, NetworkUrlInterceptorManager *qq)
16  : q(qq)
17  {
18  createInterfaces(webEngine, ac);
19  }
20 
21  Q_REQUIRED_RESULT QList<QAction *> interceptorUrlActions(const WebEngineViewer::WebHitTestResult &result) const;
22  void createInterfaces(QWebEngineView *webEngine, KActionCollection *ac);
24 
25 private:
27 };
28 
29 QList<QAction *> NetworkUrlInterceptorManagerPrivate::interceptorUrlActions(const WebEngineViewer::WebHitTestResult &result) const
30 {
31  QList<QAction *> lstActions;
32  for (WebEngineViewer::NetworkPluginUrlInterceptorInterface *interface : std::as_const(mListInterface)) {
33  lstActions.append(interface->interceptorUrlActions(result));
34  }
35  return lstActions;
36 }
37 
38 void NetworkUrlInterceptorManagerPrivate::createInterfaces(QWebEngineView *webEngine, KActionCollection *ac)
39 {
40  const auto pluginsList = NetworkUrlInterceptorPluginManager::self()->pluginsList();
41  for (NetworkPluginUrlInterceptor *plugin : pluginsList) {
42  if (plugin->isEnabled()) {
43  WebEngineViewer::NetworkPluginUrlInterceptorInterface *interface = plugin->createInterface(webEngine, q);
44  interface->createActions(ac);
45  mListInterface.append(interface);
46  }
47  }
48 }
49 
50 NetworkUrlInterceptorManager::NetworkUrlInterceptorManager(QWebEngineView *webEngine, KActionCollection *ac, QObject *parent)
51  : QObject(parent)
52  , d(new NetworkUrlInterceptorManagerPrivate(webEngine, ac, this))
53 {
54 }
55 
56 NetworkUrlInterceptorManager::~NetworkUrlInterceptorManager() = default;
57 
58 QVector<WebEngineViewer::NetworkPluginUrlInterceptorInterface *> NetworkUrlInterceptorManager::interfaceList() const
59 {
60  return d->mListInterface;
61 }
62 
63 QList<QAction *> NetworkUrlInterceptorManager::interceptorUrlActions(const WebEngineViewer::WebHitTestResult &result) const
64 {
65  return d->interceptorUrlActions(result);
66 }
void append(const T &value)
The WebHitTestResult class.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Fri Mar 24 2023 04:08:31 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.