#ifndef WEBSCRAP_H #define WEBSCRAP_H #include #include #include class WebScrap : public QGraphicsWebView { Q_OBJECT public: WebScrap(QUrl url, QRect scrapRect, QGraphicsItem * parent = 0); virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* options, QWidget* widget = 0); const QTimer *refreshTimer() const; void setRefreshInterval(int msecs); int refreshInterval() const; // msecs QRect scrapRect() const; void updateGradient(QRect rect); void savePos(); QPointF savedPos() const; public slots: void onLoad(); void onRefresh(); void setScrapRect(QRect rect); void openUrlInExternalBrowser(QUrl url); private: QRect m_scrapRect; int m_refreshInterval; QTimer *m_refreshTimer; QLinearGradient m_loadingGradient, m_overlayGradient; QPointF m_savedPos; }; class WebScrapContainer : public QGraphicsWidget { Q_OBJECT public: WebScrapContainer(WebScrap *scrap, QGraphicsScene *scene); public slots: void setTitle(const QString& title); protected: bool sceneEventFilter(QGraphicsItem *watched, QEvent* event); signals: void frameClicked(); public: QGraphicsPathItem *m_frame; QGraphicsTextItem *m_titlebar; }; #endif // WEBSCRAP_H