summaryrefslogtreecommitdiffstats
path: root/src/webengine
diff options
context:
space:
mode:
authorValentin Fokin <fokinv@inf.u-szeged.hu>2018-01-23 13:46:43 +0100
committerPeter Varga <pvarga@inf.u-szeged.hu>2018-02-02 07:43:06 +0000
commit11e90d520a782e1d5da1ed965ab070f868199032 (patch)
tree531d64f5353e26552038d793ac8195f30d3ce85c /src/webengine
parenta66db09c6efe0d4dcc6d6a3cc93a000207da2175 (diff)
Add EditFlags and MediaFlags to Quick and Widget API
- EditFlags shows the available edit actions - MediaFlags shows the status and available actions of the current media element - Update the documentations - Register ContextMenuRequest 1.1 - Update plugins.qmltypes [ChangeLog][QtWebEngine][QtWebEngineWidgets] Add EditFlags and MediaFlags to the APIs Change-Id: Ia7603696a291df5465c5e612adc2456f5f6cb479 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webengine')
-rw-r--r--src/webengine/api/qquickwebenginecontextmenurequest.cpp116
-rw-r--r--src/webengine/api/qquickwebenginecontextmenurequest_p.h38
-rw-r--r--src/webengine/plugin/plugin.cpp2
-rw-r--r--src/webengine/plugin/plugins.qmltypes66
4 files changed, 216 insertions, 6 deletions
diff --git a/src/webengine/api/qquickwebenginecontextmenurequest.cpp b/src/webengine/api/qquickwebenginecontextmenurequest.cpp
index c53e28d93..dea89b9ab 100644
--- a/src/webengine/api/qquickwebenginecontextmenurequest.cpp
+++ b/src/webengine/api/qquickwebenginecontextmenurequest.cpp
@@ -42,6 +42,7 @@
QT_BEGIN_NAMESPACE
+// Match MediaType enum
ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaTypeNone,
QQuickWebEngineContextMenuRequest::MediaTypeNone)
ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaTypeImage,
@@ -57,6 +58,52 @@ ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaTypeFile,
ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaTypePlugin,
QQuickWebEngineContextMenuRequest::MediaTypePlugin)
+// Match MediaFlag enum
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaNone,
+ QQuickWebEngineContextMenuRequest::MediaNone)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaInError,
+ QQuickWebEngineContextMenuRequest::MediaInError)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaPaused,
+ QQuickWebEngineContextMenuRequest::MediaPaused)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaMuted,
+ QQuickWebEngineContextMenuRequest::MediaMuted)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaLoop,
+ QQuickWebEngineContextMenuRequest::MediaLoop)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaCanSave,
+ QQuickWebEngineContextMenuRequest::MediaCanSave)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaHasAudio,
+ QQuickWebEngineContextMenuRequest::MediaHasAudio)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaCanToggleControls,
+ QQuickWebEngineContextMenuRequest::MediaCanToggleControls)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaControls,
+ QQuickWebEngineContextMenuRequest::MediaControls)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaCanPrint,
+ QQuickWebEngineContextMenuRequest::MediaCanPrint)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::MediaCanRotate,
+ QQuickWebEngineContextMenuRequest::MediaCanRotate)
+
+// Match EditFlag enum
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanDoNone,
+ QQuickWebEngineContextMenuRequest::CanDoNone)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanUndo,
+ QQuickWebEngineContextMenuRequest::CanUndo)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanRedo,
+ QQuickWebEngineContextMenuRequest::CanRedo)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanCut,
+ QQuickWebEngineContextMenuRequest::CanCut)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanCopy,
+ QQuickWebEngineContextMenuRequest::CanCopy)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanPaste,
+ QQuickWebEngineContextMenuRequest::CanPaste)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanDelete,
+ QQuickWebEngineContextMenuRequest::CanDelete)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanSelectAll,
+ QQuickWebEngineContextMenuRequest::CanSelectAll)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanTranslate,
+ QQuickWebEngineContextMenuRequest::CanTranslate)
+ASSERT_ENUMS_MATCH(QtWebEngineCore::WebEngineContextMenuData::CanEditRichly,
+ QQuickWebEngineContextMenuRequest::CanEditRichly)
+
/*!
\qmltype ContextMenuRequest
\instantiates QQuickWebEngineContextMenuRequest
@@ -272,4 +319,73 @@ void QQuickWebEngineContextMenuRequest::setAccepted(bool accepted)
m_accepted = accepted;
}
+/*!
+ \qmlproperty flags ContextMenuRequest::mediaFlags
+ \readonly
+ \since QtWebEngine 1.7
+
+ The current media element's status and its available operations.
+ \c MediaNone if the selected web page content is not a media element.
+
+ \value ContextMenuRequest.MediaNone
+ Not a media element.
+ \value ContextMenuRequest.MediaInError
+ An error occurred.
+ \value ContextMenuRequest.MediaPaused
+ Media is paused.
+ \value ContextMenuRequest.MediaMuted
+ Media is muted.
+ \value ContextMenuRequest.MediaLoop
+ Media can be looped.
+ \value ContextMenuRequest.MediaCanSave
+ Media can be saved.
+ \value ContextMenuRequest.MediaHasAudio
+ Media has audio.
+ \value ContextMenuRequest.MediaCanToggleControls
+ Media can show controls.
+ \value ContextMenuRequest.MediaControls
+ Media controls are shown.
+ \value ContextMenuRequest.MediaCanPrint
+ Media is printable.
+ \value ContextMenuRequest.MediaCanRotate
+ Media is rotatable.
+*/
+QQuickWebEngineContextMenuRequest::MediaFlags QQuickWebEngineContextMenuRequest::mediaFlags() const
+{
+ return static_cast<QQuickWebEngineContextMenuRequest::MediaFlags>(m_data->mediaFlags());
+}
+
+/*!
+ \qmlproperty flags ContextMenuRequest::editFlags
+ \readonly
+ \since QtWebEngine 1.7
+
+ The available edit operations in the current context or \c CanDoNone if no actions are available.
+
+ \value ContextMenuRequest.CanDoNone
+ Nothing can be done.
+ \value ContextMenuRequest.CanUndo
+ Undo is available.
+ \value ContextMenuRequest.CanRedo
+ Redo is available.
+ \value ContextMenuRequest.CanCut
+ Cut is available.
+ \value ContextMenuRequest.CanCopy
+ Copy is available.
+ \value ContextMenuRequest.CanPaste
+ Paste is available.
+ \value ContextMenuRequest.CanDelete
+ Delete is available.
+ \value ContextMenuRequest.CanSelectAll
+ Select All is available.
+ \value ContextMenuRequest.CanTranslate
+ Translate is available.
+ \value ContextMenuRequest.CanEditRichly
+ Context is richly editable.
+*/
+QQuickWebEngineContextMenuRequest::EditFlags QQuickWebEngineContextMenuRequest::editFlags() const
+{
+ return static_cast<QQuickWebEngineContextMenuRequest::EditFlags>(m_data->editFlags());
+}
+
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebenginecontextmenurequest_p.h b/src/webengine/api/qquickwebenginecontextmenurequest_p.h
index 3d2de14a2..5f0b0c282 100644
--- a/src/webengine/api/qquickwebenginecontextmenurequest_p.h
+++ b/src/webengine/api/qquickwebenginecontextmenurequest_p.h
@@ -75,6 +75,38 @@ public:
};
Q_ENUM(MediaType)
+ // Must match QWebEngineCore::WebEngineContextMenuData::MediaFlags:
+ enum MediaFlag {
+ MediaNone = 0x0,
+ MediaInError = 0x1,
+ MediaPaused = 0x2,
+ MediaMuted = 0x4,
+ MediaLoop = 0x8,
+ MediaCanSave = 0x10,
+ MediaHasAudio = 0x20,
+ MediaCanToggleControls = 0x40,
+ MediaControls = 0x80,
+ MediaCanPrint = 0x100,
+ MediaCanRotate = 0x200,
+ };
+ Q_DECLARE_FLAGS(MediaFlags, MediaFlag)
+
+
+ // Must match QWebEngineCore::WebEngineContextMenuData::EditFlags:
+ enum EditFlag {
+ CanDoNone = 0x0,
+ CanUndo = 0x1,
+ CanRedo = 0x2,
+ CanCut = 0x4,
+ CanCopy = 0x8,
+ CanPaste = 0x10,
+ CanDelete = 0x20,
+ CanSelectAll = 0x40,
+ CanTranslate = 0x80,
+ CanEditRichly = 0x100,
+ };
+ Q_DECLARE_FLAGS(EditFlags, EditFlag)
+
Q_PROPERTY(int x READ x CONSTANT FINAL)
Q_PROPERTY(int y READ y CONSTANT FINAL)
Q_PROPERTY(QString selectedText READ selectedText CONSTANT FINAL)
@@ -86,6 +118,8 @@ public:
Q_PROPERTY(QString misspelledWord READ misspelledWord CONSTANT FINAL)
Q_PROPERTY(QStringList spellCheckerSuggestions READ spellCheckerSuggestions CONSTANT FINAL)
Q_PROPERTY(bool accepted READ isAccepted WRITE setAccepted FINAL)
+ Q_PROPERTY(MediaFlags mediaFlags READ mediaFlags CONSTANT FINAL REVISION 1)
+ Q_PROPERTY(EditFlags editFlags READ editFlags CONSTANT FINAL REVISION 1)
~QQuickWebEngineContextMenuRequest();
int x() const;
@@ -100,11 +134,15 @@ public:
QStringList spellCheckerSuggestions() const;
bool isAccepted() const;
void setAccepted(bool accepted);
+ MediaFlags mediaFlags() const;
+ EditFlags editFlags() const;
private:
QQuickWebEngineContextMenuRequest(const QtWebEngineCore::WebEngineContextMenuData &data, QObject *parent = nullptr);
QScopedPointer<QtWebEngineCore::WebEngineContextMenuData> m_data;
bool m_accepted;
+ Q_FLAGS(MediaFlags)
+ Q_FLAGS(EditFlags)
friend class QQuickWebEngineView;
friend class QQuickWebEngineViewPrivate;
Q_DISABLE_COPY(QQuickWebEngineContextMenuRequest)
diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp
index 03ce5a332..5f9d16158 100644
--- a/src/webengine/plugin/plugin.cpp
+++ b/src/webengine/plugin/plugin.cpp
@@ -125,6 +125,8 @@ public:
qmlRegisterUncreatableType<QQuickWebEngineContextMenuRequest>(uri, 1, 4, "ContextMenuRequest",
msgUncreatableType("ContextMenuRequest"));
+ qmlRegisterUncreatableType<QQuickWebEngineContextMenuRequest, 1>(uri, 1, 7, "ContextMenuRequest",
+ msgUncreatableType("ContextMenuRequest"));
qmlRegisterUncreatableType<QQuickWebEngineAuthenticationDialogRequest>(uri, 1, 4, "AuthenticationDialogRequest",
msgUncreatableType("AuthenticationDialogRequest"));
qmlRegisterUncreatableType<QQuickWebEngineJavaScriptDialogRequest>(uri, 1, 4, "JavaScriptDialogRequest",
diff --git a/src/webengine/plugin/plugins.qmltypes b/src/webengine/plugin/plugins.qmltypes
index b57aa4498..43d7d9064 100644
--- a/src/webengine/plugin/plugins.qmltypes
+++ b/src/webengine/plugin/plugins.qmltypes
@@ -84,9 +84,12 @@ Module {
Component {
name: "QQuickWebEngineContextMenuRequest"
prototype: "QObject"
- exports: ["QtWebEngine/ContextMenuRequest 1.4"]
+ exports: [
+ "QtWebEngine/ContextMenuRequest 1.4",
+ "QtWebEngine/ContextMenuRequest 1.7"
+ ]
isCreatable: false
- exportMetaObjectRevisions: [0]
+ exportMetaObjectRevisions: [0, 1]
Enum {
name: "MediaType"
values: {
@@ -99,6 +102,37 @@ Module {
"MediaTypePlugin": 6
}
}
+ Enum {
+ name: "MediaFlags"
+ values: {
+ "MediaNone": 0,
+ "MediaInError": 1,
+ "MediaPaused": 2,
+ "MediaMuted": 4,
+ "MediaLoop": 8,
+ "MediaCanSave": 16,
+ "MediaHasAudio": 32,
+ "MediaCanToggleControls": 64,
+ "MediaControls": 128,
+ "MediaCanPrint": 256,
+ "MediaCanRotate": 512
+ }
+ }
+ Enum {
+ name: "EditFlags"
+ values: {
+ "CanDoNone": 0,
+ "CanUndo": 1,
+ "CanRedo": 2,
+ "CanCut": 4,
+ "CanCopy": 8,
+ "CanPaste": 16,
+ "CanDelete": 32,
+ "CanSelectAll": 64,
+ "CanTranslate": 128,
+ "CanEditRichly": 256
+ }
+ }
Property { name: "x"; type: "int"; isReadonly: true }
Property { name: "y"; type: "int"; isReadonly: true }
Property { name: "selectedText"; type: "string"; isReadonly: true }
@@ -110,6 +144,8 @@ Module {
Property { name: "misspelledWord"; type: "string"; isReadonly: true }
Property { name: "spellCheckerSuggestions"; type: "QStringList"; isReadonly: true }
Property { name: "accepted"; type: "bool" }
+ Property { name: "mediaFlags"; revision: 1; type: "MediaFlags"; isReadonly: true }
+ Property { name: "editFlags"; revision: 1; type: "EditFlags"; isReadonly: true }
}
Component {
name: "QQuickWebEngineDownloadItem"
@@ -198,6 +234,7 @@ Module {
Property { name: "interruptReasonString"; revision: 4; type: "string"; isReadonly: true }
Property { name: "isFinished"; revision: 5; type: "bool"; isReadonly: true }
Property { name: "isPaused"; revision: 5; type: "bool"; isReadonly: true }
+ Property { name: "isSavePageDownload"; revision: 6; type: "bool"; isReadonly: true }
Signal { name: "savePageFormatChanged"; revision: 2 }
Signal { name: "mimeTypeChanged"; revision: 1 }
Signal { name: "typeChanged"; revision: 3 }
@@ -527,10 +564,11 @@ Module {
"QtWebEngine/WebEngineSettings 1.3",
"QtWebEngine/WebEngineSettings 1.4",
"QtWebEngine/WebEngineSettings 1.5",
- "QtWebEngine/WebEngineSettings 1.6"
+ "QtWebEngine/WebEngineSettings 1.6",
+ "QtWebEngine/WebEngineSettings 1.7"
]
isCreatable: false
- exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5]
+ exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6]
Enum {
name: "UnknownUrlSchemePolicy"
values: {
@@ -565,6 +603,8 @@ Module {
Property { name: "allowWindowActivationFromJavaScript"; revision: 5; type: "bool" }
Property { name: "showScrollBars"; revision: 5; type: "bool" }
Property { name: "unknownUrlSchemePolicy"; revision: 6; type: "UnknownUrlSchemePolicy" }
+ Property { name: "playbackRequiresUserGesture"; revision: 6; type: "bool" }
+ Property { name: "webRTCPublicInterfacesOnly"; revision: 6; type: "bool" }
Signal { name: "fullScreenSupportEnabledChanged"; revision: 1 }
Signal { name: "screenCaptureEnabledChanged"; revision: 2 }
Signal { name: "webGLEnabledChanged"; revision: 2 }
@@ -578,6 +618,8 @@ Module {
Signal { name: "allowWindowActivationFromJavaScriptChanged"; revision: 5 }
Signal { name: "showScrollBarsChanged"; revision: 5 }
Signal { name: "unknownUrlSchemePolicyChanged"; revision: 6 }
+ Signal { name: "playbackRequiresUserGestureChanged"; revision: 6 }
+ Signal { name: "webRTCPublicInterfacesOnlyChanged"; revision: 6 }
}
Component {
name: "QQuickWebEngineSingleton"
@@ -606,9 +648,10 @@ Module {
"QtWebEngine/WebEngineView 1.3",
"QtWebEngine/WebEngineView 1.4",
"QtWebEngine/WebEngineView 1.5",
- "QtWebEngine/WebEngineView 1.6"
+ "QtWebEngine/WebEngineView 1.6",
+ "QtWebEngine/WebEngineView 1.7"
]
- exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6]
+ exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5, 6, 7]
Enum {
name: "NavigationRequestAction"
values: {
@@ -921,6 +964,9 @@ Module {
Property { name: "audioMuted"; revision: 3; type: "bool" }
Property { name: "recentlyAudible"; revision: 3; type: "bool"; isReadonly: true }
Property { name: "webChannelWorld"; revision: 3; type: "uint" }
+ Property { name: "inspectedView"; revision: 7; type: "QQuickWebEngineView"; isPointer: true }
+ Property { name: "devToolsView"; revision: 7; type: "QQuickWebEngineView"; isPointer: true }
+ Property { name: "testSupport"; type: "QQuickWebEngineTestSupport"; isPointer: true }
Signal {
name: "loadingChanged"
Parameter { name: "loadRequest"; type: "QQuickWebEngineLoadRequest"; isPointer: true }
@@ -1056,6 +1102,14 @@ Module {
revision: 7
Parameter { name: "request"; type: "QQuickWebEngineQuotaPermissionRequest" }
}
+ Signal {
+ name: "geometryChangeRequested"
+ revision: 7
+ Parameter { name: "geometry"; type: "QRect" }
+ Parameter { name: "frameGeometry"; type: "QRect" }
+ }
+ Signal { name: "inspectedViewChanged"; revision: 7 }
+ Signal { name: "devToolsViewChanged"; revision: 7 }
Method {
name: "runJavaScript"
Parameter { type: "string" }