digiKam
Loading...
Searching...
No Matches
htmlwidget_qwebengine.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2009-12-01
7 * Description : Widget for displaying HTML in the backends - QtWebEngine version
8 *
9 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2009-2011 by Michael G. Hansen <mike at mghansen dot de>
11 * SPDX-FileCopyrightText: 2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QTimer>
22#include <QWebEngineView>
23#include <QWebEnginePage>
24
25// Local includes
26
27#include "geoifacecommon.h"
28#include "geoifacetypes.h"
29#include "geocoordinates.h"
30
31namespace Digikam
32{
33
34class HTMLWidget;
35
36class HTMLWidgetPage : public QWebEnginePage
37{
38 Q_OBJECT
39
40public:
41
42 explicit HTMLWidgetPage(HTMLWidget* const parent = nullptr);
43 ~HTMLWidgetPage() override = default;
44
45Q_SIGNALS:
46
47 void signalHTMLEvents(const QStringList& events);
48 void signalMessageEvent(const QString& message);
49
50private Q_SLOTS:
51
52 void slotSendHTMLEvents();
53
54protected:
55
56 void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel, const QString&, int, const QString&) override;
57
58private:
59
60 QStringList m_events;
61 QString m_message;
62 QTimer* m_timer = nullptr;
63};
64
65// -------------------------------------------------------------------
66
67class HTMLWidget : public QWebEngineView
68{
69 Q_OBJECT
70
71public:
72
73 explicit HTMLWidget(QWidget* const parent = nullptr);
74 ~HTMLWidget() override;
75
76 void loadInitialHTML(const QString& initialHTML);
77 QVariant runScript(const QString& scriptCode, bool async = true);
78 bool runScript2Coordinates(const QString& scriptCode, GeoCoordinates* const coordinates);
79 void mouseModeChanged(const GeoMouseModes mouseMode);
80 void setSelectionRectangle(const GeoCoordinates::Pair& searchCoordinates);
82 void centerOn(const qreal west, const qreal north, const qreal east, const qreal south,
83 const bool useSaneZoomLevel = true);
84 void setSharedGeoIfaceObject(GeoIfaceSharedData* const sharedData);
85
86Q_SIGNALS:
87
88 void signalHTMLEvents(const QStringList& events);
89 void signalMessageEvent(const QString& message);
92
93protected:
94
95 bool eventFilter(QObject*, QEvent*) override;
96
97protected Q_SLOTS:
98
99 void slotHTMLCompleted(bool ok);
100 void progress(int progress);
101
102private:
103
104 class Private;
105 Private* const d = nullptr;
106
107 GeoIfaceSharedData* s = nullptr;
108};
109
110} // namespace Digikam
Definition geocoordinates.h:44
QPair< GeoCoordinates, GeoCoordinates > Pair
Definition geocoordinates.h:59
Definition geoifacecommon.h:203
Definition htmlwidget_qwebengine.h:37
void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel, const QString &, int, const QString &) override
Definition htmlwidget_qwebengine.cpp:46
void signalMessageEvent(const QString &message)
void signalHTMLEvents(const QStringList &events)
~HTMLWidgetPage() override=default
Definition htmlwidget_qwebengine.h:68
QVariant runScript(const QString &scriptCode, bool async=true)
Wrapper around executeScript to catch more errors.
Definition htmlwidget_qwebengine.cpp:169
void loadInitialHTML(const QString &initialHTML)
~HTMLWidget() override
Definition htmlwidget_qwebengine.cpp:148
void signalMessageEvent(const QString &message)
void selectionHasBeenMade(const Digikam::GeoCoordinates::Pair &coordinatesRect)
void slotHTMLCompleted(bool ok)
Definition htmlwidget_qwebengine.cpp:158
void setSharedGeoIfaceObject(GeoIfaceSharedData *const sharedData)
Definition htmlwidget_qwebengine.cpp:494
void setSelectionRectangle(const GeoCoordinates::Pair &searchCoordinates)
Definition htmlwidget_qwebengine.cpp:437
void progress(int progress)
Definition htmlwidget_qwebengine.cpp:153
void centerOn(const qreal west, const qreal north, const qreal east, const qreal south, const bool useSaneZoomLevel=true)
Definition htmlwidget_qwebengine.cpp:476
void mouseModeChanged(const GeoMouseModes mouseMode)
Definition htmlwidget_qwebengine.cpp:460
void removeSelectionRectangle()
Definition htmlwidget_qwebengine.cpp:455
void signalHTMLEvents(const QStringList &events)
bool runScript2Coordinates(const QString &scriptCode, GeoCoordinates *const coordinates)
Execute a script which returns coordinates and parse these.
Definition htmlwidget_qwebengine.cpp:211
void signalJavaScriptReady()
bool eventFilter(QObject *, QEvent *) override
Definition htmlwidget_qwebengine.cpp:218
Definition datefolderview.cpp:34