summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/qt/WidgetApi
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/qt/WidgetApi')
-rw-r--r--Source/WebKit/qt/WidgetApi/qgraphicswebview.h54
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebframe.h2
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebinspector.h12
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.cpp45
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage.h4
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebpage_p.h3
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebview.h48
-rw-r--r--Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h32
8 files changed, 122 insertions, 78 deletions
diff --git a/Source/WebKit/qt/WidgetApi/qgraphicswebview.h b/Source/WebKit/qt/WidgetApi/qgraphicswebview.h
index 0d990086f..1aa5b66c8 100644
--- a/Source/WebKit/qt/WidgetApi/qgraphicswebview.h
+++ b/Source/WebKit/qt/WidgetApi/qgraphicswebview.h
@@ -92,15 +92,15 @@ public:
bool isTiledBackingStoreFrozen() const;
void setTiledBackingStoreFrozen(bool frozen);
- virtual void setGeometry(const QRectF& rect);
- virtual void updateGeometry();
- virtual void paint(QPainter*, const QStyleOptionGraphicsItem* options, QWidget* widget = Q_NULLPTR);
- virtual QVariant itemChange(GraphicsItemChange change, const QVariant& value);
- virtual bool event(QEvent*);
+ void setGeometry(const QRectF& rect) Q_DECL_OVERRIDE;
+ void updateGeometry() Q_DECL_OVERRIDE;
+ void paint(QPainter*, const QStyleOptionGraphicsItem* options, QWidget* widget = Q_NULLPTR) Q_DECL_OVERRIDE;
+ QVariant itemChange(GraphicsItemChange change, const QVariant& value) Q_DECL_OVERRIDE;
+ bool event(QEvent*) Q_DECL_OVERRIDE;
- virtual QSizeF sizeHint(Qt::SizeHint which, const QSizeF& constraint) const;
+ QSizeF sizeHint(Qt::SizeHint which, const QSizeF& constraint) const Q_DECL_OVERRIDE;
- virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
QPainter::RenderHints renderHints() const;
void setRenderHints(QPainter::RenderHints);
@@ -124,30 +124,30 @@ Q_SIGNALS:
void linkClicked(const QUrl&);
protected:
- virtual void mousePressEvent(QGraphicsSceneMouseEvent*);
- virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*);
- virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent*);
- virtual void mouseMoveEvent(QGraphicsSceneMouseEvent*);
- virtual void hoverMoveEvent(QGraphicsSceneHoverEvent*);
- virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent*);
+ void mousePressEvent(QGraphicsSceneMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QGraphicsSceneMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QGraphicsSceneMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QGraphicsSceneMouseEvent*) Q_DECL_OVERRIDE;
+ void hoverMoveEvent(QGraphicsSceneHoverEvent*) Q_DECL_OVERRIDE;
+ void hoverLeaveEvent(QGraphicsSceneHoverEvent*) Q_DECL_OVERRIDE;
#ifndef QT_NO_WHEELEVENT
- virtual void wheelEvent(QGraphicsSceneWheelEvent*);
+ void wheelEvent(QGraphicsSceneWheelEvent*) Q_DECL_OVERRIDE;
#endif
- virtual void keyPressEvent(QKeyEvent*);
- virtual void keyReleaseEvent(QKeyEvent*);
+ void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent*) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent*);
+ void contextMenuEvent(QGraphicsSceneContextMenuEvent*) Q_DECL_OVERRIDE;
#endif
- virtual void dragEnterEvent(QGraphicsSceneDragDropEvent*);
- virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent*);
- virtual void dragMoveEvent(QGraphicsSceneDragDropEvent*);
- virtual void dropEvent(QGraphicsSceneDragDropEvent*);
- virtual void focusInEvent(QFocusEvent*);
- virtual void focusOutEvent(QFocusEvent*);
- virtual void inputMethodEvent(QInputMethodEvent*);
- virtual bool focusNextPrevChild(bool next);
-
- virtual bool sceneEvent(QEvent*);
+ void dragEnterEvent(QGraphicsSceneDragDropEvent*) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QGraphicsSceneDragDropEvent*) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QGraphicsSceneDragDropEvent*) Q_DECL_OVERRIDE;
+ void dropEvent(QGraphicsSceneDragDropEvent*) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent*) Q_DECL_OVERRIDE;
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
+
+ bool sceneEvent(QEvent*) Q_DECL_OVERRIDE;
private:
Q_PRIVATE_SLOT(d, void _q_doLoadFinished(bool success))
diff --git a/Source/WebKit/qt/WidgetApi/qwebframe.h b/Source/WebKit/qt/WidgetApi/qwebframe.h
index 619594336..1c3cb07c3 100644
--- a/Source/WebKit/qt/WidgetApi/qwebframe.h
+++ b/Source/WebKit/qt/WidgetApi/qwebframe.h
@@ -202,7 +202,7 @@ public:
QWebHitTestResult hitTestContent(const QPoint &pos) const;
- virtual bool event(QEvent *);
+ bool event(QEvent *) Q_DECL_OVERRIDE;
QWebSecurityOrigin securityOrigin() const;
QWebFrameAdapter* handle() const;
diff --git a/Source/WebKit/qt/WidgetApi/qwebinspector.h b/Source/WebKit/qt/WidgetApi/qwebinspector.h
index d6a4aad3c..c5f097e27 100644
--- a/Source/WebKit/qt/WidgetApi/qwebinspector.h
+++ b/Source/WebKit/qt/WidgetApi/qwebinspector.h
@@ -36,14 +36,14 @@ public:
void setPage(QWebPage* page);
QWebPage* page() const;
- QSize sizeHint() const;
- bool event(QEvent*);
+ QSize sizeHint() const Q_DECL_OVERRIDE;
+ bool event(QEvent*) Q_DECL_OVERRIDE;
protected:
- void resizeEvent(QResizeEvent* event);
- void showEvent(QShowEvent* event);
- void hideEvent(QHideEvent* event);
- void closeEvent(QCloseEvent* event);
+ void resizeEvent(QResizeEvent* event) Q_DECL_OVERRIDE;
+ void showEvent(QShowEvent* event) Q_DECL_OVERRIDE;
+ void hideEvent(QHideEvent* event) Q_DECL_OVERRIDE;
+ void closeEvent(QCloseEvent* event) Q_DECL_OVERRIDE;
private:
QWebInspectorPrivate* d;
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.cpp b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
index 872f23b3a..60e4d8b7b 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.cpp
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.cpp
@@ -238,6 +238,8 @@ QWebPagePrivate::~QWebPagePrivate()
// in order for various destruction callbacks out of WebCore to
// work.
deletePage();
+
+ clearCustomActions();
}
void QWebPagePrivate::show()
@@ -499,8 +501,15 @@ QMenu *createContextMenu(QWebPage* page, const QList<MenuItem>& items, QBitArray
const MenuItem &item = items.at(i);
switch (item.type) {
case MenuItem::Action: {
- QWebPage::WebAction action = webActionForAdapterMenuAction(item.action);
- QAction *a = page->action(action);
+ QAction* a = nullptr;
+ if (item.action < QWebPageAdapter::ActionCount) {
+ QWebPage::WebAction action = webActionForAdapterMenuAction(static_cast<QWebPageAdapter::MenuAction>(item.action));
+ a = page->action(action);
+ if (a)
+ visitedWebActions->setBit(action);
+ } else {
+ a = page->customAction(item.action);
+ }
if (a) {
a->setText(item.title);
a->setEnabled(item.traits & MenuItem::Enabled);
@@ -508,7 +517,6 @@ QMenu *createContextMenu(QWebPage* page, const QList<MenuItem>& items, QBitArray
a->setChecked(item.traits & MenuItem::Checked);
menu->addAction(a);
- visitedWebActions->setBit(action);
}
break;
}
@@ -562,6 +570,16 @@ void QWebPagePrivate::_q_webActionTriggered(bool checked)
QWebPage::WebAction action = static_cast<QWebPage::WebAction>(a->data().toInt());
q->triggerAction(action, checked);
}
+
+void QWebPagePrivate::_q_customActionTriggered(bool checked)
+{
+ Q_UNUSED(checked);
+ QAction* a = qobject_cast<QAction*>(q->sender());
+ if (!a)
+ return;
+ int action = a->data().toInt();
+ triggerCustomAction(action, a->text());
+}
#endif // QT_NO_ACTION
void QWebPagePrivate::updateAction(QWebPage::WebAction action)
@@ -625,6 +643,12 @@ void QWebPagePrivate::updateNavigationActions()
updateAction(QWebPage::ReloadAndBypassCache);
}
+void QWebPagePrivate::clearCustomActions()
+{
+ qDeleteAll(customActions);
+ customActions.clear();
+}
+
QObject *QWebPagePrivate::inspectorHandle()
{
return getOrCreateInspector();
@@ -2509,6 +2533,21 @@ QAction *QWebPage::action(WebAction action) const
d->updateAction(action);
return a;
}
+
+QAction* QWebPage::customAction(int action) const
+{
+ auto actionIter = d->customActions.constFind(action);
+ if (actionIter != d->customActions.constEnd())
+ return *actionIter;
+
+ QAction* a = new QAction(d->q);
+ a->setData(action);
+ connect(a, SIGNAL(triggered(bool)),
+ this, SLOT(_q_customActionTriggered(bool)));
+
+ d->customActions.insert(action, a);
+ return a;
+}
#endif // QT_NO_ACTION
/*!
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage.h b/Source/WebKit/qt/WidgetApi/qwebpage.h
index a9c71fd42..822bd2194 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage.h
+++ b/Source/WebKit/qt/WidgetApi/qwebpage.h
@@ -301,6 +301,7 @@ public:
#ifndef QT_NO_ACTION
QAction *action(WebAction action) const;
+ QAction *customAction(int action) const;
#endif
virtual void triggerAction(WebAction action, bool checked = false);
@@ -312,7 +313,7 @@ public:
void setPreferredContentsSize(const QSize &size) const;
void setActualVisibleContentRect(const QRect& rect) const;
- virtual bool event(QEvent*);
+ bool event(QEvent*) Q_DECL_OVERRIDE;
bool focusNextPrevChild(bool next);
QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
@@ -443,6 +444,7 @@ private:
Q_PRIVATE_SLOT(d, void _q_onLoadProgressChanged(int))
#ifndef QT_NO_ACTION
Q_PRIVATE_SLOT(d, void _q_webActionTriggered(bool checked))
+ Q_PRIVATE_SLOT(d, void _q_customActionTriggered(bool checked))
#endif
Q_PRIVATE_SLOT(d, void _q_cleanupLeakMessages())
Q_PRIVATE_SLOT(d, void _q_updateScreen(QScreen*))
diff --git a/Source/WebKit/qt/WidgetApi/qwebpage_p.h b/Source/WebKit/qt/WidgetApi/qwebpage_p.h
index 604c0a540..34cf288b4 100644
--- a/Source/WebKit/qt/WidgetApi/qwebpage_p.h
+++ b/Source/WebKit/qt/WidgetApi/qwebpage_p.h
@@ -120,6 +120,7 @@ public:
virtual const char* editorCommandForKeyEvent(QKeyEvent*) OVERRIDE;
void updateNavigationActions() OVERRIDE;
+ void clearCustomActions() OVERRIDE;
virtual QObject* inspectorHandle() OVERRIDE;
virtual void setInspectorFrontend(QObject*) OVERRIDE;
@@ -145,6 +146,7 @@ public:
void createMainFrame();
void _q_webActionTriggered(bool checked);
+ void _q_customActionTriggered(bool checked);
void updateAction(QWebPage::WebAction);
void updateEditorActions();
@@ -198,6 +200,7 @@ public:
bool useFixedLayout;
QAction *actions[QWebPage::WebActionCount];
+ QHash<int, QAction*> customActions;
QPointer <QWindow> window;
QWidget* inspectorFrontend;
diff --git a/Source/WebKit/qt/WidgetApi/qwebview.h b/Source/WebKit/qt/WidgetApi/qwebview.h
index ac0946773..0ed324da1 100644
--- a/Source/WebKit/qt/WidgetApi/qwebview.h
+++ b/Source/WebKit/qt/WidgetApi/qwebview.h
@@ -55,7 +55,7 @@ class QWEBKITWIDGETS_EXPORT QWebView : public QWidget {
Q_FLAGS(QPainter::RenderHints)
public:
explicit QWebView(QWidget* parent = Q_NULLPTR);
- virtual ~QWebView();
+ ~QWebView();
QWebPage* page() const;
void setPage(QWebPage* page);
@@ -90,9 +90,9 @@ public:
void setTextInteractionFlag(Qt::TextInteractionFlag flag);
*/
- QVariant inputMethodQuery(Qt::InputMethodQuery property) const;
+ QVariant inputMethodQuery(Qt::InputMethodQuery property) const Q_DECL_OVERRIDE;
- QSize sizeHint() const;
+ QSize sizeHint() const Q_DECL_OVERRIDE;
qreal zoomFactor() const;
void setZoomFactor(qreal factor);
@@ -106,7 +106,7 @@ public:
bool findText(const QString& subString, QWebPage::FindFlags options = QWebPage::FindFlags());
- virtual bool event(QEvent*);
+ bool event(QEvent*) Q_DECL_OVERRIDE;
public Q_SLOTS:
void stop();
@@ -128,33 +128,33 @@ Q_SIGNALS:
void urlChanged(const QUrl&);
protected:
- void resizeEvent(QResizeEvent*);
- void paintEvent(QPaintEvent*);
+ void resizeEvent(QResizeEvent*) Q_DECL_OVERRIDE;
+ void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
virtual QWebView *createWindow(QWebPage::WebWindowType type);
- virtual void changeEvent(QEvent*);
- virtual void mouseMoveEvent(QMouseEvent*);
- virtual void mousePressEvent(QMouseEvent*);
- virtual void mouseDoubleClickEvent(QMouseEvent*);
- virtual void mouseReleaseEvent(QMouseEvent*);
+ void changeEvent(QEvent*) Q_DECL_OVERRIDE;
+ void mouseMoveEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mousePressEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseDoubleClickEvent(QMouseEvent*) Q_DECL_OVERRIDE;
+ void mouseReleaseEvent(QMouseEvent*) Q_DECL_OVERRIDE;
#ifndef QT_NO_CONTEXTMENU
- virtual void contextMenuEvent(QContextMenuEvent*);
+ void contextMenuEvent(QContextMenuEvent*) Q_DECL_OVERRIDE;
#endif
#ifndef QT_NO_WHEELEVENT
- virtual void wheelEvent(QWheelEvent*);
+ void wheelEvent(QWheelEvent*) Q_DECL_OVERRIDE;
#endif
- virtual void keyPressEvent(QKeyEvent*);
- virtual void keyReleaseEvent(QKeyEvent*);
- virtual void dragEnterEvent(QDragEnterEvent*);
- virtual void dragLeaveEvent(QDragLeaveEvent*);
- virtual void dragMoveEvent(QDragMoveEvent*);
- virtual void dropEvent(QDropEvent*);
- virtual void focusInEvent(QFocusEvent*);
- virtual void focusOutEvent(QFocusEvent*);
- virtual void inputMethodEvent(QInputMethodEvent*);
-
- virtual bool focusNextPrevChild(bool next);
+ void keyPressEvent(QKeyEvent*) Q_DECL_OVERRIDE;
+ void keyReleaseEvent(QKeyEvent*) Q_DECL_OVERRIDE;
+ void dragEnterEvent(QDragEnterEvent*) Q_DECL_OVERRIDE;
+ void dragLeaveEvent(QDragLeaveEvent*) Q_DECL_OVERRIDE;
+ void dragMoveEvent(QDragMoveEvent*) Q_DECL_OVERRIDE;
+ void dropEvent(QDropEvent*) Q_DECL_OVERRIDE;
+ void focusInEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void focusOutEvent(QFocusEvent*) Q_DECL_OVERRIDE;
+ void inputMethodEvent(QInputMethodEvent*) Q_DECL_OVERRIDE;
+
+ bool focusNextPrevChild(bool next) Q_DECL_OVERRIDE;
private:
friend class QWebPage;
diff --git a/Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h b/Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h
index 7cbf44870..c68cc9011 100644
--- a/Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h
+++ b/Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h
@@ -41,15 +41,15 @@ public:
QWebFrame* frame() const;
- QAccessibleInterface* parent() const;
- int childCount() const;
- QAccessibleInterface* child(int index) const;
- int indexOfChild(const QAccessibleInterface*) const;
+ QAccessibleInterface* parent() const Q_DECL_OVERRIDE;
+ int childCount() const Q_DECL_OVERRIDE;
+ QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
+ int indexOfChild(const QAccessibleInterface*) const Q_DECL_OVERRIDE;
int navigate(QAccessible::RelationFlag, int, QAccessibleInterface** target) const;
- QString text(QAccessible::Text) const;
- QAccessible::Role role() const;
- QAccessible::State state() const;
+ QString text(QAccessible::Text) const Q_DECL_OVERRIDE;
+ QAccessible::Role role() const Q_DECL_OVERRIDE;
+ QAccessible::State state() const Q_DECL_OVERRIDE;
};
class QWebPageAccessible : public QAccessibleObject {
@@ -58,15 +58,15 @@ public:
QWebPage* page() const;
- QAccessibleInterface* parent() const;
- int childCount() const;
- QAccessibleInterface* child(int index) const;
- int indexOfChild(const QAccessibleInterface*) const;
+ QAccessibleInterface* parent() const Q_DECL_OVERRIDE;
+ int childCount() const Q_DECL_OVERRIDE;
+ QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
+ int indexOfChild(const QAccessibleInterface*) const Q_DECL_OVERRIDE;
int navigate(QAccessible::RelationFlag, int, QAccessibleInterface** target) const;
- QString text(QAccessible::Text) const;
- QAccessible::Role role() const;
- QAccessible::State state() const;
+ QString text(QAccessible::Text) const Q_DECL_OVERRIDE;
+ QAccessible::Role role() const Q_DECL_OVERRIDE;
+ QAccessible::State state() const Q_DECL_OVERRIDE;
};
class QWebViewAccessible : public QAccessibleWidget {
@@ -75,8 +75,8 @@ public:
QWebView* view() const;
- int childCount() const;
- QAccessibleInterface* child(int index) const;
+ int childCount() const Q_DECL_OVERRIDE;
+ QAccessibleInterface* child(int index) const Q_DECL_OVERRIDE;
};
#endif