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

List:       kde-commits
Subject:    [kst-plot] src: Save alpha channel for curves.
From:       Barth Netterfield <netterfield () astro ! utoronto ! ca>
Date:       2014-06-30 19:50:25
Message-ID: E1X1har-0006nx-Mu () scm ! kde ! org
[Download RAW message or body]

Git commit 2af880cbd417427cbf422c3114c81c8e3f333c6f by Barth Netterfield.
Committed on 30/06/2014 at 19:45.
Pushed by netterfield into branch 'master'.

Save alpha channel for curves.

M  +3    -0    src/libkstmath/curve.cpp
M  +39   -8    src/libkstmath/curvefactory.cpp
M  +3    -4    src/widgets/colorbutton.cpp

http://commits.kde.org/kst-plot/2af880cbd417427cbf422c3114c81c8e3f333c6f

diff --git a/src/libkstmath/curve.cpp b/src/libkstmath/curve.cpp
index fb3bb66..e437936 100644
--- a/src/libkstmath/curve.cpp
+++ b/src/libkstmath/curve.cpp
@@ -300,8 +300,11 @@ void Curve::save(QXmlStreamWriter &s) {
     s.writeAttribute("erroryminusvector", _inputVectors[EYMINUSVECTOR]->Name());
   }
   s.writeAttribute("color", Color.name());
+  s.writeAttribute("alpha", QString::number(Color.alpha()));
   s.writeAttribute("headcolor", HeadColor.name());
+  s.writeAttribute("headalpha", QString::number(HeadColor.alpha()));
   s.writeAttribute("barfillcolor", BarFillColor.name());
+  s.writeAttribute("barfillalpha", QString::number(BarFillColor.alpha()));
 
   s.writeAttribute("haslines", QVariant(HasLines).toString());
   s.writeAttribute("linewidth", QString::number(LineWidth));
diff --git a/src/libkstmath/curvefactory.cpp b/src/libkstmath/curvefactory.cpp
index 244838e..927394c 100644
--- a/src/libkstmath/curvefactory.cpp
+++ b/src/libkstmath/curvefactory.cpp
@@ -35,9 +35,16 @@ RelationPtr CurveFactory::generateRelation(ObjectStore *store, \
QXmlStreamReader&  
   int lineStyle=0, lineWidth=0, pointType=0, pointDensity=0, pointSize = 0, \
headType=0;  QString xVectorName, yVectorName, legend, errorXVectorName, \
                errorYVectorName, errorXMinusVectorName;
-  QString errorYMinusVectorName, color, headColor;
-  QString barFillColor;
+  QString errorYMinusVectorName;
+  QString colorName;
+  QString headColorName;
+  QString barFillColorName;
   QString descriptiveName;
+  int alpha = 255;
+  int barFillAlpha = 255;
+  int headAlpha = 255;
+  QString alphaStr;
+
   bool hasLines=true, hasPoints=false, hasBars=false, ignoreAutoScale=false, \
hasHead=false;  
   while (!xml.atEnd()) {
@@ -48,9 +55,23 @@ RelationPtr CurveFactory::generateRelation(ObjectStore *store, \
QXmlStreamReader&  xVectorName = attrs.value("xvector").toString();
         yVectorName = attrs.value("yvector").toString();
         legend = attrs.value("legend").toString();
-        color = attrs.value("color").toString();
-        headColor = attrs.value("headcolor").toString();
-        barFillColor = attrs.value("barfillcolor").toString();
+        colorName = attrs.value("color").toString();
+        headColorName = attrs.value("headcolor").toString();
+        barFillColorName = attrs.value("barfillcolor").toString();
+
+        alphaStr = attrs.value("alpha").toString();
+        if (!alphaStr.isEmpty()) {
+          alpha = alphaStr.toInt();
+        }
+        alphaStr = attrs.value("headalpha").toString();
+        if (!alphaStr.isEmpty()) {
+          headAlpha = alphaStr.toInt();
+        }
+        alphaStr = attrs.value("barfillalpha").toString();
+        if (!alphaStr.isEmpty()) {
+          barFillAlpha = alphaStr.toInt();
+        }
+
 
         errorXVectorName = attrs.value("errorxvector").toString();
         errorYVectorName = attrs.value("erroryvector").toString();
@@ -147,13 +168,23 @@ RelationPtr CurveFactory::generateRelation(ObjectStore *store, \
QXmlStreamReader&  curve->setYError(errorYVector);
   curve->setXMinusError(errorXMinusVector);
   curve->setYMinusError(errorYMinusVector);
-  curve->setColor(QColor(color));
+
+  QColor color(colorName);
+  color.setAlpha(alpha);
+  curve->setColor(color);
+
+  QColor headColor(colorName);
+  headColor.setAlpha(headAlpha);
   curve->setHeadColor(QColor(headColor));
-  if (barFillColor.isEmpty()) {
+
+  if (barFillColorName.isEmpty()) {
     curve->setBarFillColor(curve->color());
   } else {
-    curve->setBarFillColor(QColor(barFillColor));
+    QColor barFillColor(barFillColorName);
+    barFillColor.setAlpha(barFillAlpha);
+    curve->setBarFillColor(barFillColor);
   }
+
   curve->setHasPoints(hasPoints);
   curve->setHasLines(hasLines);
   curve->setHasBars(hasBars);
diff --git a/src/widgets/colorbutton.cpp b/src/widgets/colorbutton.cpp
index c8627d5..f5db857 100644
--- a/src/widgets/colorbutton.cpp
+++ b/src/widgets/colorbutton.cpp
@@ -80,10 +80,9 @@ void ColorButton::chooseColor() {
   if (_color == Qt::transparent) {
     _color = Qt::black;
   }
-  QRgb rgba = QColorDialog::getRgba(_color.rgba(), &ok, parentWidget());
-  if (ok) {
-    QColor color;
-    color.setRgba(rgba);
+  QColor color = QColorDialog::getColor(_color, parentWidget(), "Choose Color", \
QColorDialog::ShowAlphaChannel); +
+  if (color.isValid()) {
     setColor(color);
   }
 }


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

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