[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [krita/krita-testing-wolthera] libs/ui/widgets: Add offset to circle and rectangle as well.
From:       Wolthera van Hovell tot Westerflier <griffinvalley () gmail ! com>
Date:       2016-08-24 11:55:04
Message-ID: E1bcWls-0001l1-9X () code ! kde ! org
[Download RAW message or body]

Git commit 439cc77b25571338dfc0c23cf3f09023cdd9d344 by Wolthera van Hovell tot \
Westerflier. Committed on 24/08/2016 at 11:54.
Pushed by woltherav into branch 'krita-testing-wolthera'.

Add offset to circle and rectangle as well.

And more cursor fixes... grrrr.

M  +39   -17   libs/ui/widgets/kis_visual_color_selector.cpp

http://commits.kde.org/krita/439cc77b25571338dfc0c23cf3f09023cdd9d344

diff --git a/libs/ui/widgets/kis_visual_color_selector.cpp \
b/libs/ui/widgets/kis_visual_color_selector.cpp index 52c4fc1..3c6f83e 100644
--- a/libs/ui/widgets/kis_visual_color_selector.cpp
+++ b/libs/ui/widgets/kis_visual_color_selector.cpp
@@ -441,7 +441,6 @@ void KisVisualColorSelectorShape::setColor(KoColor c)
     }
     m_d->currentColor = c;
     updateCursor();
-    convertShapeCoordinateToKoColor(getCursorPosition(), true);
     m_d->imagesNeedUpdate = true;
     update();
 }
@@ -814,7 +813,9 @@ QVector <qreal> \
KisVisualColorSelectorShape::getHSX(QVector<qreal> hsx, bool wra  {
     QVector <qreal> ihsx = hsx;
     if (!wrangler){
-        ihsx[2] = m_d->tone;
+        if (hsx[2]>m_d->tone-0.01 && hsx[2]<m_d->tone+0.01) {
+            ihsx[2] = m_d->tone;
+        }
         if (m_d->model==HSV){
             if (hsx[2]<=0.0) {
                 ihsx[1] = m_d->sat;
@@ -842,7 +843,9 @@ void KisVisualColorSelectorShape::setHSX(QVector<qreal> hsx, bool \
wrangler)  m_d->sat = hsx[1];
         m_d->hue = hsx[0];
     } else {
-        m_d->tone = hsx[2];
+        if (m_d->channel1==2 || m_d->channel2==2){
+            m_d->tone=hsx[2];
+        }
         if (m_d->model==HSV){
             if (hsx[2]>0.0) {
                  m_d->sat = hsx[1];
@@ -927,12 +930,13 @@ QPointF \
KisVisualRectangleSelectorShape::convertShapeCoordinateToWidgetCoordinat  {
     qreal x = m_barWidth/2;
     qreal y = m_barWidth/2;
+    qreal offset = 5.0;
     KisVisualColorSelectorShape::Dimensions dimension = getDimensions();
     if (dimension == KisVisualColorSelectorShape::onedimensional) {
         if ( m_type == KisVisualRectangleSelectorShape::vertical) {
-            y = coordinate.x()*height();
+            y = qMin(coordinate.x()*(height()-offset*2)+offset, (qreal)height());
         } else if (m_type == KisVisualRectangleSelectorShape::horizontal) {
-            x = coordinate.x()*width();
+            x = qMin(coordinate.x()*(width()-offset*2)+offset, (qreal)width());
         } else if (m_type == KisVisualRectangleSelectorShape::border) {
 
             QRectF innerRect(m_barWidth/2, m_barWidth/2, width()-m_barWidth, \
height()-m_barWidth); @@ -1002,8 +1006,8 @@ QPointF \
KisVisualRectangleSelectorShape::convertShapeCoordinateToWidgetCoordinat  
         }
     } else {
-        x = coordinate.x()*width();
-        y = coordinate.y()*height();
+        x = qMin(coordinate.x()*(height()-offset*2)+offset, (qreal)height());
+        y = qMin(coordinate.y()*(width()-offset*2)+offset, (qreal)width());
     }
     return QPointF(x,y);
 }
@@ -1013,13 +1017,14 @@ QPointF \
KisVisualRectangleSelectorShape::convertWidgetCoordinateToShapeCoordinat  //default \
implementation:  qreal x = 0.5;
     qreal y = 0.5;
+    qreal offset = 5.0;
     KisVisualColorSelectorShape::Dimensions dimension = getDimensions();
     if (getMaskMap().contains(coordinate)) {
         if (dimension == KisVisualColorSelectorShape::onedimensional ) {
             if (m_type == KisVisualRectangleSelectorShape::vertical) {
-                x = (qreal)coordinate.y()/(qreal)height();
+                x = qMax(((qreal)coordinate.y()-offset)/((qreal)height()-offset*2), \
                0.0);
             } else if (m_type == KisVisualRectangleSelectorShape::horizontal) {
-                x = (qreal)coordinate.x()/(qreal)width();
+                x = \
                qMax(((qreal)coordinate.x()-offset)/((qreal)width()-offset*2),0.0);
             } else if (m_type == KisVisualRectangleSelectorShape::border) {
                 //border
 
@@ -1093,8 +1098,8 @@ QPointF \
KisVisualRectangleSelectorShape::convertWidgetCoordinateToShapeCoordinat  }
         }
         else {
-            x = (qreal)coordinate.x()/(qreal)width();
-            y = (qreal)coordinate.y()/(qreal)height();
+            x = qMax(((qreal)coordinate.x()-offset)/((qreal)width()-offset*2), 0.0);
+            y = qMax(((qreal)coordinate.y()-offset)/((qreal)height()-offset*2), \
0.0);;  }
     }
     return QPointF(x, y);
@@ -1132,6 +1137,14 @@ void KisVisualRectangleSelectorShape::drawCursor()
         int x = ( cursorPoint.x()-(width()/2)+1 );
         int y = ( cursorPoint.y()-cursorwidth );
         rect.setCoords(x, y, x+width()-2, y+(cursorwidth*2));
+        painter.save();
+        painter.setCompositionMode(QPainter::CompositionMode_Clear);
+        QPen pen;
+        pen.setWidth(5);
+        painter.setPen(pen);
+        painter.drawLine(QLine(QPoint(0.0,0.0), QPoint(0.0,height())));
+        painter.drawLine(QLine(QPoint(width(),0.0), QPoint(width(),height())));
+        painter.restore();
     } else {
         int x = cursorPoint.x()-cursorwidth;
         int y = cursorPoint.y()-(height()/2)+1;
@@ -1165,6 +1178,14 @@ void KisVisualRectangleSelectorShape::drawCursor()
         painter.drawEllipse(mirror, cursorwidth-1, cursorwidth-1);
 
     } else {
+        painter.save();
+        painter.setCompositionMode(QPainter::CompositionMode_Clear);
+        QPen pen;
+        pen.setWidth(5);
+        painter.setPen(pen);
+        painter.drawRect(QRect(0,0,width(),height()));
+        painter.restore();
+
         painter.setPen(Qt::white);
         fill.setColor(Qt::white);
         painter.setBrush(fill);
@@ -1250,6 +1271,7 @@ QPointF \
KisVisualEllipticalSelectorShape::convertShapeCoordinateToWidgetCoordina  {
     qreal x;
     qreal y;
+    qreal offset=7.0;
     qreal a = (qreal)width()*0.5;
     QPointF center(a, a);
     QLineF line(center, QPoint((m_barWidth*0.5),a));
@@ -1263,7 +1285,7 @@ QPointF \
KisVisualEllipticalSelectorShape::convertShapeCoordinateToWidgetCoordina  }
     line.setAngle(angle);
     if (getDimensions()!=KisVisualColorSelectorShape::onedimensional) {
-        line.setLength(coordinate.y()*a);
+        line.setLength(coordinate.y()*a-offset);
     }
     x = qRound(line.p2().x());
     y = qRound(line.p2().y());
@@ -1275,9 +1297,10 @@ QPointF \
KisVisualEllipticalSelectorShape::convertWidgetCoordinateToShapeCoordina  //default \
implementation:  qreal x = 0.5;
     qreal y = 1.0;
+    qreal offset = 7.0;
     QRect total(0, 0, width(), height());
     QLineF line(total.center(), coordinate);
-    qreal a = total.width()/2;
+    qreal a = (total.width()/2)-offset;
     qreal angle;
 
     if (m_type!=KisVisualEllipticalSelectorShape::borderMirrored){
@@ -1286,7 +1309,7 @@ QPointF \
KisVisualEllipticalSelectorShape::convertWidgetCoordinateToShapeCoordina  angle = \
angle+180.0;  x = angle/360.0;
         if (getDimensions()==KisVisualColorSelectorShape::twodimensional) {
-            y = qBound(0.0,line.length()/a, 1.0);
+            y = qBound(0.0,(line.length())/a, 1.0);
         }
 
     } else {
@@ -1297,11 +1320,10 @@ QPointF \
KisVisualEllipticalSelectorShape::convertWidgetCoordinateToShapeCoordina  }
         x = (angle/360.0)*2;
         if (getDimensions()==KisVisualColorSelectorShape::twodimensional) {
-            y = line.length()/a;
+            y = qBound(0.0,(line.length())/a, 1.0);
         }
     }
 
-
     return QPointF(x, y);
 }
 
@@ -1457,7 +1479,7 @@ QPointF \
                KisVisualTriangleSelectorShape::convertWidgetCoordinateToShapeCoordinate
                
     qreal horizontalLineLength = ((qreal)coordinate.y())*(2./sqrt(3.))-(offset*2);
     qreal horizontalLineStart = (triWidth*0.5)-(horizontalLineLength*0.5);
 
-    qreal relativeX = qMax((qreal)coordinate.x()-offset,0.0)-horizontalLineStart;
+    qreal relativeX = qMax((qreal)coordinate.x(),0.0)-horizontalLineStart;
     x = relativeX/horizontalLineLength;
     if (coordinate.y()<offset){
         x = 0.5;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic