Author: jghali
Date: Fri Mar 15 15:06:14 2019
New Revision: 22897

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22897
Log:
#15603: Image rotation increment down button doesn't go below zero (or wrap to 
360)

Modified:
    trunk/Scribus/scribus/ui/propertiespalette_xyz.cpp
    trunk/Scribus/scribus/ui/scrspinbox.cpp
    trunk/Scribus/scribus/ui/scrspinbox.h

Modified: trunk/Scribus/scribus/ui/propertiespalette_xyz.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22897&path=/trunk/Scribus/scribus/ui/propertiespalette_xyz.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/propertiespalette_xyz.cpp  (original)
+++ trunk/Scribus/scribus/ui/propertiespalette_xyz.cpp  Fri Mar 15 15:06:14 2019
@@ -72,11 +72,12 @@
        keepFrameWHRatioButton->setAutoRaise( true );
        keepFrameWHRatioButton->setMaximumSize( QSize( 15, 32767 ) );
        keepFrameWHRatioButton->setChecked(false);
+
+       rotationSpin->setNewUnit(6);
        rotationSpin->setWrapping( true );
        installSniffer(rotationSpin);
-
-       rotationSpin->setNewUnit(6);
        rotationLabel->setBuddy(rotationSpin);
+
        IconManager* im=IconManager::instance();
        levelUp->setIcon(im->loadIcon("16/go-up.png"));
        levelDown->setIcon(im->loadIcon("16/go-down.png"));
@@ -114,13 +115,13 @@
 
        languageChange();
 
-       connect(xposSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleNewX()));
+       /*connect(xposSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleNewX()));
        connect(yposSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleNewY()));
        connect(widthSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleNewW()));
        connect(heightSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleNewH()));
        connect(rotationSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleRotation()));
        connect(flipH, SIGNAL(clicked()), this, SLOT(handleFlipH()));
-       connect(flipV, SIGNAL(clicked()), this, SLOT(handleFlipV()));
+       connect(flipV, SIGNAL(clicked()), this, SLOT(handleFlipV()));*/
        connect(levelUp, SIGNAL(clicked()), this, SLOT(handleRaise()));
        connect(levelDown, SIGNAL(clicked()), this, SLOT(handleLower()));
        connect(levelTop, SIGNAL(clicked()), this, SLOT(handleFront()));
@@ -128,9 +129,9 @@
        connect(basePointWidget, SIGNAL(buttonClicked(int)), this, 
SLOT(handleBasePoint(int)));
 
        connect(nameEdit , SIGNAL(Leaved()) , this, SLOT(handleNewName()));
-       connect(doLock   , SIGNAL(clicked()), this, SLOT(handleLock()));
+       /*connect(doLock   , SIGNAL(clicked()), this, SLOT(handleLock()));
        connect(noPrint  , SIGNAL(clicked()), this, SLOT(handlePrint()));
-       connect(noResize , SIGNAL(clicked()), this, SLOT(handleLockSize()));
+       connect(noResize , SIGNAL(clicked()), this, SLOT(handleLockSize()));*/
        connect(doGroup  , SIGNAL(clicked()), this, SLOT(handleGrouping()) );
        connect(doUnGroup, SIGNAL(clicked()), this, SLOT(handleUngrouping()) );
 
@@ -332,16 +333,16 @@
        rotationSpin->setValue(fabs(rr));
 
 //CB TODO reconnect PP signals from here
-       connect(xposSpin    , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewX()));
-       connect(yposSpin    , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewY()));
-       connect(widthSpin   , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewW()));
-       connect(heightSpin  , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewH()));
-       connect(doLock  , SIGNAL(clicked()), this, SLOT(handleLock()));
-       connect(noPrint , SIGNAL(clicked()), this, SLOT(handlePrint()));
-       connect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()));
-       connect(flipH   , SIGNAL(clicked()), this, SLOT(handleFlipH()));
-       connect(flipV   , SIGNAL(clicked()), this, SLOT(handleFlipV()));
-       connect(rotationSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleRotation()));
+       connect(xposSpin    , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewX()), Qt::UniqueConnection);
+       connect(yposSpin    , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewY()), Qt::UniqueConnection);
+       connect(widthSpin   , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewW()), Qt::UniqueConnection);
+       connect(heightSpin  , SIGNAL(valueChanged(double)), this, 
SLOT(handleNewH()), Qt::UniqueConnection);
+       connect(doLock  , SIGNAL(clicked()), this, SLOT(handleLock()), 
Qt::UniqueConnection);
+       connect(noPrint , SIGNAL(clicked()), this, SLOT(handlePrint()), 
Qt::UniqueConnection);
+       connect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()), 
Qt::UniqueConnection);
+       connect(flipH   , SIGNAL(clicked()), this, SLOT(handleFlipH()), 
Qt::UniqueConnection);
+       connect(flipV   , SIGNAL(clicked()), this, SLOT(handleFlipV()), 
Qt::UniqueConnection);
+       connect(rotationSpin, SIGNAL(valueChanged(double)), this, 
SLOT(handleRotation()), Qt::UniqueConnection);
 
        bool setter = false;
        xposSpin->setEnabled(!setter);
@@ -660,9 +661,9 @@
        double rr = r;
        if (r > 0)
                rr = 360 - rr;
-       bool sigBlocked = rotationSpin->blockSignals(true);
-       rotationSpin->setValue(fabs(rr));
-       rotationSpin->blockSignals(sigBlocked);
+       //bool sigBlocked = rotationSpin->blockSignals(true);
+       rotationSpin->showValue(fabs(rr));
+       //rotationSpin->blockSignals(sigBlocked);
 }
 
 void PropertiesPalette_XYZ::handleNewX()

Modified: trunk/Scribus/scribus/ui/scrspinbox.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22897&path=/trunk/Scribus/scribus/ui/scrspinbox.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/scrspinbox.cpp     (original)
+++ trunk/Scribus/scribus/ui/scrspinbox.cpp     Fri Mar 15 15:06:14 2019
@@ -73,6 +73,21 @@
        this->blockSignals(sigBlocked);
 }
 
+void ScrSpinBox::stepBy(int steps)
+{
+       if (m_unitIndex == SC_DEGREES)
+       {
+               double angle = this->value();
+               angle += steps * singleStep();
+               while (angle < 0.0)
+                       angle += 360.0;
+               while (angle > 360)
+                       angle -= 360.0;
+               setValue(angle);
+               return;
+       }
+       QDoubleSpinBox::stepBy(steps);
+}
 
 void ScrSpinBox::setParameters( int s )
 {

Modified: trunk/Scribus/scribus/ui/scrspinbox.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22897&path=/trunk/Scribus/scribus/ui/scrspinbox.h
==============================================================================
--- trunk/Scribus/scribus/ui/scrspinbox.h       (original)
+++ trunk/Scribus/scribus/ui/scrspinbox.h       Fri Mar 15 15:06:14 2019
@@ -44,6 +44,9 @@
 
                uint   unitIndex() const { return m_unitIndex; }
                double unitRatio() const;
+
+               // Reimplement QDoubleSpinBox::stepBy() for angle wrapping
+               void stepBy(int steps) override;
                
        public slots:
                void setValues(double min, double max, int deci, double val);


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

Reply via email to