Author: jghali
Date: Sun Jan 13 13:11:19 2019
New Revision: 22801

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22801
Log:
Refactoring + fixes related to zooming and canvas positioning

Modified:
    trunk/Scribus/scribus/canvasmode_create.cpp
    trunk/Scribus/scribus/canvasmode_magnifier.cpp
    trunk/Scribus/scribus/scribus.cpp
    trunk/Scribus/scribus/scribusview.cpp
    trunk/Scribus/scribus/scribusview.h

Modified: trunk/Scribus/scribus/canvasmode_create.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22801&path=/trunk/Scribus/scribus/canvasmode_create.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasmode_create.cpp (original)
+++ trunk/Scribus/scribus/canvasmode_create.cpp Sun Jan 13 13:11:19 2019
@@ -841,6 +841,7 @@
                SetupDrawNoResize(z);
                newObject = m_doc->Items->at(z);
                newObject->ContourLine = newObject->PoLine.copy();
+               m_doc->setRedrawBounding(newObject);
        }
        return newObject;
 }

Modified: trunk/Scribus/scribus/canvasmode_magnifier.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22801&path=/trunk/Scribus/scribus/canvasmode_magnifier.cpp
==============================================================================
--- trunk/Scribus/scribus/canvasmode_magnifier.cpp      (original)
+++ trunk/Scribus/scribus/canvasmode_magnifier.cpp      Sun Jan 13 13:11:19 2019
@@ -214,7 +214,7 @@
        {
                int mx = qRound(mousePointDoc.x());
                int my = qRound(mousePointDoc.y());
-               m_view->Magnify ? m_view->slotZoomIn(mx, my) : 
m_view->slotZoomOut(mx, my);
+               m_view->Magnify ? m_view->slotZoomIn(mx, my, true) : 
m_view->slotZoomOut(mx, my, true);
                if (sc == m_canvas->scale())
                {
                        m_view->HaveSelRect = false;

Modified: trunk/Scribus/scribus/scribus.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22801&path=/trunk/Scribus/scribus/scribus.cpp
==============================================================================
--- trunk/Scribus/scribus/scribus.cpp   (original)
+++ trunk/Scribus/scribus/scribus.cpp   Sun Jan 13 13:11:19 2019
@@ -6570,7 +6570,7 @@
        }
 
        QPointF point = itemTrans.map(QPointF(xOffset, yOffset));
-       view->SetCCPo(point.x(), point.y());
+       view->setCanvasCenterPos(point.x(), point.y());
 }
 
 void ScribusMainWindow::selectItemFromOutlines(PageItem *ite, bool single, int 
cPos)
@@ -7696,8 +7696,8 @@
        }
 
        m_storedPageNum = doc->currentPageNumber();
-       m_storedViewXCoor = view->contentsX();
-       m_storedViewYCoor = view->contentsY();
+       m_storedViewXCoor = view->horizontalScrollBar()->value();
+       m_storedViewYCoor = view->verticalScrollBar()->value();
        m_storedViewScale = view->scale();
        doc->stored_minCanvasCoordinate = doc->minCanvasCoordinate;
        doc->stored_maxCanvasCoordinate = doc->maxCanvasCoordinate;
@@ -7713,9 +7713,9 @@
 
 void ScribusMainWindow::editMasterPagesEnd()
 {
-       view->setScale(m_storedViewScale);
        doc->minCanvasCoordinate = doc->stored_minCanvasCoordinate;
        doc->maxCanvasCoordinate = doc->stored_maxCanvasCoordinate;
+       view->setScale(m_storedViewScale);
        view->hideMasterPage();
        if (m_WasAutoSave)
        {
@@ -7741,9 +7741,10 @@
        doc->setCurrentPage(doc->DocPages.at(m_storedPageNum));
        doc->minCanvasCoordinate = doc->stored_minCanvasCoordinate;
        doc->maxCanvasCoordinate = doc->stored_maxCanvasCoordinate;
+
        doc->setLoading(true);
        view->reformPages(false);
-       view->setContentsPos(static_cast<int>(m_storedViewXCoor * 
m_storedViewScale), static_cast<int>(m_storedViewYCoor * m_storedViewScale));
+       view->setContentsPos(m_storedViewXCoor, m_storedViewYCoor);
        doc->setLoading(false);
        view->DrawNew();
 }
@@ -8247,7 +8248,7 @@
        if (scriptIsRunning())
                return;
        slotSetCurrentPage(p0);
-       doc->view()->SetCPo(doc->currentPage()->xOffset() - 10, 
doc->currentPage()->yOffset() - 10);
+       doc->view()->setCanvasPos(doc->currentPage()->xOffset() - 10, 
doc->currentPage()->yOffset() - 10);
        HaveNewSel();
        doc->view()->setFocus();
 }

Modified: trunk/Scribus/scribus/scribusview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22801&path=/trunk/Scribus/scribus/scribusview.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusview.cpp       (original)
+++ trunk/Scribus/scribus/scribusview.cpp       Sun Jan 13 13:11:19 2019
@@ -152,10 +152,9 @@
        updateOn(true),
        Magnify(false),
        RCenter(-1,-1),
-       Ready(false),
-       oldX(0), oldY(0),
+       m_ready(false),
+       m_oldZoomX(0), m_oldZoomY(0),
        m_groupTransactions(0),
-       m_oldCanvasHeight(0), m_oldCanvasWidth(0),
        _isGlobalMode(true),
        linkAfterDraw(false),
        ImageAfterDraw(false),
@@ -191,7 +190,7 @@
        horizRuler->setGeometry(m_vhRulerHW, 1, width()-m_vhRulerHW-1, 
m_vhRulerHW);
        vertRuler->setGeometry(1, m_vhRulerHW, m_vhRulerHW, 
height()-m_vhRulerHW-1);
        rulerMover->setGeometry(1, 1, m_vhRulerHW, m_vhRulerHW);
-       Ready = true;
+       m_ready = true;
        m_canvas->setMouseTracking(true);
        setAcceptDrops(true);
        m_canvas->setAcceptDrops(true);
@@ -345,23 +344,21 @@
 void ScribusView::changed(QRectF re, bool)
 {
        double scale = m_canvas->scale();
-       int newCanvasWidth = qRound((Doc->maxCanvasCoordinate.x() - 
Doc->minCanvasCoordinate.x()) * scale);
+       int newCanvasWidth  = qRound((Doc->maxCanvasCoordinate.x() - 
Doc->minCanvasCoordinate.x()) * scale);
        int newCanvasHeight = qRound((Doc->maxCanvasCoordinate.y() - 
Doc->minCanvasCoordinate.y()) * scale);
-       if (!re.isValid() && // don't check this all the time
-                       ( m_oldCanvasWidth != newCanvasWidth || 
m_oldCanvasHeight != newCanvasHeight))
+       QSize newCanvasSize(newCanvasWidth, newCanvasHeight);
+       if (!re.isValid() && /* don't check this all the time */
+                       (m_oldCanvasSize != newCanvasSize))
        {
                QSize maxViewport = maximumViewportSize();
-               
horizontalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.x() * scale),
-                                                                               
qRound(Doc->maxCanvasCoordinate.x() * scale) - maxViewport.width());
-               
verticalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.y() * scale),
-                                                                         
qRound(Doc->maxCanvasCoordinate.y() * scale) - maxViewport.height());
-               /*      qDebug() << "adjustCanvas [" << m_oldCanvasWidth << 
m_oldCanvasHeight << " ] -> [" << newCanvasWidth << newCanvasHeight 
+               horizontalScrollBar()->setRange(0, newCanvasWidth - 
maxViewport.width());
+               verticalScrollBar()->setRange(0, newCanvasHeight - 
maxViewport.height());
+               /*      qDebug() << "adjustCanvas [" << m_oldCanvasSize.width() 
<< m_oldCanvasSize.height() << " ] -> [" << newCanvasWidth << newCanvasHeight 
                                << "] (" << Doc->minCanvasCoordinate.x() << 
Doc->minCanvasCoordinate.y() << ") - ("
                                << Doc->maxCanvasCoordinate.x() << 
Doc->maxCanvasCoordinate.y() << ") @" << scale << maxViewport;
                */
-               widget()->resize(newCanvasWidth, newCanvasHeight);      
-               m_oldCanvasWidth = newCanvasWidth;
-               m_oldCanvasHeight = newCanvasHeight;
+               widget()->resize(newCanvasWidth, newCanvasHeight);
+               m_oldCanvasSize = newCanvasSize;
        }
        if (!Doc->isLoading() && !m_ScMW->scriptIsRunning())
        {
@@ -433,7 +430,7 @@
 {
        bool updateNecessary = false;
        //      qDebug() << "request mode:" << appMode;
-       switch(appMode) // filter submodes
+       switch (appMode) // filter submodes
        {
                case submodePaintingDone:   // return to normal mode
                        appMode = modeNormal;
@@ -1358,26 +1355,6 @@
        }
 }
 
-
-/*
-void ScribusView::normalizeSelectionRect() // unsused
-{
-       if(Mxp > SeRx)
-       {
-               int tmp = SeRx;
-               SeRx = Mxp;
-               Mxp = tmp;
-       }
-       if(Myp > SeRy)
-       {
-               int tmp = SeRy;
-               SeRy = Myp;
-               Myp = tmp;
-       }
-}
-*/
-
-
 void ScribusView::getDragRectScreen(double *x, double *y, double *w, double *h)
 {
        QPoint in(qRound(dragX*m_canvas->scale()), 
qRound(dragY*m_canvas->scale()));
@@ -2022,14 +1999,14 @@
 void ScribusView::setHBarGeometry(QScrollBar &bar, int x, int y, int w, int h)
 {
        bar.setGeometry(x, y, w, h);
-       if (Ready)
+       if (m_ready)
                horizRuler->setGeometry(m_vhRulerHW, 1, w-m_vhRulerHW-1, 
m_vhRulerHW);
 }
 
 void ScribusView::setVBarGeometry(QScrollBar &bar, int x, int y, int w, int h)
 {
        bar.setGeometry(x, y, w, h);
-       if (Ready)
+       if (m_ready)
        {
                vertRuler->setGeometry(1, m_vhRulerHW, m_vhRulerHW, 
h-m_vhRulerHW-1);
                rulerMover->setGeometry(1, 1, m_vhRulerHW, m_vhRulerHW);
@@ -2122,8 +2099,8 @@
 //CB find a new name
 void ScribusView::rememberOldZoomLocation(int mx, int my)
 {
-       oldX = mx;
-       oldY = my;
+       m_oldZoomX = mx;
+       m_oldZoomY = my;
 }
 
 void ScribusView::setRulerPos(int x, int y)
@@ -2256,10 +2233,10 @@
        verticalScrollBar()->setValue(qRound(y * scale));
        // fix ranges
        QSize maxViewport = maximumViewportSize();
-       horizontalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.x() * 
scale),
-                                                                       
qRound(Doc->maxCanvasCoordinate.x() * scale) - maxViewport.width());
-       verticalScrollBar()->setRange(qRound(Doc->minCanvasCoordinate.y() * 
scale),
-                                                                 
qRound(Doc->maxCanvasCoordinate.y() * scale) - maxViewport.height());
+       int newCanvasWidth  = qRound((Doc->maxCanvasCoordinate.x() - 
Doc->minCanvasCoordinate.x()) * scale);
+       int newCanvasHeight = qRound((Doc->maxCanvasCoordinate.y() - 
Doc->minCanvasCoordinate.y()) * scale);
+       horizontalScrollBar()->setRange(0, newCanvasWidth - 
maxViewport.width());
+       verticalScrollBar()->setRange(0, newCanvasHeight - 
maxViewport.height());
 }
 
 
@@ -2309,26 +2286,47 @@
 
 void ScribusView::setZoom()
 {
-       int x = qRound(qMax(contentsX() / m_canvas->scale(), 0.0));
-       int y = qRound(qMax(contentsY() / m_canvas->scale(), 0.0));
-       int w = qRound(qMin(visibleWidth() / m_canvas->scale(), 
Doc->currentPage()->width()));
-       int h = qRound(qMin(visibleHeight() / m_canvas->scale(), 
Doc->currentPage()->height()));
-       rememberOldZoomLocation(w / 2 + x,h / 2 + y);
-       zoom(oldX, oldY, m_ScMW->zoomSpinBox->value() / 100.0 * 
Prefs->displayPrefs.displayScale, false);
+       double x = qMax(contentsX() / m_canvas->scale(), 
Doc->minCanvasCoordinate.x());
+       double y = qMax(contentsY() / m_canvas->scale(), 
Doc->minCanvasCoordinate.y());
+       double w = qMin(visibleWidth() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.x() - Doc->minCanvasCoordinate.x());
+       double h = qMin(visibleHeight() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.y() - Doc->minCanvasCoordinate.y());
+
+       int zoomX = qRound(x + w / 2);
+       int zoomY = qRound(y + h / 2);
+       rememberOldZoomLocation(zoomX, zoomY);
+
+       zoom(m_oldZoomX, m_oldZoomY, m_ScMW->zoomSpinBox->value() / 100.0 * 
Prefs->displayPrefs.displayScale, false);
        setFocus();
 }
 
 void ScribusView::slotZoom100()
 {
-       int x = qRound(qMax(contentsX() / m_canvas->scale(), 
Doc->minCanvasCoordinate.x()));
-       int y = qRound(qMax(contentsY() / m_canvas->scale(), 
Doc->minCanvasCoordinate.y()));
-       int w = qRound(qMin(visibleWidth() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.x() - Doc->minCanvasCoordinate.x()));
-       int h = qRound(qMin(visibleHeight() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.y() - Doc->minCanvasCoordinate.y()));
-       rememberOldZoomLocation(w / 2 + x,h / 2 + y);
-       zoom(oldX, oldY, Prefs->displayPrefs.displayScale, false);
-}
-
-void ScribusView::slotZoomIn(int mx, int my)
+       double x = qMax(contentsX() / m_canvas->scale(), 
Doc->minCanvasCoordinate.x());
+       double y = qMax(contentsY() / m_canvas->scale(), 
Doc->minCanvasCoordinate.y());
+       double w = qMin(visibleWidth() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.x() - Doc->minCanvasCoordinate.x());
+       double h = qMin(visibleHeight() / m_canvas->scale(), 
Doc->maxCanvasCoordinate.y() - Doc->minCanvasCoordinate.y());
+
+       int zoomX = qRound(x + w / 2);
+       int zoomY = qRound(y + h / 2);
+       rememberOldZoomLocation(zoomX, zoomY);
+
+       int zoomPointX(m_oldZoomX), zoomPointY(m_oldZoomY);
+       if (Doc->m_Selection->count() != 0)
+       {
+               QRectF selRect = Doc->m_Selection->getVisualGroupRect();
+               zoomPointX = qRound(selRect.x() + selRect.width() / 2.0);
+               zoomPointY = qRound(selRect.y() + selRect.height() / 2.0);
+       }
+       else if (Doc->currentPage() != nullptr)
+       {
+               ScPage* currentPage = Doc->currentPage();
+               zoomPointX = qRound(currentPage->xOffset() + 
currentPage->width() / 2.0);
+               zoomPointY = qRound(currentPage->yOffset() + 
currentPage->height() / 2.0);
+       }
+       zoom(zoomPointX, zoomPointY, Prefs->displayPrefs.displayScale, false);
+}
+
+void ScribusView::slotZoomIn(int mx, int my, bool preservePoint)
 {
        // FIXME : mx and my should really be ScribusView local coordinates or 
global coordinates
        int oldZoomX(mx), oldZoomY(my);
@@ -2347,18 +2345,27 @@
        if (static_cast<int>(newScale * 100) > static_cast<int>(100 * 
static_cast<double>(Doc->opToolPrefs().magStep) * 
Prefs->displayPrefs.displayScale / 100))
                newScale = m_canvas->scale() + 
static_cast<double>(Doc->opToolPrefs().magStep) * 
Prefs->displayPrefs.displayScale / 100;
 
-       int zoomPointX(oldX), zoomPointY(oldY);
-       if (Doc->m_Selection->count() != 0)
-       {
-               PageItem *currItem = Doc->m_Selection->itemAt(0);
-               zoomPointX = qRound(currItem->xPos() + currItem->width() / 2.0);
-               zoomPointY = qRound(currItem->yPos() + currItem->height() / 
2.0);
-       }
-       zoom(zoomPointX, zoomPointY, newScale, (Doc->m_Selection->count() == 
0));
+       int zoomPointX(m_oldZoomX), zoomPointY(m_oldZoomY);
+       if (!preservePoint)
+       {
+               if (Doc->m_Selection->count() != 0)
+               {
+                       QRectF selRect = Doc->m_Selection->getVisualGroupRect();
+                       zoomPointX = qRound(selRect.x() + selRect.width() / 
2.0);
+                       zoomPointY = qRound(selRect.y() + selRect.height() / 
2.0);
+               }
+               else if (Doc->currentPage() != nullptr)
+               {
+                       ScPage* currentPage = Doc->currentPage();
+                       zoomPointX = qRound(currentPage->xOffset() + 
currentPage->width() / 2.0);
+                       zoomPointY = qRound(currentPage->yOffset() + 
currentPage->height() / 2.0);
+               }
+       }
+       zoom(zoomPointX, zoomPointY, newScale, preservePoint);
 }
 
 /** Verkleinert die Ansicht */
-void ScribusView::slotZoomOut(int mx, int my)
+void ScribusView::slotZoomOut(int mx, int my, bool preservePoint)
 {
        // FIXME : mx and my should really be ScribusView local coordinates or 
global coordinates
        int oldZoomX(mx), oldZoomY(my);
@@ -2379,14 +2386,23 @@
        if (newScale <= Prefs->displayPrefs.displayScale / 100)
                newScale = m_canvas->scale();
 
-       int zoomPointX(oldX), zoomPointY(oldY);
-       if (Doc->m_Selection->count() != 0)
-       {
-               PageItem *currItem = Doc->m_Selection->itemAt(0);
-               zoomPointX = qRound(currItem->xPos() + currItem->width() / 2.0);
-               zoomPointY = qRound(currItem->yPos() + currItem->height() / 
2.0);
-       }
-       zoom(zoomPointX, zoomPointY, newScale, (Doc->m_Selection->count() == 
0));
+       int zoomPointX(m_oldZoomX), zoomPointY(m_oldZoomY);
+       if (!preservePoint)
+       {
+               if (Doc->m_Selection->count() != 0)
+               {
+                       QRectF selRect = Doc->m_Selection->getVisualGroupRect();
+                       zoomPointX = qRound(selRect.x() + selRect.width() / 
2.0);
+                       zoomPointY = qRound(selRect.y() + selRect.height() / 
2.0);
+               }
+               else if (Doc->currentPage() != nullptr)
+               {
+                       ScPage* currentPage = Doc->currentPage();
+                       zoomPointX = qRound(currentPage->xOffset() + 
currentPage->width() / 2.0);
+                       zoomPointY = qRound(currentPage->yOffset() + 
currentPage->height() / 2.0);
+               }
+       }
+       zoom(zoomPointX, zoomPointY, newScale, preservePoint);
 }
 
 void ScribusView::DrawNew()
@@ -2405,7 +2421,7 @@
        //      connect(m_ScMW->zoomSpinBox, SIGNAL(valueChanged(double)), 
this, SLOT(setZoom()));
 }
 
-void ScribusView::SetCCPo(double x, double y)
+void ScribusView::setCanvasCenterPos(double x, double y)
 {
        if (m_ScMW->scriptIsRunning())
                return;
@@ -2415,7 +2431,7 @@
        setContentsPos(nx.x() - viewsize.width() / 2, nx.y() - 
viewsize.height() / 2);
 }
 
-void ScribusView::SetCPo(double x, double y)
+void ScribusView::setCanvasPos(double x, double y)
 {
        if (m_ScMW->scriptIsRunning())
                return;
@@ -2457,7 +2473,7 @@
        if (m_ScMW->scriptIsRunning())
                return;
        m_ScMW->slotSetCurrentPage(Seite);
-       SetCPo(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
+       setCanvasPos(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
        m_ScMW->HaveNewSel();
 }
 
@@ -2472,10 +2488,10 @@
        Doc->setCurrentPage(Doc->Pages->at(nr));
        m_ScMW->pageSelector->setEnabled(false);
        updateOn = false;
-       zoom();
-       oldX = qRound(Doc->currentPage()->xOffset()- 10);
-       oldY = qRound(Doc->currentPage()->yOffset()- 10);
-       SetCPo(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
+       setZoom();
+       m_oldZoomX = qRound(Doc->currentPage()->xOffset()- 10);
+       m_oldZoomY = qRound(Doc->currentPage()->yOffset()- 10);
+       setCanvasPos(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
        updateOn = true;
        endEditButton->setVisible(true);
        DrawNew();
@@ -2503,10 +2519,10 @@
        m_ScMW->pageSelector->setEnabled(false);
        m_ScMW->layerMenu->setEnabled(false);
        updateOn = false;
-       zoom();
-       oldX = qRound(Doc->currentPage()->xOffset()- 10);
-       oldY = qRound(Doc->currentPage()->yOffset()- 10);
-       SetCPo(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
+       setZoom();
+       m_oldZoomX = qRound(Doc->currentPage()->xOffset()- 10);
+       m_oldZoomY = qRound(Doc->currentPage()->yOffset()- 10);
+       setCanvasPos(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
        updateOn = true;
        endEditButton->setVisible(true);
        DrawNew();
@@ -2538,10 +2554,10 @@
        m_ScMW->pageSelector->setEnabled(false);
        m_ScMW->layerMenu->setEnabled(false);
        updateOn = false;
-       zoom();
-       oldX = qRound(Doc->currentPage()->xOffset()- 10);
-       oldY = qRound(Doc->currentPage()->yOffset()- 10);
-       SetCPo(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
+       setZoom();
+       m_oldZoomX = qRound(Doc->currentPage()->xOffset()- 10);
+       m_oldZoomY = qRound(Doc->currentPage()->yOffset()- 10);
+       setCanvasPos(Doc->currentPage()->xOffset() - 10, 
Doc->currentPage()->yOffset() - 10);
        updateOn = true;
        endEditButton->setVisible(true);
        DrawNew();
@@ -3140,7 +3156,7 @@
 
        UndoTransaction 
trans(undoManager->beginTransaction(currItem->getUName(), 
currItem->getUPixmap(), Um::ToOutlines, "", nullptr));
        int offset = 0;
-       for(int i = 0; i < selectedItemCount; ++i)
+       for (int i = 0; i < selectedItemCount; ++i)
        {
                PageItem *currItem = tmpSelection.itemAt(offset);
                bool cont = false;
@@ -3240,7 +3256,7 @@
        if (toDeleteItemCount != 0)
        {
                tmpSelection.clear();
-               for(int i = 0; i < toDeleteItemCount; ++i)
+               for (int i = 0; i < toDeleteItemCount; ++i)
                        tmpSelection.addItem(delItems.takeAt(0)); //yes, 0, 
remove the first
                Doc->itemSelection_DeleteItem(&tmpSelection);
        }
@@ -3267,7 +3283,7 @@
        //qDebug() << "IME" << event->commitString() << event->preeditString() 
<< "attributes:" << event->attributes().count();
        // #9682 : Avoid parameter type ambiguity in QKeyEvent constructor with 
Qt3Support enabled Qt builds
        Qt::KeyboardModifiers modifiers = Qt::NoModifier;
-       for(int i = 0; i < event->commitString().length(); ++i)
+       for (int i = 0; i < event->commitString().length(); ++i)
        {
                QKeyEvent ev( QEvent::KeyPress, 0, modifiers, 
event->commitString().mid(i,1));
                keyPressEvent(&ev);
@@ -3285,13 +3301,12 @@
        if (w->modifiers() == Qt::ControlModifier)
        {
                FPoint mp = m_canvas->globalToCanvas(w->globalPos());
-               w->delta() > 0 ? slotZoomIn(mp.x(), mp.y()) : 
slotZoomOut(mp.x(), mp.y());
-               
+               w->delta() > 0 ? slotZoomIn(mp.x(), mp.y() , true) : 
slotZoomOut(mp.x(), mp.y(), true);
        }
        else
        {
-               int dX=0,dY=0;
-               int moveBy=(w->delta() < 0) ? Prefs->uiPrefs.wheelJump : 
-Prefs->uiPrefs.wheelJump;
+               int dX = 0,dY = 0;
+               int moveBy = (w->delta() < 0) ? Prefs->uiPrefs.wheelJump : 
-Prefs->uiPrefs.wheelJump;
                if ((w->orientation() != Qt::Vertical) || ( w->modifiers() == 
Qt::ShiftModifier ))
                        dX = moveBy;
                else
@@ -3599,7 +3614,7 @@
 
 void ScribusView::zoom(double scale)
 {
-       double zPointX = oldX, zPointY = oldY;
+       double zPointX = m_oldZoomX, zPointY = m_oldZoomY;
        if (scale <= 0.0)
                scale = m_canvas->scale();
        if (Doc->m_Selection->count() != 0)

Modified: trunk/Scribus/scribus/scribusview.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22801&path=/trunk/Scribus/scribus/scribusview.h
==============================================================================
--- trunk/Scribus/scribus/scribusview.h (original)
+++ trunk/Scribus/scribus/scribusview.h Sun Jan 13 13:11:19 2019
@@ -46,6 +46,7 @@
 #include <QPoint>
 #include <QRect>
 #include <QRectF>
+#include <QSize>
 #include <QTime>
 #include <QTimer>
 #include <QWheelEvent>
@@ -195,7 +196,6 @@
        void updateCanvas(double x, double y, double width, double height) { 
updateCanvas(QRectF(x,y,width,height)); }
        void setCanvasOrigin(double x, double y);
        void setCanvasCenter(double x, double y);
-       void scrollCanvasBy(double deltaX, double deltaY);
        FPoint canvasOrigin() const;
        QRectF visibleCanvas() const;
        void setRedrawMarkerShown(bool shown);
@@ -208,16 +208,23 @@
        void resizeContents(int w, int h);
        QPoint contentsToViewport(QPoint p);
        QPoint viewportToContents(QPoint p);
+
 public: // for now
        int contentsX();
        int contentsY();
        int contentsWidth();
        int contentsHeight();
+       int visibleWidth() { return viewport()->size().width(); };
+       int visibleHeight() { return viewport()->size().height(); };
+
+       void setCanvasPos(double x, double y);
+       void setCanvasCenterPos(double x, double y);
        void setContentsPos(int x, int y);
-       int visibleWidth() { return viewport()->size().width(); } ;
-       int visibleHeight() { return viewport()->size().height(); } ;
-       void stopAllDrags();
+
        void scrollBy(int x, int y);
+       void scrollCanvasBy(double deltaX, double deltaY);
+       void scrollContentsBy(int dx, int dy);
+
        void zoom(double scale = 0.0);
        void zoom(int canvasX, int canvasY, double scale, bool preservePoint);
 
@@ -232,8 +239,8 @@
   /** Zooms in or out */
        void slotZoom100();
   /** Zooms in */
-       void slotZoomIn(int mx=0,int my=0);
-       void slotZoomOut(int mx=0,int my=0);
+       void slotZoomIn(int mx = 0, int my = 0, bool preservePoint = false);
+       void slotZoomOut(int mx = 0, int my = 0, bool preservePoint = false);
   /** Redraws everything */
        void DrawNew();
        void GotoPa(int Seite);
@@ -241,8 +248,6 @@
        void GotoPage(int Seite);
        void ChgUnit(int art);
 
-       void SetCPo(double x, double y);
-       void SetCCPo(double x, double y);
        void editExtendedImageProperties();
        void RefreshGradient(PageItem *currItem, double dx = 8, double dy = 8);
        void ToPicFrame();
@@ -266,15 +271,14 @@
        QPoint m_pressLocation;
        QTime m_moveTimer;
        QTimer *m_dragTimer;
-       bool m_dragTimerFired;
-       bool Ready;
-       int  oldX;
-       int  oldY;
-       int  m_groupTransactions;
-       int m_oldCanvasHeight;
-       int m_oldCanvasWidth;
+       bool  m_dragTimerFired;
+       bool  m_ready;
+       int   m_oldZoomX;
+       int   m_oldZoomY;
+       QSize m_oldCanvasSize;
+       int   m_groupTransactions;
        UndoTransaction m_groupTransaction;
-       bool _isGlobalMode;
+       bool  _isGlobalMode;
        bool linkAfterDraw;
        bool ImageAfterDraw;
 
@@ -310,6 +314,7 @@
        inline void stopDragTimer();
        inline void resetDragTimer();
        inline bool dragTimerElapsed();
+       void stopAllDrags();
 
        bool handleObjectImport(QMimeData* mimeData, TransactionSettings* 
trSettings = nullptr);
 
@@ -326,7 +331,6 @@
        virtual void contentsDropEvent(QDropEvent *e);
        virtual void setHBarGeometry(QScrollBar &bar, int x, int y, int w, int 
h);
        virtual void setVBarGeometry(QScrollBar &bar, int x, int y, int w, int 
h);
-       void scrollContentsBy(int dx, int dy);
        
        //The width of vertical ruler/height of horizontal ruler, set to 17 in 
scribusview.cpp
        int m_vhRulerHW;


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to