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