diff options
Diffstat (limited to 'Source/WebKit/qt/WidgetApi')
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qgraphicswebview.h | 54 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebframe.h | 2 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebinspector.h | 12 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage.cpp | 45 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage.h | 4 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebpage_p.h | 3 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebview.h | 48 | ||||
-rw-r--r-- | Source/WebKit/qt/WidgetApi/qwebviewaccessible_p.h | 32 |
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 |