ginebra2/ContentViews/WebContentAnimationItem.h
changeset 16 3c88a81ff781
parent 14 6aeb7a756187
equal deleted inserted replaced
14:6aeb7a756187 16:3c88a81ff781
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 *
       
     5 * This program is free software: you can redistribute it and/or modify
       
     6 * it under the terms of the GNU Lesser General Public License as published by
       
     7 * the Free Software Foundation, version 2.1 of the License.
       
     8 *
       
     9 * This program is distributed in the hope that it will be useful,
       
    10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    12 * GNU Lesser General Public License for more details.
       
    13 *
       
    14 * You should have received a copy of the GNU Lesser General Public License
       
    15 * along with this program.  If not,
       
    16 * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
       
    17 *
       
    18 * Description:
       
    19 *
       
    20 */
       
    21 
       
    22 #ifndef WebContentAnimationItem_h
       
    23 #define WebContentAnimationItem_h
       
    24 
       
    25 #include "ViewportMetaDataParser.h"
       
    26 
       
    27 #include <QGraphicsWidget>
       
    28 #include <QTimer>
       
    29 
       
    30 class QGraphicsWebView;
       
    31 
       
    32 namespace GVA {
       
    33 
       
    34 class WebContentAnimationItem : public QGraphicsWidget {
       
    35     Q_OBJECT
       
    36     Q_PROPERTY(qreal zoomScale READ zoomScale WRITE setZoomScale)
       
    37 
       
    38 public:
       
    39     WebContentAnimationItem(QGraphicsWidget* parent = 0, Qt::WindowFlags wFlags = 0);
       
    40     ~WebContentAnimationItem();
       
    41 
       
    42     void setWebView(QGraphicsWebView* webView);
       
    43     QGraphicsWebView* webView() const { return m_webView; }
       
    44 
       
    45     void updatePreferredContentSize(const QSize& size);
       
    46     QSize contentsSize() const;
       
    47 
       
    48     void setZoomScale(qreal, bool immediateCommit = false);
       
    49     qreal zoomScale() const;
       
    50 
       
    51     QRectF findZoomableRectForPoint(const QPointF& point);
       
    52 
       
    53     void setViewportMetaData(ViewportMetaData* viewportMetaData) { m_viewportMetaData = viewportMetaData; }
       
    54 
       
    55 public Q_SLOTS:
       
    56     void enableContentUpdates();
       
    57     void disableContentUpdates();
       
    58     void commitZoom();
       
    59 
       
    60 protected:
       
    61     void resizeEvent(QGraphicsSceneResizeEvent* event);
       
    62 	void notifyZoomActions(qreal newScale);
       
    63 
       
    64 Q_SIGNALS:
       
    65     void updateZoomActions(bool enableZoomIn, bool enableZoomOut);
       
    66 
       
    67 private:
       
    68     QGraphicsWebView* m_webView;
       
    69     QTimer m_zoomCommitTimer;
       
    70     ViewportMetaData* m_viewportMetaData; //Not owned!
       
    71 }; //WebContentAnimationItem
       
    72 
       
    73 } //namespace GVA
       
    74 
       
    75 #endif //WebContentAnimationItem_h
       
    76