diff options
author | Roopesh Chander <roop@forwardbias.in> | 2009-11-11 19:34:17 +0530 |
---|---|---|
committer | Roopesh Chander <roop@forwardbias.in> | 2009-11-11 19:34:54 +0530 |
commit | 739b38073991f9cb24220180c604f6be5f482afe (patch) | |
tree | 2867aaad08274f8a9363a2521c5d8e45cda5aa66 | |
parent | 8084be771d14e4262335c2eba906bea58fe04abd (diff) |
since QGraphicsWebView::setInteractive() is gone, we need an alternate way to
make links unclickable when you move/adjust the page with the mouse in the edit mode.
-rw-r--r-- | webscrap.cpp | 22 | ||||
-rw-r--r-- | webscrap.h | 6 |
2 files changed, 26 insertions, 2 deletions
diff --git a/webscrap.cpp b/webscrap.cpp index be15a2f..9cebc0f 100644 --- a/webscrap.cpp +++ b/webscrap.cpp @@ -85,7 +85,7 @@ const QTimer* WebScrap::refreshTimer() const { void WebScrap::setDimensionsFixed(bool fixed) { m_isDimensionsFixed = fixed; - // setInteractive(fixed); + setMouseClicksEnabled(fixed); update(); } @@ -93,6 +93,14 @@ bool WebScrap::dimensionsFixed() const { return m_isDimensionsFixed; } +void WebScrap::setMouseClicksEnabled(bool enabled) { + m_isMouseClicksEnabled = enabled; +} + +bool WebScrap::mouseClicksEnabled() const { + return m_isMouseClicksEnabled; +} + void WebScrap::setPageSize(QSize size) { m_pageSize = size; } @@ -138,6 +146,18 @@ void WebScrap::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { } } +bool WebScrap::event(QEvent *e) { + if (!mouseClicksEnabled()) { + if (e->type() == QEvent::GraphicsSceneMousePress || + e->type() == QEvent::GraphicsSceneMouseRelease || + e->type() == QEvent::GraphicsSceneMouseDoubleClick) { + e->accept(); + return true; + } + } + return QGraphicsWebView::event(e); +} + void WebScrap::paint(QPainter* painter, const QStyleOptionGraphicsItem* options, QWidget* widget) { painter->save(); @@ -35,6 +35,9 @@ public: void setPageSize(QSize size); QSize pageSize() const; + void setMouseClicksEnabled(bool enabled); + bool mouseClicksEnabled() const; + public slots: void onLoadFinished(); void onLoadStarted(); @@ -45,6 +48,7 @@ public slots: protected: void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + bool event(QEvent *e); private: QRect m_scrapRect; @@ -56,7 +60,7 @@ private: bool m_isDimensionsFixed; QPixmap m_loadingPix, m_adjustablePix, m_arrowPix, m_scalePix; QSize m_pageSize; - bool m_isLoading; + bool m_isLoading, m_isMouseClicksEnabled; }; class WebScrapContainer : public QGraphicsWidget { |