[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [calligra/calligra-qt5-rempt] components: components: Improve view positioning after zoom timeout in
From: Arjen Hiemstra <ahiemstra () heimr ! nl>
Date: 2013-11-21 17:44:22
Message-ID: E1VjYIg-00072g-TC () scm ! kde ! org
[Download RAW message or body]
Git commit 349c471f1cb72d08864c7d0d747a5dbf11cea00e by Arjen Hiemstra.
Committed on 21/11/2013 at 17:41.
Pushed by ahiemstra into branch 'calligra-qt5-rempt'.
components: Improve view positioning after zoom timeout in ViewController
M +8 -2 components/ViewController.cpp
http://commits.kde.org/calligra/349c471f1cb72d08864c7d0d747a5dbf11cea00e
diff --git a/components/ViewController.cpp b/components/ViewController.cpp
index b46c35c..e0a2423 100644
--- a/components/ViewController.cpp
+++ b/components/ViewController.cpp
@@ -70,6 +70,9 @@ public:
bool ignoreOffsetChange;
bool ignoreFlickableChange;
+ float newX;
+ float newY;
+
float minimumZoom;
bool minimumZoomFitsWidth;
float zoom;
@@ -322,6 +325,9 @@ QSGNode* ViewController::updatePaintNode(QSGNode* node, QQuickItem::UpdatePaintN
float left = -newWidth * (d->zoomCenter.x() / newWidth);
float top = -newHeight * (d->zoomCenter.y() / newHeight);
+ d->newX = -left;
+ d->newY = -top;
+
centerToView.translate(left, top);
center->setMatrix(centerToView);
@@ -419,10 +425,10 @@ void ViewController::zoomTimeout()
float oldX = d->flickable->property("contentX").toReal();
float oldY = d->flickable->property("contentY").toReal();
- float xoff = (d->zoomCenter.x() + oldX) * newZoom / d->zoom;
+ float xoff = (d->zoomCenter.x() + oldX) * (1.0 + d->zoomChange);
d->flickable->setProperty("contentX", xoff - d->zoomCenter.x());
- qreal yoff = (d->zoomCenter.y() + oldY ) * newZoom / d->zoom;
+ float yoff = (d->zoomCenter.y() + oldY ) * (1.0 + d->zoomChange);
d->flickable->setProperty("contentY", yoff - d->zoomCenter.y());
QMetaObject::invokeMethod(d->flickable, "returnToBounds");
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic