[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