[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot/histogram_chart] src: Demo- Ordinary Histogram
From: Anu Mittal <anu22mittal () gmail ! com>
Date: 2016-07-12 10:03:22
Message-ID: E1bMuXC-0003TX-Bp () code ! kde ! org
[Download RAW message or body]
Git commit a25afe58cc1c1ba9e141014456270a255c4cfbc6 by Anu Mittal.
Committed on 12/07/2016 at 10:02.
Pushed by anumittal into branch 'histogram_chart'.
Demo- Ordinary Histogram
M +0 -1 src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
M +98 -49 src/backend/worksheet/plots/cartesian/Histogram.cpp
M +1 -7 src/backend/worksheet/plots/cartesian/Histogram.h
M +306 -11 src/kdefrontend/dockwidgets/HistogramDock.cpp
M +6 -6 src/kdefrontend/dockwidgets/HistogramDock.h
http://commits.kde.org/labplot/a25afe58cc1c1ba9e141014456270a255c4cfbc6
diff --git a/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp \
b/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp index 494e8be..429d971 \
100644
--- a/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
+++ b/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
@@ -841,7 +841,6 @@ void CartesianPlot::xDataChanged(){
curve->retransform();
}
-#include <QDebug>
void CartesianPlot::xHistogramDataChanged(){
if (project()->isLoading())
return;
diff --git a/src/backend/worksheet/plots/cartesian/Histogram.cpp \
b/src/backend/worksheet/plots/cartesian/Histogram.cpp index 46be04f..54594bf 100644
--- a/src/backend/worksheet/plots/cartesian/Histogram.cpp
+++ b/src/backend/worksheet/plots/cartesian/Histogram.cpp
@@ -377,6 +377,7 @@ void Histogram::setFillingOpacity(qreal opacity) {
//################################# SLOTS ####################################
//##############################################################################
void Histogram::retransform() {
+ qDebug() << "Retransform begins";
d_ptr->retransform();
}
@@ -559,6 +560,7 @@ QString HistogramPrivate::name() const {
}
QRectF HistogramPrivate::boundingRect() const {
+ return QRectF(0, 0, 100, 100);
return boundingRectangle;
}
@@ -658,6 +660,7 @@ void HistogramPrivate::retransform(){
m_suppressRecalc = true;
updateValues();
m_suppressRecalc = false;
+ qDebug() << "Retransform end";
}
/*!
@@ -1065,6 +1068,8 @@ void HistogramPrivate::recalcShapeAndBoundingRect() {
void HistogramPrivate::draw(QPainter *painter) {
//draw filling
+
+ qDebug() << "drawing Histogram";
if (fillingPosition != Histogram::NoFilling) {
painter->setOpacity(fillingOpacity);
painter->setPen(Qt::SolidLine);
@@ -1180,55 +1185,99 @@ QImage HistogramPrivate::blurred(const QImage& image, const \
QRect& rect, int rad \sa QGraphicsItem::paint().
*/
void HistogramPrivate::paint(QPainter* painter, const QStyleOptionGraphicsItem* \
option, QWidget* widget){
-// qDebug()<<"HistogramPrivate::paint, " + q->name();
- Q_UNUSED(option);
- Q_UNUSED(widget);
- if (!isVisible())
- return;
-
-// QTime timer;
-// timer.start();
- painter->setPen(Qt::NoPen);
- painter->setBrush(Qt::NoBrush);
- painter->setRenderHint(QPainter::SmoothPixmapTransform, true);
-
-// TODO: draw directly
- draw(painter);
-// or use pixmap for double buffering
-// painter->drawPixmap(boundingRectangle.topLeft(), m_pixmap);
-// qDebug() << "Paint the pixmap: " << timer.elapsed() << "ms";
-
- if (m_hovered && !isSelected() && !m_printing){
-// timer.start();
- if (m_hoverEffectImageIsDirty) {
- QPixmap pix = m_pixmap;
- pix.fill(q->hoveredPen.color());
- pix.setAlphaChannel(m_pixmap.alphaChannel());
- m_hoverEffectImage =blurred(pix.toImage(), m_pixmap.rect(), 5,false);
- m_hoverEffectImageIsDirty = false;
- }
-
- painter->setOpacity(q->hoveredOpacity*2);
- painter->drawImage(boundingRectangle.topLeft(), m_hoverEffectImage, \
m_pixmap.rect());
-// qDebug() << "Paint hovering effect: " << timer.elapsed() << "ms";
- return;
- }
-
- if (isSelected() && !m_printing){
-// timer.start();
- if (m_selectionEffectImageIsDirty) {
- QPixmap pix = m_pixmap;
- pix.fill(q->selectedPen.color());
- pix.setAlphaChannel(m_pixmap.alphaChannel());
- m_selectionEffectImage = blurred(pix.toImage(), m_pixmap.rect(), 5,false);
- m_selectionEffectImageIsDirty = false;
- }
-
- painter->setOpacity(q->selectedOpacity*2);
- painter->drawImage(boundingRectangle.topLeft(), m_selectionEffectImage, \
m_pixmap.rect());
-// qDebug() << "Paint selection effect: " << timer.elapsed() << "ms";
- return;
- }
+// qDebug()<<"HistogramPrivate::paint, " + q->name();
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+
+ //Ordinary logic
+ QPainterPath LinePath = QPainterPath();
+ QList<QLineF> lines;
+ lines.clear();
+ double bins[] = {5.0, 6.0, 2.0, 9.0, 10.0};
+
+ QPointF tempPoint, tempPoint1;
+
+ for(int i=0;i < 4; ++i) {
+ tempPoint.setX((double) i);
+ tempPoint.setY(0.0);
+
+ tempPoint1.setX((double) i);
+ tempPoint1.setY(bins[i]);
+
+ lines.append(QLineF(tempPoint, tempPoint1));
+
+ tempPoint.setX((double) i);
+ tempPoint.setY(bins[i]);
+
+ tempPoint1.setX((double) i+1);
+ tempPoint1.setY(bins[i]);
+
+ lines.append(QLineF(tempPoint,tempPoint1));
+
+ tempPoint.setX((double) i+1);
+ tempPoint.setY(bins[i]);
+
+ tempPoint1.setX((double) i+1);
+ tempPoint1.setY(0.0);
+
+ lines.append(QLineF(tempPoint, tempPoint1));
+ }
+
+ const CartesianPlot* plot = dynamic_cast<const \
CartesianPlot*>(q->parentAspect()); + const AbstractCoordinateSystem* cSystem = \
plot->coordinateSystem(); + lines = cSystem->mapLogicalToScene(lines);
+
+ foreach (const QLineF& line, lines){
+ LinePath.moveTo(line.p1());
+ LinePath.lineTo(line.p2());
+ }
+
+ QPen linePen;
+
+ linePen.setStyle( Qt::SolidLine );
+ linePen.setColor( QColor(Qt::black) );
+ linePen.setWidthF( Worksheet::convertToSceneUnits(1.0, Worksheet::Point) );
+
+ prepareGeometryChange();
+ curveShape = QPainterPath();
+ curveShape.addPath(WorksheetElement::shapeFromPath(LinePath, linePen));
+ boundingRectangle = curveShape.boundingRect();
+
+
+ QPixmap pixmap(boundingRectangle.width(), boundingRectangle.height());
+ if (boundingRectangle.width()==0 || boundingRectangle.width()==0) {
+ m_pixmap = pixmap;
+ m_hoverEffectImageIsDirty = true;
+ m_selectionEffectImageIsDirty = true;
+ return;
+ }
+ pixmap.fill(Qt::transparent);
+ QPainter temp_painter(&pixmap);
+ temp_painter.setRenderHint(QPainter::Antialiasing, true);
+ temp_painter.translate(-boundingRectangle.topLeft());
+
+ temp_painter.setOpacity(1.0);
+ temp_painter.setPen(linePen);
+ temp_painter.setBrush(Qt::NoBrush);
+ temp_painter.drawPath(LinePath);
+
+ temp_painter.end();
+
+ m_pixmap = pixmap;
+
+ painter->setPen(Qt::NoPen);
+ painter->setBrush(Qt::NoBrush);
+ painter->setRenderHint(QPainter::SmoothPixmapTransform, true);
+
+ draw(painter);
+
+ QPixmap pix = m_pixmap;
+ m_selectionEffectImage = blurred(pix.toImage(), m_pixmap.rect(), 5.0, true);
+
+ painter->setOpacity(1.0*2);
+ painter->drawImage(boundingRectangle.topLeft(), m_selectionEffectImage, \
m_pixmap.rect()); +
+ return;
}
/*!
diff --git a/src/backend/worksheet/plots/cartesian/Histogram.h \
b/src/backend/worksheet/plots/cartesian/Histogram.h index 72de473..2b798de 100644
--- a/src/backend/worksheet/plots/cartesian/Histogram.h
+++ b/src/backend/worksheet/plots/cartesian/Histogram.h
@@ -30,7 +30,6 @@
#define HISTOGRAM_H
#include "backend/worksheet/WorksheetElement.h"
-#include "backend/worksheet/plots/cartesian/Symbol.h"
#include "backend/worksheet/plots/PlotArea.h"
#include "backend/lib/macros.h"
#include "backend/core/AbstractColumn.h"
@@ -43,15 +42,10 @@ class Histogram: public WorksheetElement {
Q_OBJECT
public:
- enum LineType {NoLine, Line, StartHorizontal, StartVertical, MidpointHorizontal, \
MidpointVertical, Segments2, Segments3,
- SplineCubicNatural, SplineCubicPeriodic, SplineAkimaNatural, \
SplineAkimaPeriodic};
- enum DropLineType {NoDropLine, DropLineX, DropLineY, DropLineXY, \
DropLineXZeroBaseline, DropLineXMinBaseline, DropLineXMaxBaseline}; enum ValuesType \
{NoValues, ValuesX, ValuesY, ValuesXY, ValuesXYBracketed, ValuesCustomColumn}; enum \
ValuesPosition {ValuesAbove, ValuesUnder, ValuesLeft, ValuesRight};
- enum ErrorType {NoError, SymmetricError, AsymmetricError};
enum FillingPosition {NoFilling, FillingAbove, FillingBelow, FillingZeroBaseline, \
FillingLeft, FillingRight};
- enum ErrorBarsType {ErrorBarsSimple, ErrorBarsWithEnds};
-
+
explicit Histogram(const QString &name);
virtual ~Histogram();
diff --git a/src/kdefrontend/dockwidgets/HistogramDock.cpp \
b/src/kdefrontend/dockwidgets/HistogramDock.cpp index e331644..b495c35 100644
--- a/src/kdefrontend/dockwidgets/HistogramDock.cpp
+++ b/src/kdefrontend/dockwidgets/HistogramDock.cpp
@@ -135,6 +135,107 @@ HistogramDock::~HistogramDock()
delete m_completion;
}
+
+void HistogramDock::updateValuesFormatWidgets(const AbstractColumn::ColumnMode \
columnMode){ + ui.cbValuesFormat->clear();
+
+ switch (columnMode){
+ case AbstractColumn::Numeric:
+ ui.cbValuesFormat->addItem(i18n("Decimal"), QVariant('f'));
+ ui.cbValuesFormat->addItem(i18n("Scientific (e)"), QVariant('e'));
+ ui.cbValuesFormat->addItem(i18n("Scientific (E)"), QVariant('E'));
+ ui.cbValuesFormat->addItem(i18n("Automatic (e)"), QVariant('g'));
+ ui.cbValuesFormat->addItem(i18n("Automatic (E)"), QVariant('G'));
+ break;
+ case AbstractColumn::Text:
+ ui.cbValuesFormat->addItem(i18n("Text"), QVariant());
+ break;
+ case AbstractColumn::Month:
+ ui.cbValuesFormat->addItem(i18n("Number without leading zero"), QVariant("M"));
+ ui.cbValuesFormat->addItem(i18n("Number with leading zero"), QVariant("MM"));
+ ui.cbValuesFormat->addItem(i18n("Abbreviated month name"), QVariant("MMM"));
+ ui.cbValuesFormat->addItem(i18n("Full month name"), QVariant("MMMM"));
+ break;
+ case AbstractColumn::Day:
+ ui.cbValuesFormat->addItem(i18n("Number without leading zero"), QVariant("d"));
+ ui.cbValuesFormat->addItem(i18n("Number with leading zero"), QVariant("dd"));
+ ui.cbValuesFormat->addItem(i18n("Abbreviated day name"), QVariant("ddd"));
+ ui.cbValuesFormat->addItem(i18n("Full day name"), QVariant("dddd"));
+ break;
+ case AbstractColumn::DateTime:{
+ foreach(const QString& s, dateStrings)
+ ui.cbValuesFormat->addItem(s, QVariant(s));
+
+ foreach(const QString& s, timeStrings)
+ ui.cbValuesFormat->addItem(s, QVariant(s));
+
+ foreach(const QString& s1, dateStrings){
+ foreach(const QString& s2, timeStrings)
+ ui.cbValuesFormat->addItem(s1 + ' ' + s2, QVariant(s1 + ' ' + s2));
+ }
+ break;
+ }
+ }
+
+ ui.cbValuesFormat->setCurrentIndex(0);
+
+ if (columnMode == AbstractColumn::Numeric){
+ ui.lValuesPrecision->show();
+ ui.sbValuesPrecision->show();
+ }else{
+ ui.lValuesPrecision->hide();
+ ui.sbValuesPrecision->hide();
+ }
+
+ if (columnMode == AbstractColumn::Text){
+ ui.lValuesFormatTop->hide();
+ ui.lValuesFormat->hide();
+ ui.cbValuesFormat->hide();
+ }else{
+ ui.lValuesFormatTop->show();
+ ui.lValuesFormat->show();
+ ui.cbValuesFormat->show();
+ ui.cbValuesFormat->setCurrentIndex(0);
+ }
+
+ if (columnMode == AbstractColumn::DateTime){
+ ui.cbValuesFormat->setEditable( true );
+ }else{
+ ui.cbValuesFormat->setEditable( false );
+ }
+}
+
+void HistogramDock::showValuesColumnFormat(const Column* column){
+ if (!column){
+ // no valid column is available
+ // -> hide all the format properties widgets (equivalent to showing the properties \
of the column mode "Text") + this->updateValuesFormatWidgets(AbstractColumn::Text);
+ }else{
+ AbstractColumn::ColumnMode columnMode = column->columnMode();
+
+ //update the format widgets for the new column mode
+ this->updateValuesFormatWidgets(columnMode);
+
+ //show the actuall formating properties
+ switch(columnMode) {
+ case AbstractColumn::Numeric:{
+ Double2StringFilter * filter = \
static_cast<Double2StringFilter*>(column->outputFilter()); + \
ui.cbValuesFormat->setCurrentIndex(ui.cbValuesFormat->findData(filter->numericFormat()));
+ ui.sbValuesPrecision->setValue(filter->numDigits());
+ break;
+ }
+ case AbstractColumn::Text:
+ break;
+ case AbstractColumn::Month:
+ case AbstractColumn::Day:
+ case AbstractColumn::DateTime: {
+ DateTime2StringFilter * filter = \
static_cast<DateTime2StringFilter*>(column->outputFilter()); \
+ ui.cbValuesFormat->setCurrentIndex(ui.cbValuesFormat->findData(filter->format()));
+ break;
+ }
+ }
+ }
+}
void HistogramDock::setModelIndexFromColumn(TreeViewComboBox* cb, const \
AbstractColumn* column){ if (column)
cb->setCurrentModelIndex(m_aspectTreeModel->modelIndexOfAspect(column));
@@ -158,7 +259,27 @@ void HistogramDock::nameChanged(){
m_curve->setName(uiGeneralTab.leName->text());
}
+void HistogramDock::commentChanged(){
+ if (m_initializing)
+ return;
+
+ m_curve->setComment(uiGeneralTab.leComment->text());
+}
+
+void HistogramDock::visibilityChanged(bool state){
+ if (m_initializing)
+ return;
+
+ foreach(Histogram* curve, m_curvesList)
+ curve->setVisible(state);
+}
+void HistogramDock::valuesColorChanged(const QColor& color){
+ if (m_initializing)
+ return;
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesColor(color);
+}
void HistogramDock::init(){
dateStrings<<"yyyy-MM-dd";
dateStrings<<"yyyy/MM/dd";
@@ -301,15 +422,7 @@ void HistogramDock::initGeneralTab(){
//show the properties of the first curve
uiGeneralTab.chkVisible->setChecked( m_curve->isVisible() );
- connect( uiGeneralTab.cbHistogramType, SIGNAL(currentIndexChanged(int)), this, \
SLOT(histogramTypeChanged(int)) );
-
-
- //Slots
- connect(m_curve, SIGNAL(aspectDescriptionChanged(const AbstractAspect*)),this, \
SLOT(curveDescriptionChanged(const AbstractAspect*)));
-
- connect(m_curve, SIGNAL(xColumnChanged(const AbstractColumn*)), this, \
SLOT(curveXColumnChanged(const AbstractColumn*)));
- connect(m_curve, SIGNAL(yColumnChanged(const AbstractColumn*)), this, \
SLOT(curveYColumnChanged(const AbstractColumn*)));
- connect(m_curve, SIGNAL(visibilityChanged(bool)), this, \
SLOT(curveVisibilityChanged(bool))); + //connect( uiGeneralTab.cbHistogramType, \
SIGNAL(currentIndexChanged(int)), this, SLOT(histogramTypeChanged(int)) ); //types \
options uiGeneralTab.cbHistogramType->addItem(i18n("Ordinary Histogram"));
uiGeneralTab.cbHistogramType->addItem(i18n("Cummulative Histogram"));
@@ -369,6 +482,144 @@ void HistogramDock::curveValuesColorChanged(QColor color) {
ui.kcbValuesColor->setColor(color);
m_initializing = false;
}
+//Values-tab
+
+/*!
+ called when the type of the values (none, x, y, (x,y) etc.) was changed.
+*/
+void HistogramDock::valuesTypeChanged(int index){
+ Histogram::ValuesType valuesType = Histogram::ValuesType(index);
+
+ if (valuesType==Histogram::NoValues){
+ //no values are to paint -> deactivate all the pertinent widgets
+ ui.cbValuesPosition->setEnabled(false);
+ ui.lValuesColumn->hide();
+ cbValuesColumn->hide();
+ ui.sbValuesDistance->setEnabled(false);
+ ui.sbValuesRotation->setEnabled(false);
+ ui.sbValuesOpacity->setEnabled(false);
+ ui.cbValuesFormat->setEnabled(false);
+ ui.cbValuesFormat->setEnabled(false);
+ ui.sbValuesPrecision->setEnabled(false);
+ ui.leValuesPrefix->setEnabled(false);
+ ui.leValuesSuffix->setEnabled(false);
+ ui.kfrValuesFont->setEnabled(false);
+ ui.kcbValuesColor->setEnabled(false);
+ }else{
+ ui.cbValuesPosition->setEnabled(true);
+ ui.sbValuesDistance->setEnabled(true);
+ ui.sbValuesRotation->setEnabled(true);
+ ui.sbValuesOpacity->setEnabled(true);
+ ui.cbValuesFormat->setEnabled(true);
+ ui.sbValuesPrecision->setEnabled(true);
+ ui.leValuesPrefix->setEnabled(true);
+ ui.leValuesSuffix->setEnabled(true);
+ ui.kfrValuesFont->setEnabled(true);
+ ui.kcbValuesColor->setEnabled(true);
+
+ const Column* column;
+ if (valuesType==Histogram::ValuesCustomColumn){
+ ui.lValuesColumn->show();
+ cbValuesColumn->show();
+
+ column= static_cast<Column*>(cbValuesColumn->currentModelIndex().internalPointer());
+ }else{
+ ui.lValuesColumn->hide();
+ cbValuesColumn->hide();
+
+ if (valuesType==Histogram::ValuesY){
+ column = static_cast<const Column*>(m_curve->yColumn());
+ }else{
+ column = static_cast<const Column*>(m_curve->xColumn());
+ }
+ }
+ this->showValuesColumnFormat(column);
+ }
+
+
+ if (m_initializing)
+ return;
+
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesType(valuesType);
+}
+
+/*!
+ called when the custom column for the values was changed.
+*/
+void HistogramDock::valuesColumnChanged(const QModelIndex& index){
+ if (m_initializing)
+ return;
+
+ Column* column= static_cast<Column*>(index.internalPointer());
+ this->showValuesColumnFormat(column);
+
+ foreach(Histogram* curve, m_curvesList){
+ //TODO save also the format of the currently selected column for the values \
(precision etc.) + curve->setValuesColumn(column);
+ }
+}
+
+void HistogramDock::valuesPositionChanged(int index){
+ if (m_initializing)
+ return;
+
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesPosition(Histogram::ValuesPosition(index));
+}
+
+void HistogramDock::valuesDistanceChanged(double value){
+ if (m_initializing)
+ return;
+
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesDistance( Worksheet::convertToSceneUnits(value, Worksheet::Point) \
); +}
+
+void HistogramDock::valuesRotationChanged(int value){
+ if (m_initializing)
+ return;
+
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesRotationAngle(value);
+}
+
+void HistogramDock::valuesOpacityChanged(int value){
+ if (m_initializing)
+ return;
+
+ qreal opacity = (float)value/100.;
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesOpacity(opacity);
+}
+
+void HistogramDock::valuesPrefixChanged(){
+ if (m_initializing)
+ return;
+
+ QString prefix = ui.leValuesPrefix->text();
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesPrefix(prefix);
+}
+
+void HistogramDock::valuesSuffixChanged(){
+ if (m_initializing)
+ return;
+
+ QString suffix = ui.leValuesSuffix->text();
+ foreach(Histogram* curve, m_curvesList)
+ curve->setValuesSuffix(suffix);
+}
+
+void HistogramDock::valuesFontChanged(const QFont& font){
+ if (m_initializing)
+ return;
+
+ QFont valuesFont = font;
+ valuesFont.setPixelSize( Worksheet::convertToSceneUnits(font.pointSizeF(), \
Worksheet::Point) ); + foreach(Histogram* curve, m_curvesList)
+ curve->setValuesFont(valuesFont);
+}
//Filling
void HistogramDock::curveFillingPositionChanged(Histogram::FillingPosition position) \
{ @@ -695,9 +946,7 @@ void HistogramDock::setupGeneral() {
connect( uiGeneralTab.leName, SIGNAL(returnPressed()), this, SLOT(nameChanged()) );
connect( uiGeneralTab.leComment, SIGNAL(returnPressed()), this, \
SLOT(commentChanged()) ); connect( uiGeneralTab.chkVisible, SIGNAL(clicked(bool)), \
this, SLOT(visibilityChanged(bool)) );
- qDebug() << "colo";
connect( cbXColumn, SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(xColumnChanged(QModelIndex)) );
- qDebug() << "colo1";
connect( cbYColumn, SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(yColumnChanged(QModelIndex)) );
}
@@ -737,4 +986,50 @@ void HistogramDock::yColumnChanged(const QModelIndex& index) {
foreach(Histogram* curve, m_curvesList)
curve->setYColumn(column);
+}
+
+void HistogramDock::loadConfigFromTemplate(KConfig& config) {
+ //extract the name of the template from the file name
+ QString name;
+ int index = config.name().lastIndexOf(QDir::separator());
+ if (index!=-1)
+ name = config.name().right(config.name().size() - index - 1);
+ else
+ name = config.name();
+
+ int size = m_curvesList.size();
+ if (size>1)
+ m_curve->beginMacro(i18n("%1 xy-curves: template \"%2\" loaded", size, name));
+ else
+ m_curve->beginMacro(i18n("%1: template \"%2\" loaded", m_curve->name(), name));
+
+ this->loadConfig(config);
+
+ m_curve->endMacro();
+}
+void HistogramDock::saveConfigAsTemplate(KConfig& config) {
+ KConfigGroup group = config.group( "Histogram" );
+ //Values
+ group.writeEntry("ValuesType", ui.cbValuesType->currentIndex());
+ group.writeEntry("ValuesPosition", ui.cbValuesPosition->currentIndex());
+ group.writeEntry("ValuesDistance", \
Worksheet::convertToSceneUnits(ui.sbValuesDistance->value(),Worksheet::Point)); \
+ group.writeEntry("ValuesRotation", ui.sbValuesRotation->value()); \
+ group.writeEntry("ValuesOpacity", ui.sbValuesOpacity->value()/100); \
+ group.writeEntry("ValuesPrefix", ui.leValuesPrefix->text()); \
+ group.writeEntry("ValuesSuffix", ui.leValuesSuffix->text()); \
+ group.writeEntry("ValuesFont", ui.kfrValuesFont->font()); \
+ group.writeEntry("ValuesColor", ui.kcbValuesColor->color()); +
+ //Filling
+ group.writeEntry("FillingPosition", ui.cbFillingPosition->currentIndex());
+ group.writeEntry("FillingType", ui.cbFillingType->currentIndex());
+ group.writeEntry("FillingColorStyle", ui.cbFillingColorStyle->currentIndex());
+ group.writeEntry("FillingImageStyle", ui.cbFillingImageStyle->currentIndex());
+ group.writeEntry("FillingBrushStyle", ui.cbFillingBrushStyle->currentIndex());
+ group.writeEntry("FillingFileName", ui.kleFillingFileName->text());
+ group.writeEntry("FillingFirstColor", ui.kcbFillingFirstColor->color());
+ group.writeEntry("FillingSecondColor", ui.kcbFillingSecondColor->color());
+ group.writeEntry("FillingOpacity", ui.sbFillingOpacity->value()/100.0);
+
+ config.sync();
}
\ No newline at end of file
diff --git a/src/kdefrontend/dockwidgets/HistogramDock.h \
b/src/kdefrontend/dockwidgets/HistogramDock.h index 48eb964..152c1a8 100644
--- a/src/kdefrontend/dockwidgets/HistogramDock.h
+++ b/src/kdefrontend/dockwidgets/HistogramDock.h
@@ -86,15 +86,15 @@ private slots:
//SLOTs for changes triggered in HistogramDock
void nameChanged();
- //void commentChanged();
+ void commentChanged();
void xColumnChanged(const QModelIndex&);
void yColumnChanged(const QModelIndex&);
-// void visibilityChanged(bool);
+ void visibilityChanged(bool);
//Histogram-types
//void histogramTypeChanged(int);
//Values-Tab
- /*void valuesTypeChanged(int);
+ void valuesTypeChanged(int);
void valuesColumnChanged(const QModelIndex&);
void valuesPositionChanged(int);
void valuesDistanceChanged(double);
@@ -103,7 +103,7 @@ private slots:
void valuesPrefixChanged();
void valuesSuffixChanged();
void valuesFontChanged(const QFont&);
- void valuesColorChanged(const QColor&);*/
+ void valuesColorChanged(const QColor&);
//Filling-tab
void fillingPositionChanged(int);
@@ -149,8 +149,8 @@ private slots:
//load and save
-// void loadConfigFromTemplate(KConfig&);
-// void saveConfigAsTemplate(KConfig&);
+ void loadConfigFromTemplate(KConfig&);
+ void saveConfigAsTemplate(KConfig&);
signals:
void info(const QString&);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic