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

List:       kde-commits
Subject:    [labplot/histogram_chart] src: updating HistogramDock files
From:       Anu Mittal <anu22mittal () gmail ! com>
Date:       2016-06-19 7:49:34
Message-ID: E1bEXU6-0007LL-H3 () code ! kde ! org
[Download RAW message or body]

Git commit 8b5178e6d4bc0a800046e41e3ce3ac551bce5fd8 by Anu Mittal.
Committed on 19/06/2016 at 07:49.
Pushed by anumittal into branch 'histogram_chart'.

updating HistogramDock files

M  +1    -0    src/CMakeLists.txt
M  +456  -6    src/kdefrontend/dockwidgets/HistogramDock.cpp
M  +3    -3    src/kdefrontend/dockwidgets/HistogramDock.h

http://commits.kde.org/labplot/8b5178e6d4bc0a800046e41e3ce3ac551bce5fd8

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c875a5b..971c415 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -78,6 +78,7 @@ set(UI_SOURCES
 	${KDEFRONTEND_DIR}/ui/dockwidgets/cartesianplotdock.ui
 	${KDEFRONTEND_DIR}/ui/dockwidgets/cartesianplotlegenddock.ui
 	${KDEFRONTEND_DIR}/ui/dockwidgets/histogramdock.ui
+	${KDEFRONTEND_DIR}/ui/dockwidgets/histogramdockgeneraltab.ui
 	${KDEFRONTEND_DIR}/ui/dockwidgets/barchartplotdock.ui
 	${KDEFRONTEND_DIR}/ui/dockwidgets/columndock.ui
 	${KDEFRONTEND_DIR}/ui/dockwidgets/custompointdock.ui
diff --git a/src/kdefrontend/dockwidgets/HistogramDock.cpp \
b/src/kdefrontend/dockwidgets/HistogramDock.cpp index 96aaf8a..4e6b4da 100644
--- a/src/kdefrontend/dockwidgets/HistogramDock.cpp
+++ b/src/kdefrontend/dockwidgets/HistogramDock.cpp
@@ -55,22 +55,472 @@
   \ingroup kdefrontend
 */
 
-HistogramDock::HistogramDock(QWidget *parent): QWidget(parent) {
+HistogramDock::HistogramDock(QWidget *parent): QWidget(parent),
+	m_completion(new KUrlCompletion()),
+	cbXColumn(0),
+	cbYColumn(0),
+	m_curve(0),
+	m_aspectTreeModel(0) {
 
 	ui.setupUi(this);
-}
 
+	//Tab "Values"
+	QGridLayout* gridLayout = qobject_cast<QGridLayout*>(ui.tabValues->layout());
+	cbValuesColumn = new TreeViewComboBox(ui.tabValues);
+	gridLayout->addWidget(cbValuesColumn, 2, 2, 1, 1);
+
+	//Tab "Filling"
+	ui.cbFillingColorStyle->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon);
 +	ui.kleFillingFileName->setClearButtonShown(true);
+	ui.bFillingOpen->setIcon( QIcon::fromTheme("document-open") );
+
+	ui.kleFillingFileName->setCompletionObject(m_completion);
+
+	//Tab "Error bars"
+	gridLayout = qobject_cast<QGridLayout*>(ui.tabErrorBars->layout());
+
+	cbXErrorPlusColumn = new TreeViewComboBox(ui.tabErrorBars);
+	gridLayout->addWidget(cbXErrorPlusColumn, 2, 2, 1, 1);
+
+	cbXErrorMinusColumn = new TreeViewComboBox(ui.tabErrorBars);
+	gridLayout->addWidget(cbXErrorMinusColumn, 3, 2, 1, 1);
+
+	cbYErrorPlusColumn = new TreeViewComboBox(ui.tabErrorBars);
+	gridLayout->addWidget(cbYErrorPlusColumn, 7, 2, 1, 1);
+
+	cbYErrorMinusColumn = new TreeViewComboBox(ui.tabErrorBars);
+	gridLayout->addWidget(cbYErrorMinusColumn, 8, 2, 1, 1);
+
+	//adjust layouts in the tabs
+	for (int i=0; i<ui.tabWidget->count(); ++i){
+	  QGridLayout* layout = \
dynamic_cast<QGridLayout*>(ui.tabWidget->widget(i)->layout()); +	  if (!layout)
+		continue;
+
+	  layout->setContentsMargins(2,2,2,2);
+	  layout->setHorizontalSpacing(2);
+	  layout->setVerticalSpacing(2);
+	}
+
+	//Slots
+
+	//Lines
+	connect( ui.cbLineType, SIGNAL(currentIndexChanged(int)), this, \
SLOT(lineTypeChanged(int)) ); +	connect( ui.sbLineInterpolationPointsCount, \
SIGNAL(valueChanged(int)), this, SLOT(lineInterpolationPointsCountChanged(int)) ); \
+	connect( ui.chkLineSkipGaps, SIGNAL(clicked(bool)), this, \
SLOT(lineSkipGapsChanged(bool)) ); +	connect( ui.cbLineStyle, \
SIGNAL(currentIndexChanged(int)), this, SLOT(lineStyleChanged(int)) ); +	connect( \
ui.kcbLineColor, SIGNAL(changed(QColor)), this, SLOT(lineColorChanged(QColor)) ); \
+	connect( ui.sbLineWidth, SIGNAL(valueChanged(double)), this, \
SLOT(lineWidthChanged(double)) ); +	connect( ui.sbLineOpacity, \
SIGNAL(valueChanged(int)), this, SLOT(lineOpacityChanged(int)) ); +
+	connect( ui.cbDropLineType, SIGNAL(currentIndexChanged(int)), this, \
SLOT(dropLineTypeChanged(int)) ); +	connect( ui.cbDropLineStyle, \
SIGNAL(currentIndexChanged(int)), this, SLOT(dropLineStyleChanged(int)) ); +	connect( \
ui.kcbDropLineColor, SIGNAL(changed(QColor)), this, \
SLOT(dropLineColorChanged(QColor)) ); +	connect( ui.sbDropLineWidth, \
SIGNAL(valueChanged(double)), this, SLOT(dropLineWidthChanged(double)) ); +	connect( \
ui.sbDropLineOpacity, SIGNAL(valueChanged(int)), this, \
SLOT(dropLineOpacityChanged(int)) ); +
+	//Symbol
+	connect( ui.cbSymbolStyle, SIGNAL(currentIndexChanged(int)), this, \
SLOT(symbolsStyleChanged(int)) ); +	connect( ui.sbSymbolSize, \
SIGNAL(valueChanged(double)), this, SLOT(symbolsSizeChanged(double)) ); +	connect( \
ui.sbSymbolRotation, SIGNAL(valueChanged(int)), this, \
SLOT(symbolsRotationChanged(int)) ); +	connect( ui.sbSymbolOpacity, \
SIGNAL(valueChanged(int)), this, SLOT(symbolsOpacityChanged(int)) ); +
+	connect( ui.cbSymbolFillingStyle, SIGNAL(currentIndexChanged(int)), this, \
SLOT(symbolsFillingStyleChanged(int)) ); +	connect( ui.kcbSymbolFillingColor, \
SIGNAL(changed(QColor)), this, SLOT(symbolsFillingColorChanged(QColor)) ); +
+	connect( ui.cbSymbolBorderStyle, SIGNAL(currentIndexChanged(int)), this, \
SLOT(symbolsBorderStyleChanged(int)) ); +	connect( ui.kcbSymbolBorderColor, \
SIGNAL(changed(QColor)), this, SLOT(symbolsBorderColorChanged(QColor)) ); +	connect( \
ui.sbSymbolBorderWidth, SIGNAL(valueChanged(double)), this, \
SLOT(symbolsBorderWidthChanged(double)) ); +
+	//Values
+	connect( ui.cbValuesType, SIGNAL(currentIndexChanged(int)), this, \
SLOT(valuesTypeChanged(int)) ); +	connect( cbValuesColumn, \
SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(valuesColumnChanged(QModelIndex)) ); +	connect( ui.cbValuesPosition, \
SIGNAL(currentIndexChanged(int)), this, SLOT(valuesPositionChanged(int)) ); \
+	connect( ui.sbValuesDistance, SIGNAL(valueChanged(double)), this, \
SLOT(valuesDistanceChanged(double)) ); +	connect( ui.sbValuesRotation, \
SIGNAL(valueChanged(int)), this, SLOT(valuesRotationChanged(int)) ); +	connect( \
ui.sbValuesOpacity, SIGNAL(valueChanged(int)), this, SLOT(valuesOpacityChanged(int)) \
); +
+	//TODO connect( ui.cbValuesFormat, SIGNAL(currentIndexChanged(int)), this, \
SLOT(valuesColumnFormatChanged(int)) ); +	connect( ui.leValuesPrefix, \
SIGNAL(returnPressed()), this, SLOT(valuesPrefixChanged()) ); +	connect( \
ui.leValuesSuffix, SIGNAL(returnPressed()), this, SLOT(valuesSuffixChanged()) ); \
+	connect( ui.kfrValuesFont, SIGNAL(fontSelected(QFont)), this, \
SLOT(valuesFontChanged(QFont)) ); +	connect( ui.kcbValuesColor, \
SIGNAL(changed(QColor)), this, SLOT(valuesColorChanged(QColor)) ); +
+	//Filling
+	connect( ui.cbFillingPosition, SIGNAL(currentIndexChanged(int)), this, \
SLOT(fillingPositionChanged(int)) ); +	connect( ui.cbFillingType, \
SIGNAL(currentIndexChanged(int)), this, SLOT(fillingTypeChanged(int)) ); +	connect( \
ui.cbFillingColorStyle, SIGNAL(currentIndexChanged(int)), this, \
SLOT(fillingColorStyleChanged(int)) ); +	connect( ui.cbFillingImageStyle, \
SIGNAL(currentIndexChanged(int)), this, SLOT(fillingImageStyleChanged(int)) ); \
+	connect( ui.cbFillingBrushStyle, SIGNAL(currentIndexChanged(int)), this, \
SLOT(fillingBrushStyleChanged(int)) ); +	connect(ui.bFillingOpen, \
SIGNAL(clicked(bool)), this, SLOT(selectFile())); +	connect( ui.kleFillingFileName, \
SIGNAL(returnPressed()), this, SLOT(fileNameChanged()) ); +	connect( \
ui.kleFillingFileName, SIGNAL(clearButtonClicked()), this, SLOT(fileNameChanged()) ); \
+	connect( ui.kcbFillingFirstColor, SIGNAL(changed(QColor)), this, \
SLOT(fillingFirstColorChanged(QColor)) ); +	connect( ui.kcbFillingSecondColor, \
SIGNAL(changed(QColor)), this, SLOT(fillingSecondColorChanged(QColor)) ); +	connect( \
ui.sbFillingOpacity, SIGNAL(valueChanged(int)), this, \
SLOT(fillingOpacityChanged(int)) ); +
+	//Error bars
+	connect( ui.cbXErrorType, SIGNAL(currentIndexChanged(int)), this, \
SLOT(xErrorTypeChanged(int)) ); +	connect( cbXErrorPlusColumn, \
SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(xErrorPlusColumnChanged(QModelIndex)) ); +	connect( cbXErrorMinusColumn, \
SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(xErrorMinusColumnChanged(QModelIndex)) ); +	connect( ui.cbYErrorType, \
SIGNAL(currentIndexChanged(int)), this, SLOT(yErrorTypeChanged(int)) ); +	connect( \
cbYErrorPlusColumn, SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(yErrorPlusColumnChanged(QModelIndex)) ); +	connect( cbYErrorMinusColumn, \
SIGNAL(currentModelIndexChanged(QModelIndex)), this, \
SLOT(yErrorMinusColumnChanged(QModelIndex)) ); +	connect( ui.cbErrorBarsType, \
SIGNAL(currentIndexChanged(int)), this, SLOT(errorBarsTypeChanged(int)) ); +	connect( \
ui.sbErrorBarsCapSize, SIGNAL(valueChanged(double)), this, \
SLOT(errorBarsCapSizeChanged(double)) ); +	connect( ui.cbErrorBarsStyle, \
SIGNAL(currentIndexChanged(int)), this, SLOT(errorBarsStyleChanged(int)) ); \
+	connect( ui.kcbErrorBarsColor, SIGNAL(changed(QColor)), this, \
SLOT(errorBarsColorChanged(QColor)) ); +	connect( ui.sbErrorBarsWidth, \
SIGNAL(valueChanged(double)), this, SLOT(errorBarsWidthChanged(double)) ); +	connect( \
ui.sbErrorBarsOpacity, SIGNAL(valueChanged(int)), this, \
SLOT(errorBarsOpacityChanged(int)) ); +
+	//template handler
+	TemplateHandler* templateHandler = new TemplateHandler(this, \
TemplateHandler::XYCurve); +	ui.verticalLayout->addWidget(templateHandler);
+	templateHandler->show();
+	connect(templateHandler, SIGNAL(loadConfigRequested(KConfig&)), this, \
SLOT(loadConfigFromTemplate(KConfig&))); +	connect(templateHandler, \
SIGNAL(saveConfigRequested(KConfig&)), this, SLOT(saveConfigAsTemplate(KConfig&))); \
+	connect(templateHandler, SIGNAL(info(QString)), this, SIGNAL(info(QString))); +
+	retranslateUi();
+	init();
+}
 HistogramDock::~HistogramDock()
 {
+	if (m_aspectTreeModel)
+		delete m_aspectTreeModel;
+
+	delete m_completion;
+
+}
+void HistogramDock::setModelIndexFromColumn(TreeViewComboBox* cb, const \
AbstractColumn* column){ +	if (column)
+		cb->setCurrentModelIndex(m_aspectTreeModel->modelIndexOfAspect(column));
+	else
+		cb->setCurrentModelIndex(QModelIndex());
+}
+void HistogramDock::retranslateUi(){
+	//TODO:
+// 	uiGeneralTab.lName->setText(i18n("Name"));
+// 	uiGeneralTab.lComment->setText(i18n("Comment"));
+// 	uiGeneralTab.chkVisible->setText(i18n("Visible"));
+// 	uiGeneralTab.lXColumn->setText(i18n("x-data"));
+// 	uiGeneralTab.lYColumn->setText(i18n("y-data"));
+
+	//TODO updatePenStyles, updateBrushStyles for all comboboxes
+}
+void HistogramDock::init(){
+  	dateStrings<<"yyyy-MM-dd";
+	dateStrings<<"yyyy/MM/dd";
+	dateStrings<<"dd/MM/yyyy";
+	dateStrings<<"dd/MM/yy";
+	dateStrings<<"dd.MM.yyyy";
+	dateStrings<<"dd.MM.yy";
+	dateStrings<<"MM/yyyy";
+	dateStrings<<"dd.MM.";
+	dateStrings<<"yyyyMMdd";
+
+	timeStrings<<"hh";
+	timeStrings<<"hh ap";
+	timeStrings<<"hh:mm";
+	timeStrings<<"hh:mm ap";
+	timeStrings<<"hh:mm:ss";
+	timeStrings<<"hh:mm:ss.zzz";
+	timeStrings<<"hh:mm:ss:zzz";
+	timeStrings<<"mm:ss.zzz";
+	timeStrings<<"hhmmss";
+
+	m_initializing = true;
+
+	//Line
+	ui.cbLineType->addItem(i18n("none"));
+	ui.cbLineType->addItem(i18n("line"));
+	ui.cbLineType->addItem(i18n("horiz. start"));
+	ui.cbLineType->addItem(i18n("vert. start"));
+	ui.cbLineType->addItem(i18n("horiz. midpoint"));
+	ui.cbLineType->addItem(i18n("vert. midpoint"));
+	ui.cbLineType->addItem(i18n("2-segments"));
+	ui.cbLineType->addItem(i18n("3-segments"));
+	ui.cbLineType->addItem(i18n("cubic spline (natural)"));
+	ui.cbLineType->addItem(i18n("cubic spline (periodic)"));
+	ui.cbLineType->addItem(i18n("Akima-spline (natural)"));
+	ui.cbLineType->addItem(i18n("Akima-spline (periodic)"));
+
+	QPainter pa;
+	//TODO size of the icon depending on the actuall height of the combobox?
+	int iconSize = 20;
+	QPixmap pm(iconSize, iconSize);
+	ui.cbLineType->setIconSize(QSize(iconSize, iconSize));
+
+	QPen pen(Qt::SolidPattern, 0);
+ 	pa.setPen( pen );
+
+	//no line
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.end();
+	ui.cbLineType->setItemIcon(0, pm);
+
+	//line
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(1, pm);
+
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,17,3);
+	pa.drawLine(17,3,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(2, pm);
+
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,3,17);
+	pa.drawLine(3,17,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(3, pm);
+
+	//horizontal midpoint
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,10,3);
+	pa.drawLine(10,3,10,17);
+	pa.drawLine(10,17,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(4, pm);
+
+	//vertical midpoint
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,3,10);
+	pa.drawLine(3,10,17,10);
+	pa.drawLine(17,10,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(5, pm);
+
+	//2-segments
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 8,8,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,10,10);
+	pa.end();
+	ui.cbLineType->setItemIcon(6, pm);
+
+	//3-segments
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 8,8,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.drawLine(3,3,17,17);
+	pa.end();
+	ui.cbLineType->setItemIcon(7, pm);
+
+	//natural spline
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawEllipse( 1,1,4,4);
+	pa.drawEllipse( 15,15,4,4);
+	pa.rotate(45);
+  	pa.drawArc(2*sqrt(2),-4,17*sqrt(2),20,30*16,120*16);
+
+	pa.end();
+	ui.cbLineType->setItemIcon(8, pm);
+	ui.cbLineType->setItemIcon(9, pm);
+	ui.cbLineType->setItemIcon(10, pm);
+	ui.cbLineType->setItemIcon(11, pm);
+
+	GuiTools::updatePenStyles(ui.cbLineStyle, Qt::black);
+
+	//Drop lines
+	ui.cbDropLineType->addItem(i18n("no drop lines"));
+	ui.cbDropLineType->addItem(i18n("drop lines, X"));
+	ui.cbDropLineType->addItem(i18n("drop lines, Y"));
+	ui.cbDropLineType->addItem(i18n("drop lines, XY"));
+	ui.cbDropLineType->addItem(i18n("drop lines, X, zero baseline"));
+	ui.cbDropLineType->addItem(i18n("drop lines, X, min baseline"));
+	ui.cbDropLineType->addItem(i18n("drop lines, X, max baseline"));
+	GuiTools::updatePenStyles(ui.cbDropLineStyle, Qt::black);
 
+	//Symbols
+	GuiTools::updatePenStyles(ui.cbSymbolBorderStyle, Qt::black);
+
+	ui.cbSymbolStyle->setIconSize(QSize(iconSize, iconSize));
+	QTransform trafo;
+	trafo.scale(15, 15);
+
+	ui.cbSymbolStyle->addItem(i18n("none"));
+	for (int i=1; i<19; ++i) {
+		Symbol::Style style = (Symbol::Style)i;
+		pm.fill(Qt::transparent);
+		pa.begin(&pm);
+		pa.setRenderHint(QPainter::Antialiasing);
+		pa.translate(iconSize/2,iconSize/2);
+		pa.drawPath(trafo.map(Symbol::pathFromStyle(style)));
+		pa.end();
+        ui.cbSymbolStyle->addItem(QIcon(pm), Symbol::nameFromStyle(style));
+	}
+
+ 	GuiTools::updateBrushStyles(ui.cbSymbolFillingStyle, Qt::black);
+	m_initializing = false;
+
+	//Values
+	ui.cbValuesType->addItem(i18n("no values"));
+	ui.cbValuesType->addItem("x");
+	ui.cbValuesType->addItem("y");
+	ui.cbValuesType->addItem("x, y");
+	ui.cbValuesType->addItem("(x, y)");
+	ui.cbValuesType->addItem(i18n("custom column"));
+
+	ui.cbValuesPosition->addItem(i18n("above"));
+	ui.cbValuesPosition->addItem(i18n("below"));
+	ui.cbValuesPosition->addItem(i18n("left"));
+	ui.cbValuesPosition->addItem(i18n("right"));
+
+	//Filling
+	ui.cbFillingPosition->clear();
+	ui.cbFillingPosition->addItem(i18n("none"));
+	ui.cbFillingPosition->addItem(i18n("above"));
+	ui.cbFillingPosition->addItem(i18n("below"));
+	ui.cbFillingPosition->addItem(i18n("zero baseline"));
+	ui.cbFillingPosition->addItem(i18n("left"));
+	ui.cbFillingPosition->addItem(i18n("right"));
+
+	ui.cbFillingType->clear();
+	ui.cbFillingType->addItem(i18n("color"));
+	ui.cbFillingType->addItem(i18n("image"));
+	ui.cbFillingType->addItem(i18n("pattern"));
+
+	ui.cbFillingColorStyle->clear();
+	ui.cbFillingColorStyle->addItem(i18n("single color"));
+	ui.cbFillingColorStyle->addItem(i18n("horizontal linear gradient"));
+	ui.cbFillingColorStyle->addItem(i18n("vertical linear gradient"));
+	ui.cbFillingColorStyle->addItem(i18n("diagonal linear gradient (start from top \
left)")); +	ui.cbFillingColorStyle->addItem(i18n("diagonal linear gradient (start \
from bottom left)")); +	ui.cbFillingColorStyle->addItem(i18n("radial gradient"));
+
+	ui.cbFillingImageStyle->clear();
+	ui.cbFillingImageStyle->addItem(i18n("scaled and cropped"));
+	ui.cbFillingImageStyle->addItem(i18n("scaled"));
+	ui.cbFillingImageStyle->addItem(i18n("scaled, keep proportions"));
+	ui.cbFillingImageStyle->addItem(i18n("centered"));
+	ui.cbFillingImageStyle->addItem(i18n("tiled"));
+	ui.cbFillingImageStyle->addItem(i18n("center tiled"));
+	GuiTools::updateBrushStyles(ui.cbFillingBrushStyle, Qt::SolidPattern);
+
+	//Error-bars
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.drawLine(3,10,17,10);//vert. line
+	pa.drawLine(10,3,10,17);//hor. line
+	pa.end();
+	ui.cbErrorBarsType->addItem(i18n("bars"));
+	ui.cbErrorBarsType->setItemIcon(0, pm);
+
+	pm.fill(Qt::transparent);
+	pa.begin( &pm );
+	pa.setRenderHint(QPainter::Antialiasing);
+	pa.setBrush(Qt::SolidPattern);
+	pa.drawLine(3,10,17,10); //vert. line
+	pa.drawLine(10,3,10,17); //hor. line
+	pa.drawLine(7,3,13,3); //upper cap
+	pa.drawLine(7,17,13,17); //bottom cap
+	pa.drawLine(3,7,3,13); //left cap
+	pa.drawLine(17,7,17,13); //right cap
+	pa.end();
+	ui.cbErrorBarsType->addItem(i18n("bars with ends"));
+	ui.cbErrorBarsType->setItemIcon(1, pm);
+
+	ui.cbXErrorType->addItem(i18n("no"));
+	ui.cbXErrorType->addItem(i18n("symmetric"));
+	ui.cbXErrorType->addItem(i18n("asymmetric"));
+
+	ui.cbYErrorType->addItem(i18n("no"));
+	ui.cbYErrorType->addItem(i18n("symmetric"));
+	ui.cbYErrorType->addItem(i18n("asymmetric"));
+
+	GuiTools::updatePenStyles(ui.cbErrorBarsStyle, Qt::black);
+}
+void HistogramDock::setModel() {
+	QList<const char*>  list;
+	list<<"Folder"<<"Workbook"<<"Datapicker"<<"DatapickerCurve"<<"Spreadsheet"
+		<<"FileDataSource"<<"Column"<<"Worksheet"<<"CartesianPlot"
+		<<"XYInterpolationCurve"<<"XYFitCurve"<<"XYFourierFilterCurve";
+
+	if (cbXColumn) {
+		cbXColumn->setTopLevelClasses(list);
+		cbYColumn->setTopLevelClasses(list);
+	}
+	cbValuesColumn->setTopLevelClasses(list);
+	cbXErrorMinusColumn->setTopLevelClasses(list);
+	cbXErrorPlusColumn->setTopLevelClasses(list);
+	cbYErrorMinusColumn->setTopLevelClasses(list);
+	cbYErrorPlusColumn->setTopLevelClasses(list);
+
+ 	list.clear();
+	list<<"Column";
+	m_aspectTreeModel->setSelectableAspects(list);
+	if (cbXColumn) {
+		cbXColumn->setSelectableClasses(list);
+		cbYColumn->setSelectableClasses(list);
+	}
+	cbValuesColumn->setSelectableClasses(list);
+	cbXErrorMinusColumn->setSelectableClasses(list);
+	cbXErrorPlusColumn->setSelectableClasses(list);
+	cbYErrorMinusColumn->setSelectableClasses(list);
+	cbYErrorPlusColumn->setSelectableClasses(list);
+
+	if (cbXColumn) {
+		cbXColumn->setModel(m_aspectTreeModel);
+		cbYColumn->setModel(m_aspectTreeModel);
+	}
+	cbValuesColumn->setModel(m_aspectTreeModel);
+	cbXErrorMinusColumn->setModel(m_aspectTreeModel);
+	cbXErrorPlusColumn->setModel(m_aspectTreeModel);
+	cbYErrorMinusColumn->setModel(m_aspectTreeModel);
+	cbYErrorPlusColumn->setModel(m_aspectTreeModel);
 }
 void HistogramDock::setCurves(QList<Histogram*> list){
 	m_initializing=true;
 	m_curvesList=list;
 	m_curve=list.first();
 	Q_ASSERT(m_curve);
-	//m_aspectTreeModel = new AspectTreeModel(m_curve->project());
-	//setModel();
+	m_aspectTreeModel = new AspectTreeModel(m_curve->project());
+	setModel();
 	initGeneralTab();
 	initTabs();
 	m_initializing=false;
@@ -88,8 +538,8 @@ void HistogramDock::initGeneralTab(){
 		uiGeneralTab.lYColumn->setEnabled(true);
 		cbYColumn->setEnabled(true);
 
-		//this->setModelIndexFromColumn(cbXColumn, m_curve->xColumn());
-		//this->setModelIndexFromColumn(cbYColumn, m_curve->yColumn());
+		this->setModelIndexFromColumn(cbXColumn, m_curve->xColumn());
+		this->setModelIndexFromColumn(cbYColumn, m_curve->yColumn());
 
 		uiGeneralTab.leName->setText(m_curve->name());
 		uiGeneralTab.leComment->setText(m_curve->comment());
diff --git a/src/kdefrontend/dockwidgets/HistogramDock.h \
b/src/kdefrontend/dockwidgets/HistogramDock.h index 9e5e84e..0cd94f8 100644
--- a/src/kdefrontend/dockwidgets/HistogramDock.h
+++ b/src/kdefrontend/dockwidgets/HistogramDock.h
@@ -32,7 +32,7 @@
 #include "backend/worksheet/Worksheet.h"
 #include "backend/worksheet/plots/cartesian/Histogram.h"
 #include "ui_histogramdock.h"
-#include "ui_xycurvedockgeneraltab.h"
+#include "ui_histogramdockgeneraltab.h"
 #include <QList>
 #include <KConfig>
 #include <KLocalizedString>
@@ -53,7 +53,7 @@ public:
 	void setCurves(QList<Histogram*>);
 	virtual void setupGeneral();
 private:
-	Ui::XYCurveDockGeneralTab uiGeneralTab;
+	Ui:HistogramDockGeneralTab uiGeneralTab;
 	KUrlCompletion* m_completion;
 	QStringList dateStrings;
 	QStringList timeStrings;
@@ -81,7 +81,7 @@ protected:
 	AspectTreeModel* m_aspectTreeModel;
 
 	void initTabs();
-	//virtual void setModel();
+	virtual void setModel();
 	void setModelIndexFromColumn(TreeViewComboBox*, const AbstractColumn*);
 
 private slots:


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

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