ginebra2/ScrollableViewBase.cpp
changeset 16 3c88a81ff781
parent 3 0954f5dd2cd0
--- a/ginebra2/ScrollableViewBase.cpp	Thu Sep 23 15:32:11 2010 -0400
+++ b/ginebra2/ScrollableViewBase.cpp	Fri Oct 15 17:30:59 2010 -0400
@@ -27,7 +27,7 @@
 #include <QGraphicsScene>
 #include <QGraphicsSceneMouseEvent>
 #include <QPointF>
-
+#include <QApplication>
 namespace GVA {
 
 ScrollableViewBase::ScrollableViewBase(QGraphicsItem* parent, Qt::WindowFlags wFlags)
@@ -41,7 +41,7 @@
     setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
 
     //To speed up painting.
-    setFlag(QGraphicsItem::ItemHasNoContents, true);
+    //setFlag(QGraphicsItem::ItemHasNoContents, true);
     setAttribute(Qt::WA_OpaquePaintEvent, true);
 
     m_kineticScroller = new KineticScroller(this);
@@ -76,7 +76,7 @@
 
 QPoint ScrollableViewBase::maximumScrollPosition() const
 {
-    QSizeF contentsSize = m_scrollWidget->size();
+    QSizeF contentsSize = m_scrollWidget->size() * m_scrollWidget->scale();;
     QSizeF viewportSize = size();
     QSize maxScrollSize = (contentsSize - viewportSize).toSize();
 
@@ -90,8 +90,14 @@
 
 void ScrollableViewBase::setScrollPosition(const QPoint& pos, const QPoint& overShoot)
 {
+    QPoint p = scrollPosition();
+    QPoint d = pos - p;
+
     m_overShoot = overShoot;
-    setScrollWidgetPos(-pos);
+    setScrollWidgetPos(-pos + m_overShoot);
+    //QApplication::sendPostedEvents();
+    
+    emit viewScrolled(p, d);
 }
 
 void ScrollableViewBase::stateChanged(KineticScrollable::State oldState
@@ -100,7 +106,7 @@
     Q_UNUSED(oldState);
     Q_UNUSED(newState);
 }
-
+/*
 void ScrollableViewBase::setScrollWidgetGeometry(const QRectF& geom)
 {
     scrollWidget()->setGeometry(adjustScrollWidgetRect(geom));
@@ -144,10 +150,10 @@
     newRect.translate(m_overShoot);
     return newRect;
 }
-
+*/
 void ScrollableViewBase::setScrollWidgetPos(const QPointF& pos)
 {
-    setScrollWidgetGeometry(QRectF(pos, scrollWidget()->size()));
+    scrollWidget()->setPos(pos);
 }
 
 QPointF ScrollableViewBase::scrollWidgetPos() const