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

List:       kde-commits
Subject:    [labplot] src/backend/worksheet/plots/cartesian: Removed couple of obsolete includes and fixed the i
From:       Alexander Semke <alexander.semke () web ! de>
Date:       2016-06-05 7:34:32
Message-ID: E1b9SZs-0000t4-4F () scm ! kde ! org
[Download RAW message or body]

Git commit 4da2a81d9362a6ac7c19fa90d7dfce44377dbeda by Alexander Semke.
Committed on 05/06/2016 at 07:34.
Pushed by asemke into branch 'master'.

Removed couple of obsolete includes and fixed the indentation in XYCurve.

M  +674  -665  src/backend/worksheet/plots/cartesian/XYCurve.cpp

http://commits.kde.org/labplot/4da2a81d9362a6ac7c19fa90d7dfce44377dbeda

diff --git a/src/backend/worksheet/plots/cartesian/XYCurve.cpp \
b/src/backend/worksheet/plots/cartesian/XYCurve.cpp index 41d745a..5c013a7 100644
--- a/src/backend/worksheet/plots/cartesian/XYCurve.cpp
+++ b/src/backend/worksheet/plots/cartesian/XYCurve.cpp
@@ -37,24 +37,17 @@
 #include "XYCurve.h"
 #include "XYCurvePrivate.h"
 #include "backend/core/column/Column.h"
-#include "backend/worksheet/plots/AbstractCoordinateSystem.h"
 #include "backend/worksheet/plots/cartesian/CartesianCoordinateSystem.h"
 #include "backend/worksheet/plots/cartesian/CartesianPlot.h"
 #include "backend/lib/commandtemplates.h"
 #include "backend/worksheet/Worksheet.h"
 #include "backend/lib/XmlStreamReader.h"
 
-#include <QGraphicsDropShadowEffect>
-#include <QGraphicsItem>
-#include <QGraphicsItemGroup>
-#include <QGraphicsPathItem>
-#include <QGraphicsEllipseItem>
-#include <QPainterPath>
 #include <QPainter>
 #include <QGraphicsSceneContextMenuEvent>
 #include <QMenu>
 #include <QtDebug>
-#include <QElapsedTimer>
+// #include <QElapsedTimer>
 
 #include <KIcon>
 #include <KConfigGroup>
@@ -65,13 +58,11 @@
 #include <math.h>
 #include <vector>
 
-XYCurve::XYCurve(const QString &name)
-		: WorksheetElement(name), d_ptr(new XYCurvePrivate(this)){
+XYCurve::XYCurve(const QString &name) : WorksheetElement(name), d_ptr(new \
XYCurvePrivate(this)) {  init();
 }
 
-XYCurve::XYCurve(const QString &name, XYCurvePrivate *dd)
-		: WorksheetElement(name), d_ptr(dd){
+XYCurve::XYCurve(const QString& name, XYCurvePrivate* dd) : WorksheetElement(name), \
d_ptr(dd) {  init();
 }
 
@@ -80,7 +71,7 @@ XYCurve::~XYCurve() {
 	//and is deleted during the cleanup in QGraphicsScene
 }
 
-void XYCurve::init(){
+void XYCurve::init() {
 	Q_D(XYCurve);
 
 	KConfig config;
@@ -107,10 +98,10 @@ void XYCurve::init(){
 	d->symbolsSize = group.readEntry("SymbolSize", Worksheet::convertToSceneUnits(5, \
Worksheet::Point));  d->symbolsRotationAngle = group.readEntry("SymbolRotation", \
0.0);  d->symbolsOpacity = group.readEntry("SymbolOpacity", 1.0);
-  	d->symbolsBrush.setStyle( (Qt::BrushStyle)group.readEntry("SymbolFillingStyle", \
                (int)Qt::NoBrush) );
-  	d->symbolsBrush.setColor( group.readEntry("SymbolFillingColor", \
                QColor(Qt::black)) );
-  	d->symbolsPen.setStyle( (Qt::PenStyle)group.readEntry("SymbolBorderStyle", \
                (int)Qt::SolidLine) );
-  	d->symbolsPen.setColor( group.readEntry("SymbolBorderColor", QColor(Qt::black)) \
); +	d->symbolsBrush.setStyle( (Qt::BrushStyle)group.readEntry("SymbolFillingStyle", \
(int)Qt::NoBrush) ); +	d->symbolsBrush.setColor( \
group.readEntry("SymbolFillingColor", QColor(Qt::black)) ); +	d->symbolsPen.setStyle( \
(Qt::PenStyle)group.readEntry("SymbolBorderStyle", (int)Qt::SolidLine) ); \
+	d->symbolsPen.setColor( group.readEntry("SymbolBorderColor", QColor(Qt::black)) );  \
d->symbolsPen.setWidthF( group.readEntry("SymbolBorderWidth", \
Worksheet::convertToSceneUnits(0.0, Worksheet::Point)) );  
 	d->valuesType = (XYCurve::ValuesType) group.readEntry("ValuesType", \
(int)XYCurve::NoValues); @@ -151,13 +142,13 @@ void XYCurve::init(){
 	this->initActions();
 }
 
-void XYCurve::initActions(){
+void XYCurve::initActions() {
 	visibilityAction = new QAction(i18n("visible"), this);
 	visibilityAction->setCheckable(true);
 	connect(visibilityAction, SIGNAL(triggered()), this, SLOT(visibilityChanged()));
 }
 
-QMenu* XYCurve::createContextMenu(){
+QMenu* XYCurve::createContextMenu() {
 	QMenu *menu = WorksheetElement::createContextMenu();
 	QAction* firstAction = menu->actions().at(1); //skip the first action because of \
the "title-action"  visibilityAction->setChecked(isVisible());
@@ -168,21 +159,21 @@ QMenu* XYCurve::createContextMenu(){
 /*!
 	Returns an icon to be used in the project explorer.
 */
-QIcon XYCurve::icon() const{
+QIcon XYCurve::icon() const {
 	return KIcon("labplot-xy-curve");
 }
 
-QGraphicsItem* XYCurve::graphicsItem() const{
+QGraphicsItem* XYCurve::graphicsItem() const {
 	return d_ptr;
 }
 
 STD_SWAP_METHOD_SETTER_CMD_IMPL(XYCurve, SetVisible, bool, swapVisible)
-void XYCurve::setVisible(bool on){
+void XYCurve::setVisible(bool on) {
 	Q_D(XYCurve);
 	exec(new XYCurveSetVisibleCmd(d, on, on ? i18n("%1: set visible") : i18n("%1: set \
invisible")));  }
 
-bool XYCurve::isVisible() const{
+bool XYCurve::isVisible() const {
 	Q_D(const XYCurve);
 	return d->isVisible();
 }
@@ -197,8 +188,12 @@ void XYCurve::setPrinting(bool on) {
 //##############################################################################
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, xColumn, xColumn)
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, yColumn, yColumn)
-QString& XYCurve::xColumnPath() const { return d_ptr->xColumnPath; }
-QString& XYCurve::yColumnPath() const {	return d_ptr->yColumnPath; }
+QString& XYCurve::xColumnPath() const {
+	return d_ptr->xColumnPath;
+}
+QString& XYCurve::yColumnPath() const {
+	return d_ptr->yColumnPath;
+}
 
 //line
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::LineType, lineType, lineType)
@@ -223,7 +218,9 @@ CLASS_SHARED_D_READER_IMPL(XYCurve, QPen, symbolsPen, symbolsPen)
 //values
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::ValuesType, valuesType, valuesType)
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn *, valuesColumn, \
                valuesColumn)
-QString& XYCurve::valuesColumnPath() const { return d_ptr->valuesColumnPath; }
+QString& XYCurve::valuesColumnPath() const {
+	return d_ptr->valuesColumnPath;
+}
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::ValuesPosition, valuesPosition, \
valuesPosition)  BASIC_SHARED_D_READER_IMPL(XYCurve, qreal, valuesDistance, \
valuesDistance)  BASIC_SHARED_D_READER_IMPL(XYCurve, qreal, valuesRotationAngle, \
valuesRotationAngle) @@ -247,15 +244,23 @@ BASIC_SHARED_D_READER_IMPL(XYCurve, qreal, \
fillingOpacity, fillingOpacity)  //error bars
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::ErrorType, xErrorType, xErrorType)
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, xErrorPlusColumn, \
                xErrorPlusColumn)
-QString& XYCurve::xErrorPlusColumnPath() const { return d_ptr->xErrorPlusColumnPath; \
} +QString& XYCurve::xErrorPlusColumnPath() const {
+	return d_ptr->xErrorPlusColumnPath;
+}
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, xErrorMinusColumn, \
                xErrorMinusColumn)
-QString& XYCurve::xErrorMinusColumnPath() const { return \
d_ptr->xErrorMinusColumnPath; } +QString& XYCurve::xErrorMinusColumnPath() const {
+	return d_ptr->xErrorMinusColumnPath;
+}
 
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::ErrorType, yErrorType, yErrorType)
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, yErrorPlusColumn, \
                yErrorPlusColumn)
-QString& XYCurve::yErrorPlusColumnPath() const { return d_ptr->yErrorPlusColumnPath; \
} +QString& XYCurve::yErrorPlusColumnPath() const {
+	return d_ptr->yErrorPlusColumnPath;
+}
 BASIC_SHARED_D_READER_IMPL(XYCurve, const AbstractColumn*, yErrorMinusColumn, \
                yErrorMinusColumn)
-QString& XYCurve::yErrorMinusColumnPath() const { return \
d_ptr->yErrorMinusColumnPath; } +QString& XYCurve::yErrorMinusColumnPath() const {
+	return d_ptr->yErrorMinusColumnPath;
+}
 
 BASIC_SHARED_D_READER_IMPL(XYCurve, XYCurve::ErrorBarsType, errorBarsType, \
errorBarsType)  BASIC_SHARED_D_READER_IMPL(XYCurve, qreal, errorBarsCapSize, \
errorBarsCapSize) @@ -279,7 +284,7 @@ void XYCurve::setXColumn(const AbstractColumn* \
column) {  //update the curve itself on changes
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(retransform()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(xColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(xColumnAboutToBeRemoved(const AbstractAspect*)));
 			//TODO: add disconnect in the undo-function
 		}
 	}
@@ -299,7 +304,7 @@ void XYCurve::setYColumn(const AbstractColumn* column) {
 			//update the curve itself on changes
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(retransform()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(yColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(yColumnAboutToBeRemoved(const AbstractAspect*)));
 			//TODO: add disconnect in the undo-function
 		}
 	}
@@ -422,7 +427,7 @@ void XYCurve::setValuesColumn(const AbstractColumn* column) {
 		if (column) {
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(updateValues()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(valuesColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(valuesColumnAboutToBeRemoved(const AbstractAspect*)));
 		}
 	}
 }
@@ -565,7 +570,7 @@ void XYCurve::setXErrorPlusColumn(const AbstractColumn* column) {
 		if (column) {
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(updateErrorBars()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(xErrorPlusColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(xErrorPlusColumnAboutToBeRemoved(const AbstractAspect*)));
 		}
 	}
 }
@@ -578,7 +583,7 @@ void XYCurve::setXErrorMinusColumn(const AbstractColumn* column) \
{  if (column) {
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(updateErrorBars()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(xErrorMinusColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(xErrorMinusColumnAboutToBeRemoved(const AbstractAspect*)));
 		}
 	}
 }
@@ -598,7 +603,7 @@ void XYCurve::setYErrorPlusColumn(const AbstractColumn* column) {
 		if (column) {
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(updateErrorBars()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(yErrorPlusColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(yErrorPlusColumnAboutToBeRemoved(const AbstractAspect*)));
 		}
 	}
 }
@@ -611,7 +616,7 @@ void XYCurve::setYErrorMinusColumn(const AbstractColumn* column) \
{  if (column) {
 			connect(column, SIGNAL(dataChanged(const AbstractColumn*)), this, \
SLOT(updateErrorBars()));  connect(column->parentAspect(), \
                SIGNAL(aspectAboutToBeRemoved(const AbstractAspect*)),
-					this, SLOT(yErrorMinusColumnAboutToBeRemoved(const AbstractAspect*)));
+			        this, SLOT(yErrorMinusColumnAboutToBeRemoved(const AbstractAspect*)));
 		}
 	}
 }
@@ -668,7 +673,7 @@ void XYCurve::updateErrorBars() {
 }
 
 //TODO
-void XYCurve::handlePageResize(double horizontalRatio, double verticalRatio){
+void XYCurve::handlePageResize(double horizontalRatio, double verticalRatio) {
 	Q_D(const XYCurve);
 
 	setSymbolsSize(d->symbolsSize * horizontalRatio);
@@ -777,11 +782,11 @@ QPainterPath XYCurvePrivate::shape() const {
 	return curveShape;
 }
 
-void XYCurvePrivate::contextMenuEvent(QGraphicsSceneContextMenuEvent* event){
-    q->createContextMenu()->exec(event->screenPos());
+void XYCurvePrivate::contextMenuEvent(QGraphicsSceneContextMenuEvent* event) {
+	q->createContextMenu()->exec(event->screenPos());
 }
 
-bool XYCurvePrivate::swapVisible(bool on){
+bool XYCurvePrivate::swapVisible(bool on) {
 	bool oldValue = isVisible();
 	setVisible(on);
 	emit q->visibilityChanged(on);
@@ -792,8 +797,8 @@ bool XYCurvePrivate::swapVisible(bool on){
   recalculates the position of the points to be drawn. Called when the data was \
changed.  Triggers the update of lines, drop lines, symbols etc.
 */
-void XYCurvePrivate::retransform(){
-	if (m_suppressRetransform){
+void XYCurvePrivate::retransform() {
+	if (m_suppressRetransform) {
 		return;
 	}
 
@@ -802,7 +807,7 @@ void XYCurvePrivate::retransform(){
 	symbolPointsScene.clear();
 	connectedPointsLogical.clear();
 
-	if ( (NULL == xColumn) || (NULL == yColumn) ){
+	if ( (NULL == xColumn) || (NULL == yColumn) ) {
 		linePath = QPainterPath();
 		dropLinePath = QPainterPath();
 		symbolsPath = QPainterPath();
@@ -820,34 +825,34 @@ void XYCurvePrivate::retransform(){
 	AbstractColumn::ColumnMode yColMode = yColumn->columnMode();
 
 	//take over only valid and non masked points.
-	for (int row = startRow; row <= endRow; row++ ){
+	for (int row = startRow; row <= endRow; row++ ) {
 		if ( xColumn->isValid(row) && yColumn->isValid(row)
-			&& (!xColumn->isMasked(row)) && (!yColumn->isMasked(row)) ) {
+		        && (!xColumn->isMasked(row)) && (!yColumn->isMasked(row)) ) {
 
 			switch(xColMode) {
-				case AbstractColumn::Numeric:
-					tempPoint.setX(xColumn->valueAt(row));
-					break;
-				case AbstractColumn::Text:
-					//TODO
-				case AbstractColumn::DateTime:
-				case AbstractColumn::Month:
-				case AbstractColumn::Day:
-					//TODO
-					break;
+			case AbstractColumn::Numeric:
+				tempPoint.setX(xColumn->valueAt(row));
+				break;
+			case AbstractColumn::Text:
+			//TODO
+			case AbstractColumn::DateTime:
+			case AbstractColumn::Month:
+			case AbstractColumn::Day:
+				//TODO
+				break;
 			}
 
 			switch(yColMode) {
-				case AbstractColumn::Numeric:
-					tempPoint.setY(yColumn->valueAt(row));
-					break;
-				case AbstractColumn::Text:
-					//TODO
-				case AbstractColumn::DateTime:
-				case AbstractColumn::Month:
-				case AbstractColumn::Day:
-					//TODO
-					break;
+			case AbstractColumn::Numeric:
+				tempPoint.setY(yColumn->valueAt(row));
+				break;
+			case AbstractColumn::Text:
+			//TODO
+			case AbstractColumn::DateTime:
+			case AbstractColumn::Month:
+			case AbstractColumn::Day:
+				//TODO
+				break;
 			}
 			symbolPointsLogical.append(tempPoint);
 			connectedPointsLogical.push_back(true);
@@ -880,133 +885,139 @@ void XYCurvePrivate::retransform(){
   recalculates the painter path for the lines connecting the data points.
   Called each time when the type of this connection is changed.
 */
-void XYCurvePrivate::updateLines(){
-  	linePath = QPainterPath();
+void XYCurvePrivate::updateLines() {
+	linePath = QPainterPath();
 	lines.clear();
-	if (lineType == XYCurve::NoLine){
-	  updateFilling();
-	  recalcShapeAndBoundingRect();
-	  return;
+	if (lineType == XYCurve::NoLine) {
+		updateFilling();
+		recalcShapeAndBoundingRect();
+		return;
 	}
 
 	const int count=symbolPointsLogical.count();
 
 	//nothing to do, if no data points available
-	if (count<=1){
-	  	recalcShapeAndBoundingRect();
+	if (count<=1) {
+		recalcShapeAndBoundingRect();
 		return;
 	}
 
 	//calculate the lines connecting the data points
 	QPointF tempPoint1, tempPoint2;
 	QPointF curPoint, nextPoint;
-	switch(lineType){
-          case XYCurve::NoLine:
+	switch(lineType) {
+	case XYCurve::NoLine:
 		break;
-	  case XYCurve::Line:{
-		for (int i=0; i<count-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
+	case XYCurve::Line: {
+		for (int i=0; i<count-1; i++) {
+			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
 		}
 		break;
-	  }
-	  case XYCurve::StartHorizontal:{
-		for (int i=0; i<count-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  curPoint=symbolPointsLogical.at(i);
-		  nextPoint=symbolPointsLogical.at(i+1);
-		  tempPoint1=QPointF(nextPoint.x(), curPoint.y());
-		  lines.append(QLineF(curPoint, tempPoint1));
-		  lines.append(QLineF(tempPoint1, nextPoint));
+	}
+	case XYCurve::StartHorizontal: {
+		for (int i=0; i<count-1; i++) {
+			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			curPoint=symbolPointsLogical.at(i);
+			nextPoint=symbolPointsLogical.at(i+1);
+			tempPoint1=QPointF(nextPoint.x(), curPoint.y());
+			lines.append(QLineF(curPoint, tempPoint1));
+			lines.append(QLineF(tempPoint1, nextPoint));
 		}
 		break;
-	  }
-	  case XYCurve::StartVertical:{
-		for (int i=0; i<count-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  curPoint=symbolPointsLogical.at(i);
-		  nextPoint=symbolPointsLogical.at(i+1);
-		  tempPoint1=QPointF(curPoint.x(), nextPoint.y());
-		  lines.append(QLineF(curPoint, tempPoint1));
-		  lines.append(QLineF(tempPoint1,nextPoint));
+	}
+	case XYCurve::StartVertical: {
+		for (int i=0; i<count-1; i++) {
+			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			curPoint=symbolPointsLogical.at(i);
+			nextPoint=symbolPointsLogical.at(i+1);
+			tempPoint1=QPointF(curPoint.x(), nextPoint.y());
+			lines.append(QLineF(curPoint, tempPoint1));
+			lines.append(QLineF(tempPoint1,nextPoint));
 		}
 		break;
-	  }
-	  case XYCurve::MidpointHorizontal:{
-		for (int i=0; i<count-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  curPoint=symbolPointsLogical.at(i);
-		  nextPoint=symbolPointsLogical.at(i+1);
-		  tempPoint1=QPointF(curPoint.x() + (nextPoint.x()-curPoint.x())/2, curPoint.y());
-		  tempPoint2=QPointF(curPoint.x() + (nextPoint.x()-curPoint.x())/2, \
                nextPoint.y());
-		  lines.append(QLineF(curPoint, tempPoint1));
-		  lines.append(QLineF(tempPoint1, tempPoint2));
-		  lines.append(QLineF(tempPoint2, nextPoint));
+	}
+	case XYCurve::MidpointHorizontal: {
+		for (int i=0; i<count-1; i++) {
+			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			curPoint=symbolPointsLogical.at(i);
+			nextPoint=symbolPointsLogical.at(i+1);
+			tempPoint1=QPointF(curPoint.x() + (nextPoint.x()-curPoint.x())/2, curPoint.y());
+			tempPoint2=QPointF(curPoint.x() + (nextPoint.x()-curPoint.x())/2, nextPoint.y());
+			lines.append(QLineF(curPoint, tempPoint1));
+			lines.append(QLineF(tempPoint1, tempPoint2));
+			lines.append(QLineF(tempPoint2, nextPoint));
 		}
 		break;
-	  }
-	  case XYCurve::MidpointVertical:{
-		for (int i=0; i<count-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  curPoint=symbolPointsLogical.at(i);
-		  nextPoint=symbolPointsLogical.at(i+1);
-		  tempPoint1=QPointF(curPoint.x(), curPoint.y() + (nextPoint.y()-curPoint.y())/2);
-		  tempPoint2=QPointF(nextPoint.x(), curPoint.y() + \
                (nextPoint.y()-curPoint.y())/2);
-		  lines.append(QLineF(curPoint, tempPoint1));
-		  lines.append(QLineF(tempPoint1, tempPoint2));
-		  lines.append(QLineF(tempPoint2, nextPoint));
+	}
+	case XYCurve::MidpointVertical: {
+		for (int i=0; i<count-1; i++) {
+			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			curPoint=symbolPointsLogical.at(i);
+			nextPoint=symbolPointsLogical.at(i+1);
+			tempPoint1=QPointF(curPoint.x(), curPoint.y() + (nextPoint.y()-curPoint.y())/2);
+			tempPoint2=QPointF(nextPoint.x(), curPoint.y() + (nextPoint.y()-curPoint.y())/2);
+			lines.append(QLineF(curPoint, tempPoint1));
+			lines.append(QLineF(tempPoint1, tempPoint2));
+			lines.append(QLineF(tempPoint2, nextPoint));
 		}
 		break;
-	  }
-	  case XYCurve::Segments2:{
+	}
+	case XYCurve::Segments2: {
 		int skip=0;
-		for (int i=0; i<count-1; i++){
-		  if (skip!=1){
-			if (!lineSkipGaps && !connectedPointsLogical[i]) {skip=0; continue;}
-			lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
-			skip++;
-		  }else{
-			skip=0;
-		  }
+		for (int i=0; i<count-1; i++) {
+			if (skip!=1) {
+				if (!lineSkipGaps && !connectedPointsLogical[i]) {
+					skip=0;
+					continue;
+				}
+				lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
+				skip++;
+			} else {
+				skip=0;
+			}
 		}
 		break;
-	  }
-	  case XYCurve::Segments3:{
+	}
+	case XYCurve::Segments3: {
 		int skip=0;
-		for (int i=0; i<count-1; i++){
-		  if (skip!=2){
-			if (!lineSkipGaps && !connectedPointsLogical[i]) {skip=0; continue;}
-			lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
-			skip++;
-		  }else{
-			skip=0;
-		  }
+		for (int i=0; i<count-1; i++) {
+			if (skip!=2) {
+				if (!lineSkipGaps && !connectedPointsLogical[i]) {
+					skip=0;
+					continue;
+				}
+				lines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
+				skip++;
+			} else {
+				skip=0;
+			}
 		}
 		break;
-	  }
-	  case XYCurve::SplineCubicNatural:
-	  case XYCurve::SplineCubicPeriodic:
-	  case XYCurve::SplineAkimaNatural:
-	  case XYCurve::SplineAkimaPeriodic:{
+	}
+	case XYCurve::SplineCubicNatural:
+	case XYCurve::SplineCubicPeriodic:
+	case XYCurve::SplineAkimaNatural:
+	case XYCurve::SplineAkimaPeriodic: {
 		//TODO: optimize! try to omit the copying from the column to the arrays of \
doubles.  //TODO: forward the error message to the UI.
 		gsl_interp_accel *acc  = gsl_interp_accel_alloc();
 		gsl_spline *spline=0;
 
 		double x[count],  y[count];
-		for (int i=0; i<count; i++){
-		  x[i]=symbolPointsLogical.at(i).x();
-		  y[i]=symbolPointsLogical.at(i).y();
+		for (int i=0; i<count; i++) {
+			x[i]=symbolPointsLogical.at(i).x();
+			y[i]=symbolPointsLogical.at(i).y();
 		}
 
 		gsl_set_error_handler_off();
-		if (lineType==XYCurve::SplineCubicNatural){
+		if (lineType==XYCurve::SplineCubicNatural) {
 			spline = gsl_spline_alloc(gsl_interp_cspline, count);
-		}else if (lineType==XYCurve::SplineCubicPeriodic){
+		} else if (lineType==XYCurve::SplineCubicPeriodic) {
 			spline = gsl_spline_alloc(gsl_interp_cspline_periodic, count);
-		}else if (lineType==XYCurve::SplineAkimaNatural){
+		} else if (lineType==XYCurve::SplineAkimaNatural) {
 			spline = gsl_spline_alloc(gsl_interp_akima, count);
-		}else if (lineType==XYCurve::SplineAkimaPeriodic){
+		} else if (lineType==XYCurve::SplineAkimaPeriodic) {
 			spline = gsl_spline_alloc(gsl_interp_akima_periodic, count);
 		}
 
@@ -1040,28 +1051,28 @@ void XYCurvePrivate::updateLines(){
 		std::vector<double> xinterp, yinterp;
 		double step;
 		double xi, yi, x1, x2;
-		for (int i=0; i<count-1; i++){
-		   x1 = x[i];
-		   x2 = x[i+1];
-		   step=fabs(x2-x1)/(lineInterpolationPointsCount+1);
-
-		  for (xi=x1; xi<x2; xi += step){
-			yi = gsl_spline_eval (spline, xi, acc);
-			xinterp.push_back(xi);
-			yinterp.push_back(yi);
-		  }
+		for (int i=0; i<count-1; i++) {
+			x1 = x[i];
+			x2 = x[i+1];
+			step=fabs(x2-x1)/(lineInterpolationPointsCount+1);
+
+			for (xi=x1; xi<x2; xi += step) {
+				yi = gsl_spline_eval (spline, xi, acc);
+				xinterp.push_back(xi);
+				yinterp.push_back(yi);
+			}
 		}
 
-		for (unsigned int i=0; i<xinterp.size()-1; i++){
-		  lines.append(QLineF(xinterp[i], yinterp[i], xinterp[i+1], yinterp[i+1]));
+		for (unsigned int i=0; i<xinterp.size()-1; i++) {
+			lines.append(QLineF(xinterp[i], yinterp[i], xinterp[i+1], yinterp[i+1]));
 		}
 		lines.append(QLineF(xinterp[xinterp.size()-1], yinterp[yinterp.size()-1], \
x[count-1], y[count-1]));  
 		gsl_spline_free (spline);
-        gsl_interp_accel_free (acc);
+		gsl_interp_accel_free (acc);
 		break;
-	  }
-	  default:
+	}
+	default:
 		break;
 	}
 
@@ -1071,7 +1082,7 @@ void XYCurvePrivate::updateLines(){
 	lines = cSystem->mapLogicalToScene(lines);
 
 	//new line path
-	foreach (const QLineF& line, lines){
+	foreach (const QLineF& line, lines) {
 		linePath.moveTo(line.p1());
 		linePath.lineTo(line.p2());
 	}
@@ -1084,11 +1095,11 @@ void XYCurvePrivate::updateLines(){
   recalculates the painter path for the drop lines.
   Called each time when the type of the drop lines is changed.
 */
-void XYCurvePrivate::updateDropLines(){
-  	dropLinePath = QPainterPath();
-	if (dropLineType == XYCurve::NoDropLine){
-	  recalcShapeAndBoundingRect();
-	  return;
+void XYCurvePrivate::updateDropLines() {
+	dropLinePath = QPainterPath();
+	if (dropLineType == XYCurve::NoDropLine) {
+		recalcShapeAndBoundingRect();
+		return;
 	}
 
 	//calculate drop lines
@@ -1099,59 +1110,59 @@ void XYCurvePrivate::updateDropLines(){
 
 	xMin = plot->xMin();
 	yMin = plot->yMin();
-	switch(dropLineType){
-	  case XYCurve::NoDropLine:
+	switch(dropLineType) {
+	case XYCurve::NoDropLine:
 		break;
-	  case XYCurve::DropLineX:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	case XYCurve::DropLineX: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append(QLineF(point, QPointF(point.x(), yMin)));
 		}
 		break;
-	  }
-	  case XYCurve::DropLineY:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::DropLineY: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append(QLineF(point, QPointF(xMin, point.y())));
 		}
 		break;
-	  }
-	  case XYCurve::DropLineXY:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::DropLineXY: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append(QLineF(point, QPointF(point.x(), yMin)));
 			lines.append(QLineF(point, QPointF(xMin, point.y())));
 		}
 		break;
-	  }
-	  case XYCurve::DropLineXZeroBaseline:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::DropLineXZeroBaseline: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append(QLineF(point, QPointF(point.x(), 0)));
 		}
 		break;
-	  }
-	  case XYCurve::DropLineXMinBaseline:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::DropLineXMinBaseline: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append( QLineF(point, QPointF(point.x(), dynamic_cast<const \
Column*>(yColumn)->minimum())) );  }
 		break;
-	  }
-	  case XYCurve::DropLineXMaxBaseline:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::DropLineXMaxBaseline: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			const QPointF& point = symbolPointsLogical.at(i);
 			lines.append( QLineF(point, QPointF(point.x(), dynamic_cast<const \
Column*>(yColumn)->maximum())) );  }
 		break;
-	  }
-	  default:
+	}
+	default:
 		break;
 	}
 
@@ -1160,7 +1171,7 @@ void XYCurvePrivate::updateDropLines(){
 	lines = cSystem->mapLogicalToScene(lines);
 
 	//new painter path for the drop lines
-	foreach (const QLineF& line, lines){
+	foreach (const QLineF& line, lines) {
 		dropLinePath.moveTo(line.p1());
 		dropLinePath.lineTo(line.p2());
 	}
@@ -1168,9 +1179,9 @@ void XYCurvePrivate::updateDropLines(){
 	recalcShapeAndBoundingRect();
 }
 
-void XYCurvePrivate::updateSymbols(){
+void XYCurvePrivate::updateSymbols() {
 	symbolsPath = QPainterPath();
-	if (symbolsStyle != Symbol::NoSymbols){
+	if (symbolsStyle != Symbol::NoSymbols) {
 		QPainterPath path = Symbol::pathFromStyle(symbolsStyle);
 
 		QTransform trafo;
@@ -1196,53 +1207,53 @@ void XYCurvePrivate::updateSymbols(){
 /*!
   recreates the value strings to be shown and recalculates their draw position.
 */
-void XYCurvePrivate::updateValues(){
-  	valuesPath = QPainterPath();
+void XYCurvePrivate::updateValues() {
+	valuesPath = QPainterPath();
 	valuesPoints.clear();
 	valuesStrings.clear();
 
-	if (valuesType == XYCurve::NoValues){
+	if (valuesType == XYCurve::NoValues) {
 		recalcShapeAndBoundingRect();
 		return;
 	}
 
 	//determine the value string for all points that are currently visible in the plot
-	switch (valuesType){
-	  case XYCurve::NoValues:
-	  case XYCurve::ValuesX:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	switch (valuesType) {
+	case XYCurve::NoValues:
+	case XYCurve::ValuesX: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
- 			valuesStrings << valuesPrefix + QString::number(symbolPointsLogical.at(i).x()) + \
valuesSuffix; +			valuesStrings << valuesPrefix + \
QString::number(symbolPointsLogical.at(i).x()) + valuesSuffix;  }
-	  break;
-	  }
-	  case XYCurve::ValuesY:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+		break;
+	}
+	case XYCurve::ValuesY: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
- 			valuesStrings << valuesPrefix + QString::number(symbolPointsLogical.at(i).y()) + \
valuesSuffix; +			valuesStrings << valuesPrefix + \
QString::number(symbolPointsLogical.at(i).y()) + valuesSuffix;  }
 		break;
-	  }
-	  case XYCurve::ValuesXY:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::ValuesXY: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			valuesStrings << valuesPrefix + QString::number(symbolPointsLogical.at(i).x()) + \
                ','
-							+ QString::number(symbolPointsLogical.at(i).y()) + valuesSuffix;
+			              + QString::number(symbolPointsLogical.at(i).y()) + valuesSuffix;
 		}
 		break;
-	  }
-	  case XYCurve::ValuesXYBracketed:{
-		for(int i=0; i<symbolPointsLogical.size(); ++i){
+	}
+	case XYCurve::ValuesXYBracketed: {
+		for(int i=0; i<symbolPointsLogical.size(); ++i) {
 			if (!visiblePoints[i]) continue;
 			valuesStrings <<  valuesPrefix + '(' + \
                QString::number(symbolPointsLogical.at(i).x()) + ','
-							+ QString::number(symbolPointsLogical.at(i).y()) +')' + valuesSuffix;
+			              + QString::number(symbolPointsLogical.at(i).y()) +')' + \
valuesSuffix;  }
 		break;
-	  }
-	  case XYCurve::ValuesCustomColumn:{
-		if (!valuesColumn){
-		  recalcShapeAndBoundingRect();
-		  return;
+	}
+	case XYCurve::ValuesCustomColumn: {
+		if (!valuesColumn) {
+			recalcShapeAndBoundingRect();
+			return;
 		}
 
 		int endRow;
@@ -1252,26 +1263,26 @@ void XYCurvePrivate::updateValues(){
 			endRow = symbolPointsLogical.size();
 
 		AbstractColumn::ColumnMode xColMode = valuesColumn->columnMode();
-		for (int i=0; i<endRow; ++i){
+		for (int i=0; i<endRow; ++i) {
 			if (!visiblePoints[i]) continue;
 
 			if ( !valuesColumn->isValid(i) || valuesColumn->isMasked(i) )
 				continue;
 
-			switch (xColMode){
-				case AbstractColumn::Numeric:
-					valuesStrings << valuesPrefix + QString::number(valuesColumn->valueAt(i)) + \
                valuesSuffix;
-					break;
-				case AbstractColumn::Text:
-					valuesStrings << valuesPrefix + valuesColumn->textAt(i) + valuesSuffix;
-				case AbstractColumn::DateTime:
-				case AbstractColumn::Month:
-				case AbstractColumn::Day:
-					//TODO
-					break;
+			switch (xColMode) {
+			case AbstractColumn::Numeric:
+				valuesStrings << valuesPrefix + QString::number(valuesColumn->valueAt(i)) + \
valuesSuffix; +				break;
+			case AbstractColumn::Text:
+				valuesStrings << valuesPrefix + valuesColumn->textAt(i) + valuesSuffix;
+			case AbstractColumn::DateTime:
+			case AbstractColumn::Month:
+			case AbstractColumn::Day:
+				//TODO
+				break;
 			}
 		}
-	  }
+	}
 	}
 
 	//Calculate the coordinates where to paint the value strings.
@@ -1281,48 +1292,48 @@ void XYCurvePrivate::updateValues(){
 	qreal w;
 	qreal h=fm.ascent();
 
-	switch(valuesPosition){
-	  case XYCurve::ValuesAbove:{
-		for (int i=0; i<valuesStrings.size(); i++){
-		  w=fm.width(valuesStrings.at(i));
-		  tempPoint.setX( symbolPointsScene.at(i).x() - w/2);
-		  tempPoint.setY( symbolPointsScene.at(i).y() - valuesDistance );
-		  valuesPoints.append(tempPoint);
-		  }
-		  break;
+	switch(valuesPosition) {
+	case XYCurve::ValuesAbove: {
+		for (int i=0; i<valuesStrings.size(); i++) {
+			w=fm.width(valuesStrings.at(i));
+			tempPoint.setX( symbolPointsScene.at(i).x() - w/2);
+			tempPoint.setY( symbolPointsScene.at(i).y() - valuesDistance );
+			valuesPoints.append(tempPoint);
 		}
-	  case XYCurve::ValuesUnder:{
-		for (int i=0; i<valuesStrings.size(); i++){
-		  w=fm.width(valuesStrings.at(i));
-		  tempPoint.setX( symbolPointsScene.at(i).x() -w/2 );
-		  tempPoint.setY( symbolPointsScene.at(i).y() + valuesDistance + h/2);
-		  valuesPoints.append(tempPoint);
+		break;
+	}
+	case XYCurve::ValuesUnder: {
+		for (int i=0; i<valuesStrings.size(); i++) {
+			w=fm.width(valuesStrings.at(i));
+			tempPoint.setX( symbolPointsScene.at(i).x() -w/2 );
+			tempPoint.setY( symbolPointsScene.at(i).y() + valuesDistance + h/2);
+			valuesPoints.append(tempPoint);
 		}
 		break;
-	  }
-	  case XYCurve::ValuesLeft:{
-		for (int i=0; i<valuesStrings.size(); i++){
-		  w=fm.width(valuesStrings.at(i));
-		  tempPoint.setX( symbolPointsScene.at(i).x() - valuesDistance - w - 1 );
-		  tempPoint.setY( symbolPointsScene.at(i).y());
-		  valuesPoints.append(tempPoint);
+	}
+	case XYCurve::ValuesLeft: {
+		for (int i=0; i<valuesStrings.size(); i++) {
+			w=fm.width(valuesStrings.at(i));
+			tempPoint.setX( symbolPointsScene.at(i).x() - valuesDistance - w - 1 );
+			tempPoint.setY( symbolPointsScene.at(i).y());
+			valuesPoints.append(tempPoint);
 		}
 		break;
-	  }
-	  case XYCurve::ValuesRight:{
-		for (int i=0; i<valuesStrings.size(); i++){
-		  w=fm.width(valuesStrings.at(i));
-		  tempPoint.setX( symbolPointsScene.at(i).x() + valuesDistance - 1 );
-		  tempPoint.setY( symbolPointsScene.at(i).y() );
-		  valuesPoints.append(tempPoint);
+	}
+	case XYCurve::ValuesRight: {
+		for (int i=0; i<valuesStrings.size(); i++) {
+			w=fm.width(valuesStrings.at(i));
+			tempPoint.setX( symbolPointsScene.at(i).x() + valuesDistance - 1 );
+			tempPoint.setY( symbolPointsScene.at(i).y() );
+			valuesPoints.append(tempPoint);
 		}
 		break;
-	  }
+	}
 	}
 
 	QTransform trafo;
 	QPainterPath path;
-	for (int i=0; i<valuesPoints.size(); i++){
+	for (int i=0; i<valuesPoints.size(); i++) {
 		path = QPainterPath();
 		path.addText( QPoint(0,0), valuesFont, valuesStrings.at(i) );
 
@@ -1354,9 +1365,9 @@ void XYCurvePrivate::updateFilling() {
 	if (lines.size()) {
 		fillLines = lines;
 	} else {
-		for (int i=0; i<symbolPointsLogical.count()-1; i++){
-		  if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
-		  fillLines.append(QLineF(symbolPointsLogical.at(i), \
symbolPointsLogical.at(i+1))); +		for (int i=0; i<symbolPointsLogical.count()-1; i++) \
{ +			if (!lineSkipGaps && !connectedPointsLogical[i]) continue;
+			fillLines.append(QLineF(symbolPointsLogical.at(i), symbolPointsLogical.at(i+1)));
 		}
 		fillLines = cSystem->mapLogicalToScene(fillLines);
 	}
@@ -1470,7 +1481,7 @@ void XYCurvePrivate::updateFilling() {
 		}
 
 		yEnd = cSystem->mapLogicalToScene(QPointF(plot->xMin(), plot->yMin()>0 ? \
                plot->yMin() : 0)).y();
-	}else if (fillingPosition == XYCurve::FillingLeft) {
+	} else if (fillingPosition == XYCurve::FillingLeft) {
 		edge = cSystem->mapLogicalToScene(QPointF(plot->xMax(), plot->yMin()));
 
 		//start point
@@ -1571,9 +1582,9 @@ void XYCurvePrivate::updateFilling() {
 	recalcShapeAndBoundingRect();
 }
 
-void XYCurvePrivate::updateErrorBars(){
-  	errorBarsPath = QPainterPath();
-	if (xErrorType==XYCurve::NoError && yErrorType==XYCurve::NoError){
+void XYCurvePrivate::updateErrorBars() {
+	errorBarsPath = QPainterPath();
+	if (xErrorType==XYCurve::NoError && yErrorType==XYCurve::NoError) {
 		recalcShapeAndBoundingRect();
 		return;
 	}
@@ -1615,7 +1626,7 @@ void XYCurvePrivate::updateErrorBars(){
 		capSizeY = (pointLogical.x() - symbolPointsLogical.at(i).x())/2;
 	}
 
-	for (int i=0; i<symbolPointsLogical.size(); ++i){
+	for (int i=0; i<symbolPointsLogical.size(); ++i) {
 		if (!visiblePoints[i])
 			continue;
 
@@ -1640,23 +1651,23 @@ void XYCurvePrivate::updateErrorBars(){
 
 			//draw the error bars
 			switch(errorBarsType) {
-				case XYCurve::ErrorBarsSimple:
-					lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()),
-										QPointF(point.x()+errorPlus, point.y())));
-					break;
-				case XYCurve::ErrorBarsWithEnds: {
-					lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()),
-										QPointF(point.x()+errorPlus, point.y())));
-					if (errorMinus!=0) {
-						lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()-capSizeX),
-											QPointF(point.x()-errorMinus, point.y()+capSizeX)));
-					}
-					if (errorPlus!=0) {
-						lines.append(QLineF(QPointF(point.x()+errorPlus, point.y()-capSizeX),
-											QPointF(point.x()+errorPlus, point.y()+capSizeX)));
-					}
-					break;
+			case XYCurve::ErrorBarsSimple:
+				lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()),
+				                    QPointF(point.x()+errorPlus, point.y())));
+				break;
+			case XYCurve::ErrorBarsWithEnds: {
+				lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()),
+				                    QPointF(point.x()+errorPlus, point.y())));
+				if (errorMinus!=0) {
+					lines.append(QLineF(QPointF(point.x()-errorMinus, point.y()-capSizeX),
+					                    QPointF(point.x()-errorMinus, point.y()+capSizeX)));
+				}
+				if (errorPlus!=0) {
+					lines.append(QLineF(QPointF(point.x()+errorPlus, point.y()-capSizeX),
+					                    QPointF(point.x()+errorPlus, point.y()+capSizeX)));
 				}
+				break;
+			}
 			}
 		}
 
@@ -1679,23 +1690,23 @@ void XYCurvePrivate::updateErrorBars(){
 
 			//draw the error bars
 			switch(errorBarsType) {
-				case XYCurve::ErrorBarsSimple:
-					lines.append(QLineF(QPointF(point.x(), point.y()-errorMinus),
-										QPointF(point.x(), point.y()+errorPlus)));
-					break;
-				case XYCurve::ErrorBarsWithEnds: {
-					lines.append(QLineF(QPointF(point.x(), point.y()-errorMinus),
-										QPointF(point.x(), point.y()+errorPlus)));
-					if (errorMinus!=0) {
-						lines.append(QLineF(QPointF(point.x()-capSizeY, point.y()-errorMinus),
-											QPointF(point.x()+capSizeY, point.y()-errorMinus)));
-					}
-					if (errorPlus!=0) {
-						lines.append(QLineF(QPointF(point.x()-capSizeY, point.y()+errorPlus),
-											QPointF(point.x()+capSizeY, point.y()+errorPlus)));
-					}
-					break;
+			case XYCurve::ErrorBarsSimple:
+				lines.append(QLineF(QPointF(point.x(), point.y()-errorMinus),
+				                    QPointF(point.x(), point.y()+errorPlus)));
+				break;
+			case XYCurve::ErrorBarsWithEnds: {
+				lines.append(QLineF(QPointF(point.x(), point.y()-errorMinus),
+				                    QPointF(point.x(), point.y()+errorPlus)));
+				if (errorMinus!=0) {
+					lines.append(QLineF(QPointF(point.x()-capSizeY, point.y()-errorMinus),
+					                    QPointF(point.x()+capSizeY, point.y()-errorMinus)));
 				}
+				if (errorPlus!=0) {
+					lines.append(QLineF(QPointF(point.x()-capSizeY, point.y()+errorPlus),
+					                    QPointF(point.x()+capSizeY, point.y()+errorPlus)));
+				}
+				break;
+			}
 			}
 		}
 	}
@@ -1704,7 +1715,7 @@ void XYCurvePrivate::updateErrorBars(){
 	lines = cSystem->mapLogicalToScene(lines);
 
 	//new painter path for the drop lines
-	foreach (const QLineF& line, lines){
+	foreach (const QLineF& line, lines) {
 		errorBarsPath.moveTo(line.p1());
 		errorBarsPath.lineTo(line.p2());
 	}
@@ -1721,23 +1732,23 @@ void XYCurvePrivate::recalcShapeAndBoundingRect() {
 
 	prepareGeometryChange();
 	curveShape = QPainterPath();
-	if (lineType != XYCurve::NoLine){
+	if (lineType != XYCurve::NoLine) {
 		curveShape.addPath(WorksheetElement::shapeFromPath(linePath, linePen));
 	}
 
-	if (dropLineType != XYCurve::NoDropLine){
+	if (dropLineType != XYCurve::NoDropLine) {
 		curveShape.addPath(WorksheetElement::shapeFromPath(dropLinePath, dropLinePen));
 	}
 
-	if (symbolsStyle != Symbol::NoSymbols){
+	if (symbolsStyle != Symbol::NoSymbols) {
 		curveShape.addPath(symbolsPath);
 	}
 
-	if (valuesType != XYCurve::NoValues){
+	if (valuesType != XYCurve::NoValues) {
 		curveShape.addPath(valuesPath);
 	}
 
-	if (xErrorType != XYCurve::NoError || yErrorType != XYCurve::NoError){
+	if (xErrorType != XYCurve::NoError || yErrorType != XYCurve::NoError) {
 		curveShape.addPath(WorksheetElement::shapeFromPath(errorBarsPath, errorBarsPen));
 	}
 
@@ -1763,7 +1774,7 @@ void XYCurvePrivate::draw(QPainter *painter) {
 	}
 
 	//draw lines
-	if (lineType != XYCurve::NoLine){
+	if (lineType != XYCurve::NoLine) {
 		painter->setOpacity(lineOpacity);
 		painter->setPen(linePen);
 		painter->setBrush(Qt::NoBrush);
@@ -1771,7 +1782,7 @@ void XYCurvePrivate::draw(QPainter *painter) {
 	}
 
 	//draw drop lines
-	if (dropLineType != XYCurve::NoDropLine){
+	if (dropLineType != XYCurve::NoDropLine) {
 		painter->setOpacity(dropLineOpacity);
 		painter->setPen(dropLinePen);
 		painter->setBrush(Qt::NoBrush);
@@ -1779,7 +1790,7 @@ void XYCurvePrivate::draw(QPainter *painter) {
 	}
 
 	//draw error bars
-	if ( (xErrorType != XYCurve::NoError) || (yErrorType != XYCurve::NoError) ){
+	if ( (xErrorType != XYCurve::NoError) || (yErrorType != XYCurve::NoError) ) {
 		painter->setOpacity(errorBarsOpacity);
 		painter->setPen(errorBarsPen);
 		painter->setBrush(Qt::NoBrush);
@@ -1787,7 +1798,7 @@ void XYCurvePrivate::draw(QPainter *painter) {
 	}
 
 	//draw symbols
-	if (symbolsStyle != Symbol::NoSymbols){
+	if (symbolsStyle != Symbol::NoSymbols) {
 		painter->setOpacity(symbolsOpacity);
 		painter->setPen(symbolsPen);
 		painter->setBrush(symbolsBrush);
@@ -1795,7 +1806,7 @@ void XYCurvePrivate::draw(QPainter *painter) {
 	}
 
 	//draw values
-	if (valuesType != XYCurve::NoValues){
+	if (valuesType != XYCurve::NoValues) {
 		painter->setOpacity(valuesOpacity);
 		painter->setPen(valuesColor);
 		painter->setBrush(Qt::SolidPattern);
@@ -1808,11 +1819,11 @@ void XYCurvePrivate::updatePixmap() {
 	QApplication::processEvents(QEventLoop::AllEvents, 0);
 // 	QTime timer;
 // 	timer.start();
+	m_hoverEffectImageIsDirty = true;
+	m_selectionEffectImageIsDirty = true;
 	QPixmap pixmap(boundingRectangle.width(), boundingRectangle.height());
 	if (boundingRectangle.width()==0 || boundingRectangle.width()==0) {
 		m_pixmap = pixmap;
-		m_hoverEffectImageIsDirty = true;
-		m_selectionEffectImageIsDirty = true;
 		RESET_CURSOR;
 		return;
 	}
@@ -1825,8 +1836,6 @@ void XYCurvePrivate::updatePixmap() {
 	painter.end();
 
 	m_pixmap = pixmap;
-	m_hoverEffectImageIsDirty = true;
-	m_selectionEffectImageIsDirty = true;
 // 	qDebug() << "Update the pixmap: " << timer.elapsed() << "ms";
 	RESET_CURSOR;
 }
@@ -1834,77 +1843,77 @@ void XYCurvePrivate::updatePixmap() {
 //TODO: move this to a central place
 QImage blurred(const QImage& image, const QRect& rect, int radius, bool alphaOnly = \
false)  {
-    int tab[] = { 14, 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 };
-    int alpha = (radius < 1)  ? 16 : (radius > 17) ? 1 : tab[radius-1];
-
-    QImage result = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
-    int r1 = rect.top();
-    int r2 = rect.bottom();
-    int c1 = rect.left();
-    int c2 = rect.right();
-
-    int bpl = result.bytesPerLine();
-    int rgba[4];
-    unsigned char* p;
-
-    int i1 = 0;
-    int i2 = 3;
-
-    if (alphaOnly)
-        i1 = i2 = (QSysInfo::ByteOrder == QSysInfo::BigEndian ? 0 : 3);
-
-    for (int col = c1; col <= c2; col++) {
-        p = result.scanLine(r1) + col * 4;
-        for (int i = i1; i <= i2; i++)
-            rgba[i] = p[i] << 4;
-
-        p += bpl;
-        for (int j = r1; j < r2; j++, p += bpl)
-            for (int i = i1; i <= i2; i++)
-                p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
-    }
-
-    for (int row = r1; row <= r2; row++) {
-        p = result.scanLine(row) + c1 * 4;
-        for (int i = i1; i <= i2; i++)
-            rgba[i] = p[i] << 4;
-
-        p += 4;
-        for (int j = c1; j < c2; j++, p += 4)
-            for (int i = i1; i <= i2; i++)
-                p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
-    }
-
-    for (int col = c1; col <= c2; col++) {
-        p = result.scanLine(r2) + col * 4;
-        for (int i = i1; i <= i2; i++)
-            rgba[i] = p[i] << 4;
-
-        p -= bpl;
-        for (int j = r1; j < r2; j++, p -= bpl)
-            for (int i = i1; i <= i2; i++)
-                p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
-    }
-
-    for (int row = r1; row <= r2; row++) {
-        p = result.scanLine(row) + c2 * 4;
-        for (int i = i1; i <= i2; i++)
-            rgba[i] = p[i] << 4;
-
-        p -= 4;
-        for (int j = c1; j < c2; j++, p -= 4)
-            for (int i = i1; i <= i2; i++)
-                p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
-    }
-
-    return result;
+	int tab[] = { 14, 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 };
+	int alpha = (radius < 1)  ? 16 : (radius > 17) ? 1 : tab[radius-1];
+
+	QImage result = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
+	int r1 = rect.top();
+	int r2 = rect.bottom();
+	int c1 = rect.left();
+	int c2 = rect.right();
+
+	int bpl = result.bytesPerLine();
+	int rgba[4];
+	unsigned char* p;
+
+	int i1 = 0;
+	int i2 = 3;
+
+	if (alphaOnly)
+		i1 = i2 = (QSysInfo::ByteOrder == QSysInfo::BigEndian ? 0 : 3);
+
+	for (int col = c1; col <= c2; col++) {
+		p = result.scanLine(r1) + col * 4;
+		for (int i = i1; i <= i2; i++)
+			rgba[i] = p[i] << 4;
+
+		p += bpl;
+		for (int j = r1; j < r2; j++, p += bpl)
+			for (int i = i1; i <= i2; i++)
+				p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
+	}
+
+	for (int row = r1; row <= r2; row++) {
+		p = result.scanLine(row) + c1 * 4;
+		for (int i = i1; i <= i2; i++)
+			rgba[i] = p[i] << 4;
+
+		p += 4;
+		for (int j = c1; j < c2; j++, p += 4)
+			for (int i = i1; i <= i2; i++)
+				p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
+	}
+
+	for (int col = c1; col <= c2; col++) {
+		p = result.scanLine(r2) + col * 4;
+		for (int i = i1; i <= i2; i++)
+			rgba[i] = p[i] << 4;
+
+		p -= bpl;
+		for (int j = r1; j < r2; j++, p -= bpl)
+			for (int i = i1; i <= i2; i++)
+				p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
+	}
+
+	for (int row = r1; row <= r2; row++) {
+		p = result.scanLine(row) + c2 * 4;
+		for (int i = i1; i <= i2; i++)
+			rgba[i] = p[i] << 4;
+
+		p -= 4;
+		for (int j = c1; j < c2; j++, p -= 4)
+			for (int i = i1; i <= i2; i++)
+				p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4;
+	}
+
+	return result;
 }
 
 /*!
   Reimplementation of QGraphicsItem::paint(). This function does the actual painting \
of the curve.  \sa QGraphicsItem::paint().
 */
-void XYCurvePrivate::paint(QPainter* painter, const QStyleOptionGraphicsItem* \
option, QWidget* widget){ +void XYCurvePrivate::paint(QPainter* painter, const \
QStyleOptionGraphicsItem* option, QWidget* widget) {  // \
qDebug()<<"XYCurvePrivate::paint, " + q->name();  Q_UNUSED(option);
 	Q_UNUSED(widget);
@@ -1923,7 +1932,7 @@ void XYCurvePrivate::paint(QPainter* painter, const \
QStyleOptionGraphicsItem* op  // 	painter->drawPixmap(boundingRectangle.topLeft(), \
m_pixmap);  // 	qDebug() << "Paint the pixmap: " << timer.elapsed() << "ms";
 
-	if (m_hovered && !isSelected() && !m_printing){
+	if (m_hovered && !isSelected() && !m_printing) {
 // 		timer.start();
 		if (m_hoverEffectImageIsDirty) {
 			QPixmap pix = m_pixmap;
@@ -1939,7 +1948,7 @@ void XYCurvePrivate::paint(QPainter* painter, const \
QStyleOptionGraphicsItem* op  return;
 	}
 
-	if (isSelected() && !m_printing){
+	if (isSelected() && !m_printing) {
 // 		timer.start();
 		if (m_selectionEffectImageIsDirty) {
 			QPixmap pix = m_pixmap;
@@ -1981,7 +1990,7 @@ void XYCurvePrivate::drawSymbols(QPainter* painter) {
 void XYCurvePrivate::drawValues(QPainter* painter) {
 	QTransform trafo;
 	QPainterPath path;
-	for (int i=0; i<valuesPoints.size(); i++){
+	for (int i=0; i<valuesPoints.size(); i++) {
 		path = QPainterPath();
 		path.addText( QPoint(0,0), valuesFont, valuesStrings.at(i) );
 
@@ -1997,86 +2006,86 @@ void XYCurvePrivate::drawValues(QPainter* painter) {
 void XYCurvePrivate::drawFilling(QPainter* painter) {
 	foreach(const QPolygonF& pol, fillPolygons) {
 		QRectF rect = pol.boundingRect();
-		if (fillingType == PlotArea::Color){
-			switch (fillingColorStyle){
-				case PlotArea::SingleColor:{
-					painter->setBrush(QBrush(fillingFirstColor));
-					break;
-				}
-				case PlotArea::HorizontalLinearGradient:{
-					QLinearGradient linearGrad(rect.topLeft(), rect.topRight());
-					linearGrad.setColorAt(0, fillingFirstColor);
-					linearGrad.setColorAt(1, fillingSecondColor);
-					painter->setBrush(QBrush(linearGrad));
+		if (fillingType == PlotArea::Color) {
+			switch (fillingColorStyle) {
+			case PlotArea::SingleColor: {
+				painter->setBrush(QBrush(fillingFirstColor));
+				break;
+			}
+			case PlotArea::HorizontalLinearGradient: {
+				QLinearGradient linearGrad(rect.topLeft(), rect.topRight());
+				linearGrad.setColorAt(0, fillingFirstColor);
+				linearGrad.setColorAt(1, fillingSecondColor);
+				painter->setBrush(QBrush(linearGrad));
+				break;
+			}
+			case PlotArea::VerticalLinearGradient: {
+				QLinearGradient linearGrad(rect.topLeft(), rect.bottomLeft());
+				linearGrad.setColorAt(0, fillingFirstColor);
+				linearGrad.setColorAt(1, fillingSecondColor);
+				painter->setBrush(QBrush(linearGrad));
+				break;
+			}
+			case PlotArea::TopLeftDiagonalLinearGradient: {
+				QLinearGradient linearGrad(rect.topLeft(), rect.bottomRight());
+				linearGrad.setColorAt(0, fillingFirstColor);
+				linearGrad.setColorAt(1, fillingSecondColor);
+				painter->setBrush(QBrush(linearGrad));
+				break;
+			}
+			case PlotArea::BottomLeftDiagonalLinearGradient: {
+				QLinearGradient linearGrad(rect.bottomLeft(), rect.topRight());
+				linearGrad.setColorAt(0, fillingFirstColor);
+				linearGrad.setColorAt(1, fillingSecondColor);
+				painter->setBrush(QBrush(linearGrad));
+				break;
+			}
+			case PlotArea::RadialGradient: {
+				QRadialGradient radialGrad(rect.center(), rect.width()/2);
+				radialGrad.setColorAt(0, fillingFirstColor);
+				radialGrad.setColorAt(1, fillingSecondColor);
+				painter->setBrush(QBrush(radialGrad));
+				break;
+			}
+			}
+		} else if (fillingType == PlotArea::Image) {
+			if ( !fillingFileName.trimmed().isEmpty() ) {
+				QPixmap pix(fillingFileName);
+				switch (fillingImageStyle) {
+				case PlotArea::ScaledCropped:
+					pix = pix.scaled(rect.size().toSize(),Qt::KeepAspectRatioByExpanding,Qt::SmoothTransformation);
 +					painter->setBrush(QBrush(pix));
+					painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
 					break;
-				}
-				case PlotArea::VerticalLinearGradient:{
-					QLinearGradient linearGrad(rect.topLeft(), rect.bottomLeft());
-					linearGrad.setColorAt(0, fillingFirstColor);
-					linearGrad.setColorAt(1, fillingSecondColor);
-					painter->setBrush(QBrush(linearGrad));
+				case PlotArea::Scaled:
+					pix = pix.scaled(rect.size().toSize(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
 +					painter->setBrush(QBrush(pix));
+					painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
 					break;
-				}
-				case PlotArea::TopLeftDiagonalLinearGradient:{
-					QLinearGradient linearGrad(rect.topLeft(), rect.bottomRight());
-					linearGrad.setColorAt(0, fillingFirstColor);
-					linearGrad.setColorAt(1, fillingSecondColor);
-					painter->setBrush(QBrush(linearGrad));
+				case PlotArea::ScaledAspectRatio:
+					pix = pix.scaled(rect.size().toSize(),Qt::KeepAspectRatio,Qt::SmoothTransformation);
 +					painter->setBrush(QBrush(pix));
+					painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
 					break;
-				}
-				case PlotArea::BottomLeftDiagonalLinearGradient:{
-					QLinearGradient linearGrad(rect.bottomLeft(), rect.topRight());
-					linearGrad.setColorAt(0, fillingFirstColor);
-					linearGrad.setColorAt(1, fillingSecondColor);
-					painter->setBrush(QBrush(linearGrad));
+				case PlotArea::Centered: {
+					QPixmap backpix(rect.size().toSize());
+					backpix.fill();
+					QPainter p(&backpix);
+					p.drawPixmap(QPointF(0,0),pix);
+					p.end();
+					painter->setBrush(QBrush(backpix));
+					painter->setBrushOrigin(-pix.size().width()/2,-pix.size().height()/2);
 					break;
 				}
-				case PlotArea::RadialGradient:{
-					QRadialGradient radialGrad(rect.center(), rect.width()/2);
-					radialGrad.setColorAt(0, fillingFirstColor);
-					radialGrad.setColorAt(1, fillingSecondColor);
-					painter->setBrush(QBrush(radialGrad));
+				case PlotArea::Tiled:
+					painter->setBrush(QBrush(pix));
 					break;
+				case PlotArea::CenterTiled:
+					painter->setBrush(QBrush(pix));
+					painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
 				}
 			}
-		}else if (fillingType == PlotArea::Image){
-			if ( !fillingFileName.trimmed().isEmpty() ) {
-				QPixmap pix(fillingFileName);
-				switch (fillingImageStyle){
-					case PlotArea::ScaledCropped:
-						pix = pix.scaled(rect.size().toSize(),Qt::KeepAspectRatioByExpanding,Qt::SmoothTransformation);
                
-						painter->setBrush(QBrush(pix));
-						painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
-						break;
-					case PlotArea::Scaled:
-						pix = pix.scaled(rect.size().toSize(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
                
-						painter->setBrush(QBrush(pix));
-						painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
-						break;
-					case PlotArea::ScaledAspectRatio:
-						pix = pix.scaled(rect.size().toSize(),Qt::KeepAspectRatio,Qt::SmoothTransformation);
                
-						painter->setBrush(QBrush(pix));
-						painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
-						break;
-					case PlotArea::Centered:{
-						QPixmap backpix(rect.size().toSize());
-						backpix.fill();
-						QPainter p(&backpix);
-						p.drawPixmap(QPointF(0,0),pix);
-						p.end();
-						painter->setBrush(QBrush(backpix));
-						painter->setBrushOrigin(-pix.size().width()/2,-pix.size().height()/2);
-						break;
-					}
-					case PlotArea::Tiled:
-						painter->setBrush(QBrush(pix));
-						break;
-					case PlotArea::CenterTiled:
-						painter->setBrush(QBrush(pix));
-						painter->setBrushOrigin(pix.size().width()/2,pix.size().height()/2);
-				}
-			}
-		} else if (fillingType == PlotArea::Pattern){
+		} else if (fillingType == PlotArea::Pattern) {
 			painter->setBrush(QBrush(fillingFirstColor,fillingBrushStyle));
 		}
 
@@ -2106,12 +2115,12 @@ void \
XYCurvePrivate::hoverLeaveEvent(QGraphicsSceneHoverEvent*) {  //##################  \
Serialization/Deserialization  ###########################  \
//##############################################################################  //! \
                Save as XML
-void XYCurve::save(QXmlStreamWriter* writer) const{
+void XYCurve::save(QXmlStreamWriter* writer) const {
 	Q_D(const XYCurve);
 
-    writer->writeStartElement( "xyCurve" );
-    writeBasicAttributes( writer );
-    writeCommentElement( writer );
+	writer->writeStartElement( "xyCurve" );
+	writeBasicAttributes( writer );
+	writeCommentElement( writer );
 
 	//general
 	writer->writeStartElement( "general" );
@@ -2121,7 +2130,7 @@ void XYCurve::save(QXmlStreamWriter* writer) const{
 	writer->writeEndElement();
 
 	//Line
-    writer->writeStartElement( "lines" );
+	writer->writeStartElement( "lines" );
 	writer->writeAttribute( "type", QString::number(d->lineType) );
 	writer->writeAttribute( "skipGaps", QString::number(d->lineSkipGaps) );
 	writer->writeAttribute( "interpolationPointsCount", \
QString::number(d->lineInterpolationPointsCount) ); @@ -2164,17 +2173,17 @@ void \
XYCurve::save(QXmlStreamWriter* writer) const{  //Filling
 	writer->writeStartElement( "filling" );
 	writer->writeAttribute( "position", QString::number(d->fillingPosition) );
-    writer->writeAttribute( "type", QString::number(d->fillingType) );
-    writer->writeAttribute( "colorStyle", QString::number(d->fillingColorStyle) );
-    writer->writeAttribute( "imageStyle", QString::number(d->fillingImageStyle) );
-    writer->writeAttribute( "brushStyle", QString::number(d->fillingBrushStyle) );
-    writer->writeAttribute( "firstColor_r", \
                QString::number(d->fillingFirstColor.red()) );
-    writer->writeAttribute( "firstColor_g", \
                QString::number(d->fillingFirstColor.green()) );
-    writer->writeAttribute( "firstColor_b", \
                QString::number(d->fillingFirstColor.blue()) );
-    writer->writeAttribute( "secondColor_r", \
                QString::number(d->fillingSecondColor.red()) );
-    writer->writeAttribute( "secondColor_g", \
                QString::number(d->fillingSecondColor.green()) );
-    writer->writeAttribute( "secondColor_b", \
                QString::number(d->fillingSecondColor.blue()) );
-    writer->writeAttribute( "fileName", d->fillingFileName );
+	writer->writeAttribute( "type", QString::number(d->fillingType) );
+	writer->writeAttribute( "colorStyle", QString::number(d->fillingColorStyle) );
+	writer->writeAttribute( "imageStyle", QString::number(d->fillingImageStyle) );
+	writer->writeAttribute( "brushStyle", QString::number(d->fillingBrushStyle) );
+	writer->writeAttribute( "firstColor_r", QString::number(d->fillingFirstColor.red()) \
); +	writer->writeAttribute( "firstColor_g", \
QString::number(d->fillingFirstColor.green()) ); +	writer->writeAttribute( \
"firstColor_b", QString::number(d->fillingFirstColor.blue()) ); \
+	writer->writeAttribute( "secondColor_r", \
QString::number(d->fillingSecondColor.red()) ); +	writer->writeAttribute( \
"secondColor_g", QString::number(d->fillingSecondColor.green()) ); \
+	writer->writeAttribute( "secondColor_b", \
QString::number(d->fillingSecondColor.blue()) ); +	writer->writeAttribute( \
"fileName", d->fillingFileName );  writer->writeAttribute( "opacity", \
QString::number(d->fillingOpacity) );  writer->writeEndElement();
 
@@ -2196,149 +2205,149 @@ void XYCurve::save(QXmlStreamWriter* writer) const{
 }
 
 //! Load from XML
-bool XYCurve::load(XmlStreamReader* reader){
+bool XYCurve::load(XmlStreamReader* reader) {
 	Q_D(XYCurve);
 
-    if(!reader->isStartElement() || reader->name() != "xyCurve"){
-        reader->raiseError(i18n("no xy-curve element found"));
-        return false;
-    }
+	if(!reader->isStartElement() || reader->name() != "xyCurve") {
+		reader->raiseError(i18n("no xy-curve element found"));
+		return false;
+	}
 
-    if (!readBasicAttributes(reader))
-        return false;
+	if (!readBasicAttributes(reader))
+		return false;
 
-    QString attributeWarning = i18n("Attribute '%1' missing or empty, default value \
                is used");
-    QXmlStreamAttributes attribs;
-    QString str;
+	QString attributeWarning = i18n("Attribute '%1' missing or empty, default value is \
used"); +	QXmlStreamAttributes attribs;
+	QString str;
 
-    while (!reader->atEnd()){
-        reader->readNext();
-        if (reader->isEndElement() && reader->name() == "xyCurve")
-            break;
+	while (!reader->atEnd()) {
+		reader->readNext();
+		if (reader->isEndElement() && reader->name() == "xyCurve")
+			break;
 
-        if (!reader->isStartElement())
-            continue;
+		if (!reader->isStartElement())
+			continue;
 
-        if (reader->name() == "comment"){
-            if (!readCommentElement(reader)) return false;
-		}else if (reader->name() == "general"){
+		if (reader->name() == "comment") {
+			if (!readCommentElement(reader)) return false;
+		} else if (reader->name() == "general") {
 			attribs = reader->attributes();
 
 			READ_COLUMN(xColumn);
 			READ_COLUMN(yColumn);
 
 			str = attribs.value("visible").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'visible'"));
-            else
-                d->setVisible(str.toInt());
-		}else if (reader->name() == "lines"){
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'visible'"));
+			else
+				d->setVisible(str.toInt());
+		} else if (reader->name() == "lines") {
 			attribs = reader->attributes();
 
 			str = attribs.value("type").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'type'"));
-            else
-                d->lineType = (XYCurve::LineType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'type'"));
+			else
+				d->lineType = (XYCurve::LineType)str.toInt();
 
 			str = attribs.value("skipGaps").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'skipGps'"));
-            else
-                d->lineSkipGaps = str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'skipGps'"));
+			else
+				d->lineSkipGaps = str.toInt();
 
 			str = attribs.value("interpolationPointsCount").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'interpolationPointsCount'"));
                
-            else
-                d->lineInterpolationPointsCount = str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'interpolationPointsCount'"));
+			else
+				d->lineInterpolationPointsCount = str.toInt();
 
 			READ_QPEN(d->linePen);
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->lineOpacity = str.toDouble();
-		}else if (reader->name() == "dropLines"){
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->lineOpacity = str.toDouble();
+		} else if (reader->name() == "dropLines") {
 			attribs = reader->attributes();
 
 			str = attribs.value("type").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'type'"));
-            else
-                d->dropLineType = (XYCurve::DropLineType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'type'"));
+			else
+				d->dropLineType = (XYCurve::DropLineType)str.toInt();
 
 			READ_QPEN(d->dropLinePen);
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->dropLineOpacity = str.toDouble();
-		}else if (reader->name() == "symbols"){
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->dropLineOpacity = str.toDouble();
+		} else if (reader->name() == "symbols") {
 			attribs = reader->attributes();
 
 			str = attribs.value("symbolsStyle").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'symbolsStyle'"));
-            else
-                d->symbolsStyle = (Symbol::Style)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'symbolsStyle'"));
+			else
+				d->symbolsStyle = (Symbol::Style)str.toInt();
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->symbolsOpacity = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->symbolsOpacity = str.toDouble();
 
 			str = attribs.value("rotation").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'rotation'"));
-            else
-                d->symbolsRotationAngle = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'rotation'"));
+			else
+				d->symbolsRotationAngle = str.toDouble();
 
 			str = attribs.value("size").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'size'"));
-            else
-                d->symbolsSize = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'size'"));
+			else
+				d->symbolsSize = str.toDouble();
 
 			READ_QBRUSH(d->symbolsBrush);
 			READ_QPEN(d->symbolsPen);
-		}else if (reader->name() == "values"){
+		} else if (reader->name() == "values") {
 			attribs = reader->attributes();
 
 			str = attribs.value("type").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'type'"));
-            else
-                d->valuesType = (XYCurve::ValuesType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'type'"));
+			else
+				d->valuesType = (XYCurve::ValuesType)str.toInt();
 
 			READ_COLUMN(valuesColumn);
 
 			str = attribs.value("position").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'position'"));
-            else
-                d->valuesPosition = (XYCurve::ValuesPosition)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'position'"));
+			else
+				d->valuesPosition = (XYCurve::ValuesPosition)str.toInt();
 
 			str = attribs.value("distance").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'distance'"));
-            else
-                d->valuesDistance = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'distance'"));
+			else
+				d->valuesDistance = str.toDouble();
 
 			str = attribs.value("rotation").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'rotation'"));
-            else
-                d->valuesRotationAngle = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'rotation'"));
+			else
+				d->valuesRotationAngle = str.toDouble();
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->valuesOpacity = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->valuesOpacity = str.toDouble();
 
 			//don't produce any warning if no prefix or suffix is set (empty string is allowd \
here in xml)  d->valuesPrefix = attribs.value("prefix").toString();
@@ -2348,127 +2357,127 @@ bool XYCurve::load(XmlStreamReader* reader){
 			READ_QFONT(d->valuesFont);
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->valuesOpacity = str.toDouble();
-		}else if (reader->name() == "filling"){
-            attribs = reader->attributes();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->valuesOpacity = str.toDouble();
+		} else if (reader->name() == "filling") {
+			attribs = reader->attributes();
 
 			str = attribs.value("position").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("position"));
-            else
-                d->fillingPosition = XYCurve::FillingPosition(str.toInt());
-
-            str = attribs.value("type").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("type"));
-            else
-                d->fillingType = PlotArea::BackgroundType(str.toInt());
-
-            str = attribs.value("colorStyle").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("colorStyle"));
-            else
-                d->fillingColorStyle = PlotArea::BackgroundColorStyle(str.toInt());
-
-            str = attribs.value("imageStyle").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("imageStyle"));
-            else
-                d->fillingImageStyle = PlotArea::BackgroundImageStyle(str.toInt());
-
-            str = attribs.value("brushStyle").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("brushStyle"));
-            else
-                d->fillingBrushStyle = Qt::BrushStyle(str.toInt());
-
-            str = attribs.value("firstColor_r").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("firstColor_r"));
-            else
-                d->fillingFirstColor.setRed(str.toInt());
-
-            str = attribs.value("firstColor_g").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("firstColor_g"));
-            else
-                d->fillingFirstColor.setGreen(str.toInt());
-
-            str = attribs.value("firstColor_b").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("firstColor_b"));
-            else
-                d->fillingFirstColor.setBlue(str.toInt());
-
-            str = attribs.value("secondColor_r").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("secondColor_r"));
-            else
-                d->fillingSecondColor.setRed(str.toInt());
-
-            str = attribs.value("secondColor_g").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("secondColor_g"));
-            else
-                d->fillingSecondColor.setGreen(str.toInt());
-
-            str = attribs.value("secondColor_b").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("secondColor_b"));
-            else
-                d->fillingSecondColor.setBlue(str.toInt());
-
-            str = attribs.value("fileName").toString();
-            d->fillingFileName = str;
-
-            str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("opacity"));
-            else
-                d->fillingOpacity = str.toDouble();
-		}else if (reader->name() == "errorBars"){
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("position"));
+			else
+				d->fillingPosition = XYCurve::FillingPosition(str.toInt());
+
+			str = attribs.value("type").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("type"));
+			else
+				d->fillingType = PlotArea::BackgroundType(str.toInt());
+
+			str = attribs.value("colorStyle").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("colorStyle"));
+			else
+				d->fillingColorStyle = PlotArea::BackgroundColorStyle(str.toInt());
+
+			str = attribs.value("imageStyle").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("imageStyle"));
+			else
+				d->fillingImageStyle = PlotArea::BackgroundImageStyle(str.toInt());
+
+			str = attribs.value("brushStyle").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("brushStyle"));
+			else
+				d->fillingBrushStyle = Qt::BrushStyle(str.toInt());
+
+			str = attribs.value("firstColor_r").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("firstColor_r"));
+			else
+				d->fillingFirstColor.setRed(str.toInt());
+
+			str = attribs.value("firstColor_g").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("firstColor_g"));
+			else
+				d->fillingFirstColor.setGreen(str.toInt());
+
+			str = attribs.value("firstColor_b").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("firstColor_b"));
+			else
+				d->fillingFirstColor.setBlue(str.toInt());
+
+			str = attribs.value("secondColor_r").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("secondColor_r"));
+			else
+				d->fillingSecondColor.setRed(str.toInt());
+
+			str = attribs.value("secondColor_g").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("secondColor_g"));
+			else
+				d->fillingSecondColor.setGreen(str.toInt());
+
+			str = attribs.value("secondColor_b").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("secondColor_b"));
+			else
+				d->fillingSecondColor.setBlue(str.toInt());
+
+			str = attribs.value("fileName").toString();
+			d->fillingFileName = str;
+
+			str = attribs.value("opacity").toString();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("opacity"));
+			else
+				d->fillingOpacity = str.toDouble();
+		} else if (reader->name() == "errorBars") {
 			attribs = reader->attributes();
 
 			str = attribs.value("xErrorType").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'xErrorType'"));
-            else
-                d->xErrorType = (XYCurve::ErrorType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'xErrorType'"));
+			else
+				d->xErrorType = (XYCurve::ErrorType)str.toInt();
 
 			READ_COLUMN(xErrorPlusColumn);
 			READ_COLUMN(xErrorMinusColumn);
 
 			str = attribs.value("yErrorType").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'yErrorType'"));
-            else
-                d->yErrorType = (XYCurve::ErrorType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'yErrorType'"));
+			else
+				d->yErrorType = (XYCurve::ErrorType)str.toInt();
 
 			READ_COLUMN(yErrorPlusColumn);
 			READ_COLUMN(yErrorMinusColumn);
 
 			str = attribs.value("type").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'type'"));
-            else
-                d->errorBarsType = (XYCurve::ErrorBarsType)str.toInt();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'type'"));
+			else
+				d->errorBarsType = (XYCurve::ErrorBarsType)str.toInt();
 
 			str = attribs.value("capSize").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'capSize'"));
-            else
-                d->errorBarsCapSize = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'capSize'"));
+			else
+				d->errorBarsCapSize = str.toDouble();
 
 			READ_QPEN(d->errorBarsPen);
 
 			str = attribs.value("opacity").toString();
-            if(str.isEmpty())
-                reader->raiseWarning(attributeWarning.arg("'opacity'"));
-            else
-                d->errorBarsOpacity = str.toDouble();
+			if(str.isEmpty())
+				reader->raiseWarning(attributeWarning.arg("'opacity'"));
+			else
+				d->errorBarsOpacity = str.toDouble();
 		}
 	}
 


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

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