[kde-doc-english] [labplot/frameworks] /: Merge remote-tracking branch 'origin/master' into frameworks-merge
Christian Butcher
chrisb2244 at gmail.com
Mon Dec 14 23:31:02 UTC 2015
Git commit 66bd624dd7a298de8fc50942acd461575780465e by Christian Butcher.
Committed on 14/12/2015 at 04:40.
Pushed by cbutcher into branch 'frameworks'.
Merge remote-tracking branch 'origin/master' into frameworks-merge
M +119 -0 doc/index.docbook
R +15 -0 org.kde.labplot.appdata.xml
M +22 -1 src/CMakeLists.txt
M +9 -9 src/backend/core/AbstractAspect.cpp
M +9 -3 src/backend/core/AbstractPart.cpp
M +9 -0 src/backend/core/Folder.cpp
M +7 -0 src/backend/gsl/ExpressionParser.cpp
M +8 -1 src/backend/gsl/functions.h
M +3 -0 src/backend/spreadsheet/SpreadsheetModel.cpp
M +89 -17 src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
M +8 -1 src/backend/worksheet/plots/cartesian/CartesianPlot.h
M +3 -4 src/backend/worksheet/plots/cartesian/CartesianPlotLegend.cpp
M +10 -119 src/backend/worksheet/plots/cartesian/XYCurve.cpp
M +3 -7 src/backend/worksheet/plots/cartesian/XYCurve.h
M +1 -1 src/backend/worksheet/plots/cartesian/XYEquationCurve.cpp
M +8 -2 src/backend/worksheet/plots/cartesian/XYFitCurve.cpp
M +27 -28 src/commonfrontend/ProjectExplorer.cpp
M +48 -0 src/commonfrontend/spreadsheet/SpreadsheetView.cpp
M +37 -31 src/commonfrontend/worksheet/WorksheetView.cpp
M +69 -0 src/kdefrontend/GuiObserver.cpp
M +100 -13 src/kdefrontend/MainWin.cpp
M +14 -1 src/kdefrontend/MainWin.h
M +1 -1 src/kdefrontend/TemplateHandler.cpp
M +1 -1 src/kdefrontend/TemplateHandler.h
M +5 -11 src/kdefrontend/dockwidgets/AxisDock.cpp
M +1 -1 src/kdefrontend/dockwidgets/AxisDock.h
M +126 -7 src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
M +3 -1 src/kdefrontend/dockwidgets/CartesianPlotDock.h
M +3 -4 src/kdefrontend/dockwidgets/CartesianPlotLegendDock.cpp
M +1 -1 src/kdefrontend/dockwidgets/CartesianPlotLegendDock.h
M +10 -9 src/kdefrontend/dockwidgets/XYCurveDock.cpp
M +2 -1 src/kdefrontend/dockwidgets/XYCurveDock.h
M +1 -1 src/kdefrontend/dockwidgets/XYFitCurveDock.cpp
http://commits.kde.org/labplot/66bd624dd7a298de8fc50942acd461575780465e
diff --cc src/backend/core/AbstractAspect.cpp
index d1b92c3,f32a319..4b8e9b4
--- a/src/backend/core/AbstractAspect.cpp
+++ b/src/backend/core/AbstractAspect.cpp
@@@ -35,16 -37,10 +37,15 @@@
#include "backend/lib/SignallingUndoCommand.h"
#include "backend/lib/PropertyChangeCommand.h"
-#include <KIcon>
+#include <QIcon>
+#include <QMenu>
+#include <QStyle>
+#include <QApplication>
+#include <QXmlStreamWriter>
+
- #include <QIcon>
#include <KAction>
#include <KStandardAction>
-#include <KMenu>
+#include <QMenu>
/**
* \class AbstractAspect
@@@ -310,8 -306,12 +311,12 @@@ QMenu* AbstractAspect::createContextMen
// menu->addAction(KStandardAction::copy(this));
// menu->addAction(KStandardAction::paste(this));
// menu->addSeparator();
- menu->addAction(QIcon::fromTheme("edit-rename"), i18n("Rename"), this, SIGNAL(renameRequested()));
- menu->addAction(QIcon::fromTheme("edit-delete"), i18n("Delete"), this, SLOT(remove()));
+ menu->addAction(QIcon(KIcon("edit-rename")), i18n("Rename"), this, SIGNAL(renameRequested()));
+
+ //don't allow to delete data spreadsheets in the datapicker curves
+ if ( !(dynamic_cast<const Spreadsheet*>(this) && dynamic_cast<const DatapickerCurve*>(this->parentAspect())) )
- menu->addAction(QIcon(KIcon("edit-delete")), i18n("Delete"), this, SLOT(remove()));
++ menu->addAction(QIcon::fromTheme("edit-delete"), i18n("Delete"), this, SLOT(remove()));
+
return menu;
}
diff --cc src/backend/gsl/ExpressionParser.cpp
index a82cd7b,5c42259..0036e52
--- a/src/backend/gsl/ExpressionParser.cpp
+++ b/src/backend/gsl/ExpressionParser.cpp
@@@ -1140,7 -1140,7 +1140,8 @@@ bool ExpressionParser::evaluateCartesia
return false;
(*xVector)[i] = x;
- if (isfinite(y))
+ if (std::isfinite(y))
++ // if (isfinite(y)) // NOTE -> This is the master branch version
(*yVector)[i] = y;
else
(*yVector)[i] = NAN;
@@@ -1169,7 -1169,7 +1170,8 @@@ bool ExpressionParser::evaluateCartesia
return false;
(*xVector)[i] = x;
- if (isfinite(y))
+ if (std::isfinite(y))
++ // if (isfinite(y)) // NOTE -> As above
(*yVector)[i] = y;
else
(*yVector)[i] = NAN;
@@@ -1193,7 -1193,7 +1195,8 @@@ bool ExpressionParser::evaluateCartesia
if(parse_errors()>0)
return false;
- if (isfinite(y))
+ if (std::isfinite(y))
++ // if (isfinite(y)) // NOTE -> As above
(*yVector)[i] = y;
else
(*yVector)[i] = NAN;
@@@ -1240,7 -1240,7 +1243,8 @@@ bool ExpressionParser::evaluateCartesia
if(parse_errors()>0)
return false;
- if (isfinite(y))
+ if (std::isfinite(y))
++ // if (isfinite(y)) // NOTE -> Again
(*yVector)[i] = y;
else
(*yVector)[i] = NAN;
@@@ -1267,7 -1267,7 +1271,8 @@@ bool ExpressionParser::evaluatePolar(co
if(parse_errors()>0)
return false;
- if (isfinite(r)) {
+ if (std::isfinite(r)) {
++ // if (isfinite(r)) { // NOTE -> Some more
(*xVector)[i] = r*cos(phi);
(*yVector)[i] = r*sin(phi);
} else {
@@@ -1299,7 -1299,7 +1304,8 @@@ bool ExpressionParser::evaluateParametr
if(parse_errors()>0)
return false;
- if (isfinite(x))
+ if (std::isfinite(x))
++ // if (isfinite(x)) // NOTE -> Again
(*xVector)[i] = x;
else
(*xVector)[i] = NAN;
@@@ -1308,7 -1308,7 +1314,8 @@@
if(parse_errors()>0)
return false;
- if (isfinite(y))
+ if (std::isfinite(y))
++ // if (isfinite(y)) // NOTE -> Again
(*yVector)[i] = y;
else
(*yVector)[i] = NAN;
diff --cc src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
index c95b4fb,83ca595..ff3b98e
--- a/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
+++ b/src/backend/worksheet/plots/cartesian/CartesianPlot.cpp
@@@ -341,12 -342,13 +342,13 @@@ void CartesianPlot::initDefault(Type ty
void CartesianPlot::initActions(){
//"add new" actions
- addCurveAction = new KAction(KIcon("labplot-xy-curve"), i18n("xy-curve"), this);
- addEquationCurveAction = new KAction(KIcon("labplot-xy-equation-curve"), i18n("xy-curve from a mathematical equation"), this);
- addFitCurveAction = new KAction(KIcon("labplot-xy-fit-curve"), i18n("xy-curve from a fit to data"), this);
- addLegendAction = new KAction(KIcon("text-field"), i18n("legend"), this);
- addHorizontalAxisAction = new KAction(KIcon("labplot-axis-horizontal"), i18n("horizontal axis"), this);
- addVerticalAxisAction = new KAction(KIcon("labplot-axis-vertical"), i18n("vertical axis"), this);
- addCustomPointAction = new KAction(KIcon("labplot-custom-point"), i18n("custom point"), this);
+ addCurveAction = new QAction(QIcon::fromTheme("labplot-xy-curve"), i18n("xy-curve"), this);
+ addEquationCurveAction = new QAction(QIcon::fromTheme("labplot-xy-equation-curve"), i18n("xy-curve from a mathematical equation"), this);
+ addFitCurveAction = new QAction(QIcon::fromTheme("labplot-xy-fit-curve"), i18n("xy-curve from a fit to data"), this);
+ addLegendAction = new QAction(QIcon::fromTheme("text-field"), i18n("legend"), this);
+ addHorizontalAxisAction = new QAction(QIcon::fromTheme("labplot-axis-horizontal"), i18n("horizontal axis"), this);
+ addVerticalAxisAction = new QAction(QIcon::fromTheme("labplot-axis-vertical"), i18n("vertical axis"), this);
++ addCustomPointAction = new QAction(QIcon::fromTheme("labplot-custom-point"), i18n("custom point"), this);
connect(addCurveAction, SIGNAL(triggered()), SLOT(addCurve()));
connect(addEquationCurveAction, SIGNAL(triggered()), SLOT(addEquationCurve()));
@@@ -354,21 -356,22 +356,22 @@@
connect(addLegendAction, SIGNAL(triggered()), SLOT(addLegend()));
connect(addHorizontalAxisAction, SIGNAL(triggered()), SLOT(addHorizontalAxis()));
connect(addVerticalAxisAction, SIGNAL(triggered()), SLOT(addVerticalAxis()));
+ connect(addCustomPointAction, SIGNAL(triggered()), SLOT(addCustomPoint()));
//zoom/navigate actions
- scaleAutoAction = new KAction(KIcon("labplot-auto-scale-all"), i18n("auto scale"), this);
- scaleAutoXAction = new KAction(KIcon("labplot-auto-scale-x"), i18n("auto scale X"), this);
- scaleAutoYAction = new KAction(KIcon("labplot-auto-scale-y"), i18n("auto scale Y"), this);
- zoomInAction = new KAction(KIcon("zoom-in"), i18n("zoom in"), this);
- zoomOutAction = new KAction(KIcon("zoom-out"), i18n("zoom out"), this);
- zoomInXAction = new KAction(KIcon("labplot-zoom-in-x"), i18n("zoom in X"), this);
- zoomOutXAction = new KAction(KIcon("labplot-zoom-out-x"), i18n("zoom out X"), this);
- zoomInYAction = new KAction(KIcon("labplot-zoom-in-y"), i18n("zoom in Y"), this);
- zoomOutYAction = new KAction(KIcon("labplot-zoom-out-y"), i18n("zoom out Y"), this);
- shiftLeftXAction = new KAction(KIcon("labplot-shift-left-x"), i18n("shift left X"), this);
- shiftRightXAction = new KAction(KIcon("labplot-shift-right-x"), i18n("shift right X"), this);
- shiftUpYAction = new KAction(KIcon("labplot-shift-up-y"), i18n("shift up Y"), this);
- shiftDownYAction = new KAction(KIcon("labplot-shift-down-y"), i18n("shift down Y"), this);
+ scaleAutoAction = new QAction(QIcon::fromTheme("labplot-auto-scale-all"), i18n("auto scale"), this);
+ scaleAutoXAction = new QAction(QIcon::fromTheme("labplot-auto-scale-x"), i18n("auto scale X"), this);
+ scaleAutoYAction = new QAction(QIcon::fromTheme("labplot-auto-scale-y"), i18n("auto scale Y"), this);
+ zoomInAction = new QAction(QIcon::fromTheme("zoom-in"), i18n("zoom in"), this);
+ zoomOutAction = new QAction(QIcon::fromTheme("zoom-out"), i18n("zoom out"), this);
+ zoomInXAction = new QAction(QIcon::fromTheme("labplot-zoom-in-x"), i18n("zoom in X"), this);
+ zoomOutXAction = new QAction(QIcon::fromTheme("labplot-zoom-out-x"), i18n("zoom out X"), this);
+ zoomInYAction = new QAction(QIcon::fromTheme("labplot-zoom-in-y"), i18n("zoom in Y"), this);
+ zoomOutYAction = new QAction(QIcon::fromTheme("labplot-zoom-out-y"), i18n("zoom out Y"), this);
+ shiftLeftXAction = new QAction(QIcon::fromTheme("labplot-shift-left-x"), i18n("shift left X"), this);
+ shiftRightXAction = new QAction(QIcon::fromTheme("labplot-shift-right-x"), i18n("shift right X"), this);
+ shiftUpYAction = new QAction(QIcon::fromTheme("labplot-shift-up-y"), i18n("shift up Y"), this);
+ shiftDownYAction = new QAction(QIcon::fromTheme("labplot-shift-down-y"), i18n("shift down Y"), this);
connect(scaleAutoAction, SIGNAL(triggered()), SLOT(scaleAuto()));
connect(scaleAutoXAction, SIGNAL(triggered()), SLOT(scaleAutoX()));
diff --cc src/commonfrontend/spreadsheet/SpreadsheetView.cpp
index 8bb104a,0d898b7..a08b3c7
--- a/src/commonfrontend/spreadsheet/SpreadsheetView.cpp
+++ b/src/commonfrontend/spreadsheet/SpreadsheetView.cpp
@@@ -1029,73 -1028,73 +1029,121 @@@ void SpreadsheetView::fillSelectedCells
}
void SpreadsheetView::fillSelectedCellsWithRandomNumbers(){
+ if (selectedColumnCount() < 1) return;
+ int first = firstSelectedRow();
+ int last = lastSelectedRow();
+ if ( first < 0 ) return;
+
+ WAIT_CURSOR;
+ m_spreadsheet->beginMacro(i18n("%1: fill cells with random values", m_spreadsheet->name()));
+ qsrand(QTime::currentTime().msec());
+ foreach(Column* col_ptr, selectedColumns()) {
+ int col = m_spreadsheet->indexOfChild<Column>(col_ptr);
+ col_ptr->setSuppressDataChangedSignal(true);
+ switch (col_ptr->columnMode()) {
+ case AbstractColumn::Numeric:
+ {
+ QVector<double> results(last-first+1);
+ for (int row=first; row<=last; row++)
+ if (isCellSelected(row, col))
+ results[row-first] = double(qrand())/double(RAND_MAX);
+ else
+ results[row-first] = col_ptr->valueAt(row);
+ col_ptr->replaceValues(first, results);
+ break;
+ }
+ case AbstractColumn::Text:
+ {
+ QStringList results;
+ for (int row=first; row<=last; row++)
+ if (isCellSelected(row, col))
+ results << QString::number(double(qrand())/double(RAND_MAX));
+ else
+ results << col_ptr->textAt(row);
+ col_ptr->replaceTexts(first, results);
+ break;
+ }
+ case AbstractColumn::DateTime:
+ case AbstractColumn::Month:
+ case AbstractColumn::Day:
- {
- QList<QDateTime> results;
- QDate earliestDate(1,1,1);
- QDate latestDate(2999,12,31);
- QTime midnight(0,0,0,0);
- for (int row=first; row<=last; row++)
- if (isCellSelected(row, col))
- results << QDateTime(
- earliestDate.addDays(((double)qrand())*((double)earliestDate.daysTo(latestDate))/((double)RAND_MAX)),
- midnight.addMSecs(((qint64)qrand())*1000*60*60*24/RAND_MAX));
- else
- results << col_ptr->dateTimeAt(row);
- col_ptr->replaceDateTimes(first, results);
- break;
- }
++ break;
+ }
+
+ col_ptr->setSuppressDataChangedSignal(false);
+ col_ptr->setChanged();
+ }
+ m_spreadsheet->endMacro();
+ RESET_CURSOR;
+ }
+
++void SpreadsheetView::fillSelectedCellsWithRandomNumbers(){
+ if (selectedColumnCount() < 1) return;
+ int first = firstSelectedRow();
+ int last = lastSelectedRow();
+ if ( first < 0 ) return;
+
+ WAIT_CURSOR;
+ m_spreadsheet->beginMacro(i18n("%1: fill cells with random values", m_spreadsheet->name()));
+ qsrand(QTime::currentTime().msec());
+ foreach(Column* col_ptr, selectedColumns()) {
+ int col = m_spreadsheet->indexOfChild<Column>(col_ptr);
+ col_ptr->setSuppressDataChangedSignal(true);
+ switch (col_ptr->columnMode()) {
+ case AbstractColumn::Numeric:
+ {
+ QVector<double> results(last-first+1);
+ for (int row=first; row<=last; row++)
+ if (isCellSelected(row, col))
+ results[row-first] = double(qrand())/double(RAND_MAX);
+ else
+ results[row-first] = col_ptr->valueAt(row);
+ col_ptr->replaceValues(first, results);
+ break;
+ }
+ case AbstractColumn::Text:
+ {
+ QStringList results;
+ for (int row=first; row<=last; row++)
+ if (isCellSelected(row, col))
+ results << QString::number(double(qrand())/double(RAND_MAX));
+ else
+ results << col_ptr->textAt(row);
+ col_ptr->replaceTexts(first, results);
+ break;
+ }
+ case AbstractColumn::DateTime:
+ case AbstractColumn::Month:
+ case AbstractColumn::Day:
+ {
+ QList<QDateTime> results;
+ QDate earliestDate(1,1,1);
+ QDate latestDate(2999,12,31);
+ QTime midnight(0,0,0,0);
+ for (int row=first; row<=last; row++)
+ if (isCellSelected(row, col))
+ results << QDateTime(
+ earliestDate.addDays(((double)qrand())*((double)earliestDate.daysTo(latestDate))/((double)RAND_MAX)),
+ midnight.addMSecs(((qint64)qrand())*1000*60*60*24/RAND_MAX));
+ else
+ results << col_ptr->dateTimeAt(row);
+ col_ptr->replaceDateTimes(first, results);
+ break;
+ }
+ }
+
+ col_ptr->setSuppressDataChangedSignal(false);
+ col_ptr->setChanged();
+ }
+ m_spreadsheet->endMacro();
+ RESET_CURSOR;
+}
+
void SpreadsheetView::fillWithRandomValues() {
- if (selectedColumnCount() < 1) return;
- RandomValuesDialog* dlg = new RandomValuesDialog(m_spreadsheet);
- dlg->setAttribute(Qt::WA_DeleteOnClose);
- dlg->setColumns(selectedColumns());
- dlg->exec();
+ if (selectedColumnCount() < 1) return;
+ RandomValuesDialog* dlg = new RandomValuesDialog(m_spreadsheet);
+ dlg->setAttribute(Qt::WA_DeleteOnClose);
+ dlg->setColumns(selectedColumns());
+ dlg->exec();
}
void SpreadsheetView::fillWithEquidistantValues() {
diff --cc src/commonfrontend/worksheet/WorksheetView.cpp
index a06b9e3,ab93198..d2c7086
--- a/src/commonfrontend/worksheet/WorksheetView.cpp
+++ b/src/commonfrontend/worksheet/WorksheetView.cpp
@@@ -490,17 -490,17 +490,17 @@@ void WorksheetView::setScene(QGraphicsS
}
void WorksheetView::drawForeground(QPainter* painter, const QRectF& rect) {
- if (m_mouseMode==ZoomSelectionMode && m_selectionBandIsShown) {
- painter->save();
- const QRectF& selRect = mapToScene(QRect(m_selectionStart, m_selectionEnd).normalized()).boundingRect();
- painter->setPen(QPen(Qt::black, 5/transform().m11()));
- painter->drawRect(selRect);
- painter->setBrush(Qt::blue);
- painter->setOpacity(0.2);
- painter->drawRect(selRect);
- painter->restore();
- }
- QGraphicsView::drawForeground(painter, rect);
+ if (m_mouseMode==ZoomSelectionMode && m_selectionBandIsShown) {
+ painter->save();
+ const QRectF& selRect = mapToScene(QRect(m_selectionStart, m_selectionEnd).normalized()).boundingRect();
- painter->setPen(QPen(Qt::black, 5));
++ painter->setPen(QPen(Qt::black, 5/transform().m11()));
+ painter->drawRect(selRect);
+ painter->setBrush(Qt::blue);
+ painter->setOpacity(0.2);
+ painter->drawRect(selRect);
+ painter->restore();
+ }
+ QGraphicsView::drawForeground(painter, rect);
}
void WorksheetView::drawBackground(QPainter* painter, const QRectF& rect) {
@@@ -676,72 -676,79 +676,78 @@@ void WorksheetView::wheelEvent(QWheelEv
}
void WorksheetView::mousePressEvent(QMouseEvent* event) {
- if (m_mouseMode == ZoomSelectionMode) {
- m_selectionStart = event->pos();
- m_selectionBandIsShown = true;
- }
-
- //prevent the deselection of items when context menu event
- //was triggered (right button click)
- if (event->button() == Qt::RightButton) {
+ //prevent the deselection of items when context menu event
+ //was triggered (right button click)
- if (event->button() != Qt::LeftButton) {
++ if (event->button() == Qt::RightButton) {
event->accept();
return;
}
++
++ if (event->button() == Qt::LeftButton && m_mouseMode == ZoomSelectionMode) {
++ m_selectionStart = event->pos();
++ m_selectionBandIsShown = true;
++ }
- if (event->button() == Qt::LeftButton && m_mouseMode == ZoomSelectionMode) {
- m_selectionStart = event->pos();
- m_selectionBandIsShown = true;
- }
-
- // select the worksheet in the project explorer if the view was clicked
- // and there is no selection currently. We need this for the case when
- // there is a single worksheet in the project and we change from the project-node
- // in the project explorer to the worksheet-node by clicking the view.
- if ( scene()->selectedItems().empty() )
- m_worksheet->setSelectedInView(true);
+ // select the worksheet in the project explorer if the view was clicked
+ // and there is no selection currently. We need this for the case when
+ // there is a single worksheet in the project and we change from the project-node
+ // in the project explorer to the worksheet-node by clicking the view.
+ if ( scene()->selectedItems().empty() )
+ m_worksheet->setSelectedInView(true);
- QGraphicsView::mousePressEvent(event);
+ QGraphicsView::mousePressEvent(event);
}
void WorksheetView::mouseReleaseEvent(QMouseEvent* event) {
- if (m_mouseMode == ZoomSelectionMode) {
- if (event->button() == Qt::LeftButton && m_mouseMode == ZoomSelectionMode) {
- m_selectionBandIsShown = false;
- viewport()->repaint(QRect(m_selectionStart, m_selectionEnd).normalized());
-
- //don't zoom if very small region was selected, avoid occasional/unwanted zooming
- m_selectionEnd = event->pos();
- if ( abs(m_selectionEnd.x()-m_selectionStart.x())>20 && abs(m_selectionEnd.y()-m_selectionStart.y())>20 )
- fitInView(mapToScene(QRect(m_selectionStart, m_selectionEnd).normalized()).boundingRect(), Qt::KeepAspectRatio);
- }
- QGraphicsView::mouseReleaseEvent(event);
++ if (event->button() == Qt::LeftButton && m_mouseMode == ZoomSelectionMode) {
+ m_selectionBandIsShown = false;
+ viewport()->repaint(QRect(m_selectionStart, m_selectionEnd).normalized());
+
+ //don't zoom if very small region was selected, avoid occasional/unwanted zooming
+ m_selectionEnd = event->pos();
+ if ( abs(m_selectionEnd.x()-m_selectionStart.x())>20 && abs(m_selectionEnd.y()-m_selectionStart.y())>20 )
+ fitInView(mapToScene(QRect(m_selectionStart, m_selectionEnd).normalized()).boundingRect(), Qt::KeepAspectRatio);
+ }
+ QGraphicsView::mouseReleaseEvent(event);
}
void WorksheetView::mouseMoveEvent(QMouseEvent* event) {
- if (m_mouseMode == SelectionMode && m_cartesianPlotMouseMode != CartesianPlot::SelectionMode ) {
- //check whether there is a cartesian plot under the cursor
- bool plot = false;
- QGraphicsItem* item = itemAt(event->pos());
- if (item) {
- plot = item->data(0).toInt() == WorksheetElement::NameCartesianPlot;
- if (!plot && item->parentItem())
- plot = item->parentItem()->data(0).toInt() == WorksheetElement::NameCartesianPlot;
- }
-
- //set the cursor appearance according to the current mouse mode for the cartesian plots
- if (plot) {
- if (m_cartesianPlotMouseMode == CartesianPlot::ZoomSelectionMode) {
- setCursor(Qt::CrossCursor);
- } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomXSelectionMode) {
- setCursor(Qt::SizeHorCursor);
- } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomYSelectionMode) {
- setCursor(Qt::SizeVerCursor);
- }
- } else {
- setCursor(Qt::ArrowCursor);
- }
- } else if (m_mouseMode == SelectionMode && m_cartesianPlotMouseMode == CartesianPlot::SelectionMode ) {
- setCursor(Qt::ArrowCursor);
- } else if (m_selectionBandIsShown) {
- QRect rect = QRect(m_selectionStart, m_selectionEnd).normalized();
- m_selectionEnd = event->pos();
- rect = rect.united(QRect(m_selectionStart, m_selectionEnd).normalized());
- int penWidth = 5/transform().m11();
- rect.setX(rect.x()-penWidth);
- rect.setY(rect.y()-penWidth);
- rect.setHeight(rect.height()+2*penWidth);
- rect.setWidth(rect.width()+2*penWidth);
- viewport()->repaint(rect);
- }
-
- QGraphicsView::mouseMoveEvent(event);
+ if (m_mouseMode == SelectionMode && m_cartesianPlotMouseMode != CartesianPlot::SelectionMode ) {
- //check whether there is a cartesian plot under the cursor
- bool plot = false;
- QGraphicsItem* item = itemAt(event->pos());
- if (item) {
- plot = item->data(0).toInt() == WorksheetElement::NameCartesianPlot;
- if (!plot && item->parentItem())
- plot = item->parentItem()->data(0).toInt() == WorksheetElement::NameCartesianPlot;
- }
++ //check whether there is a cartesian plot under the cursor
++ bool plot = false;
++ QGraphicsItem* item = itemAt(event->pos());
++ if (item) {
++ plot = item->data(0).toInt() == WorksheetElement::NameCartesianPlot;
++ if (!plot && item->parentItem())
++ plot = item->parentItem()->data(0).toInt() == WorksheetElement::NameCartesianPlot;
++ }
+
- //set the cursor appearance according to the current mouse mode for the cartesian plots
- if (plot) {
- if (m_cartesianPlotMouseMode == CartesianPlot::ZoomSelectionMode) {
- setCursor(Qt::CrossCursor);
- } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomXSelectionMode) {
- setCursor(Qt::SizeHorCursor);
- } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomYSelectionMode) {
- setCursor(Qt::SizeVerCursor);
++ //set the cursor appearance according to the current mouse mode for the cartesian plots
++ if (plot) {
++ if (m_cartesianPlotMouseMode == CartesianPlot::ZoomSelectionMode) {
++ setCursor(Qt::CrossCursor);
++ } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomXSelectionMode) {
++ setCursor(Qt::SizeHorCursor);
++ } else if (m_cartesianPlotMouseMode == CartesianPlot::ZoomYSelectionMode) {
++ setCursor(Qt::SizeVerCursor);
++ }
++ } else {
++ setCursor(Qt::ArrowCursor);
+ }
- } else {
- setCursor(Qt::ArrowCursor);
- }
+ } else if (m_mouseMode == SelectionMode && m_cartesianPlotMouseMode == CartesianPlot::SelectionMode ) {
- setCursor(Qt::ArrowCursor);
++ setCursor(Qt::ArrowCursor);
+ } else if (m_selectionBandIsShown) {
- m_selectionEnd = event->pos();
- viewport()->repaint(QRect(m_selectionStart, m_selectionEnd).normalized());
++ QRect rect = QRect(m_selectionStart, m_selectionEnd).normalized();
++ m_selectionEnd = event->pos();
++ rect = rect.united(QRect(m_selectionStart, m_selectionEnd).normalized());
++ int penWidth = 5/transform().m11();
++ rect.setX(rect.x()-penWidth);
++ rect.setY(rect.y()-penWidth);
++ rect.setHeight(rect.height()+2*penWidth);
++ rect.setWidth(rect.width()+2*penWidth);
++ viewport()->repaint(rect);
+ }
-
+ QGraphicsView::mouseMoveEvent(event);
}
void WorksheetView::contextMenuEvent(QContextMenuEvent* e) {
diff --cc src/kdefrontend/MainWin.cpp
index 5a06631,f53802b..b58357f
--- a/src/kdefrontend/MainWin.cpp
+++ b/src/kdefrontend/MainWin.cpp
@@@ -212,7 -219,11 +218,11 @@@ void MainWin::initActions()
actionCollection()->addAction("new_workbook", m_newWorkbookAction);
connect(m_newWorkbookAction, SIGNAL(triggered()),SLOT(newWorkbook()));
- m_newDatapickerAction = new KAction(KIcon("color-picker-black"),i18n("Datapicker"),this);
- actionCollection()->addAction("new_datapicker", m_newDatapickerAction);
- connect(m_newDatapickerAction, SIGNAL(triggered()),SLOT(newDatapicker()));
-
- m_newSpreadsheetAction = new KAction(KIcon("labplot-spreadsheet-new"),i18n("Spreadsheet"),this);
++ m_newDatapickerAction = new QAction(QIcon::fromTheme("color-picker-black"), i18n("Datapicker"), this);
++ actionCollection()->addAction("new_datapicker", m_newDatapickerAction);
++ connect(m_newDatapickerAction, SIGNAL(triggered()),SLOT(newDatapicker()));
++
+ m_newSpreadsheetAction = new QAction(QIcon::fromTheme("labplot-spreadsheet-new"),i18n("Spreadsheet"),this);
// m_newSpreadsheetAction->setShortcut(Qt::CTRL+Qt::Key_Equal);
actionCollection()->addAction("new_spreadsheet", m_newSpreadsheetAction);
connect(m_newSpreadsheetAction, SIGNAL(triggered()),SLOT(newSpreadsheet()));
diff --cc src/kdefrontend/MainWin.h
index ea51fca,bfbef00..33e3f1d
--- a/src/kdefrontend/MainWin.h
+++ b/src/kdefrontend/MainWin.h
@@@ -89,54 -95,54 +95,55 @@@ private
Qt::WindowStates m_lastWindowState; //< last window state before switching to full screen mode
KRecentFilesAction* m_recentProjectsAction;
- KAction* m_saveAction;
- KAction* m_saveAsAction;
- KAction* m_printAction;
- KAction* m_printPreviewAction;
- KAction* m_importAction;
- KAction* m_exportAction;
- KAction* m_closeAction;
- KAction* m_newFolderAction;
- KAction* m_newWorkbookAction;
- KAction* m_newSpreadsheetAction;
- KAction* m_newMatrixAction;
- KAction* m_newWorksheetAction;
- KAction* m_newFileDataSourceAction;
- KAction* m_newSqlDataSourceAction;
- KAction* m_newScriptAction;
- KAction* m_newProjectAction;
- KAction* m_historyAction;
- KAction* m_undoAction;
- KAction* m_redoAction;
- KAction* m_tileWindows;
- KAction* m_cascadeWindows;
- KAction* m_newDatapickerAction;
-
+ QAction* m_saveAction;
+ QAction* m_saveAsAction;
+ QAction* m_printAction;
+ QAction* m_printPreviewAction;
+ QAction* m_importAction;
+ QAction* m_exportAction;
+ QAction* m_closeAction;
+ QAction* m_newFolderAction;
+ QAction* m_newWorkbookAction;
+ QAction* m_newSpreadsheetAction;
+ QAction* m_newMatrixAction;
+ QAction* m_newWorksheetAction;
+ QAction* m_newFileDataSourceAction;
+ QAction* m_newSqlDataSourceAction;
+ QAction* m_newScriptAction;
+ QAction* m_newProjectAction;
+ QAction* m_historyAction;
+ QAction* m_undoAction;
+ QAction* m_redoAction;
+ QAction* m_tileWindows;
+ QAction* m_cascadeWindows;
++ QAction* m_newDatapickerAction;
//toggling doch widgets
- KAction* m_toggleProjectExplorerDockAction;
- KAction* m_togglePropertiesDockAction;
+ QAction* m_toggleProjectExplorerDocQAction;
+ QAction* m_togglePropertiesDocQAction;
//worksheet actions
- KAction* worksheetZoomInAction;
- KAction* worksheetZoomOutAction;
- KAction* worksheetZoomOriginAction;
- KAction* worksheetZoomFitPageHeightAction;
- KAction* worksheetZoomFitPageWidthAction;
- KAction* worksheetZoomFitSelectionAction;
-
- KAction* worksheetNavigationModeAction;
- KAction* worksheetZoomModeAction;
- KAction* worksheetSelectionModeAction;
-
- KAction* worksheetVerticalLayoutAction;
- KAction* worksheetHorizontalLayoutAction;
- KAction* worksheetGridLayoutAction;
- KAction* worksheetBreakLayoutAction;
-
- KAction* m_visibilityFolderAction;
- KAction* m_visibilitySubfolderAction;
- KAction* m_visibilityAllAction;
+ QAction* worksheetZoomInAction;
+ QAction* worksheetZoomOutAction;
+ QAction* worksheetZoomOriginAction;
+ QAction* worksheetZoomFitPageHeightAction;
+ QAction* worksheetZoomFitPageWidthAction;
+ QAction* worksheetZoomFitSelectionAction;
+
+ QAction* worksheetNavigationModeAction;
+ QAction* worksheetZoomModeAction;
+ QAction* worksheetSelectionModeAction;
+
+ QAction* worksheetVerticalLayoutAction;
+ QAction* worksheetHorizontalLayoutAction;
+ QAction* worksheetGridLayoutAction;
+ QAction* worksheetBreakLayoutAction;
+
+ QAction* m_visibilityFolderAction;
+ QAction* m_visibilitySubfolderAction;
+ QAction* m_visibilityAllAction;
+ QAction* m_toggleProjectExplorerDockAction;
+ QAction* m_togglePropertiesDockAction;
//Menus
QMenu* m_visibilityMenu;
diff --cc src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
index 1fd04f9,1876ff6..a4e7fd7
--- a/src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
+++ b/src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
@@@ -50,109 -49,109 +50,215 @@@
*/
CartesianPlotDock::CartesianPlotDock(QWidget *parent): QWidget(parent),
++<<<<<<< HEAD
+ m_initializing(false){
+
+ ui.setupUi(this);
+
+ //"Coordinate system"-tab
+ ui.bAddXBreak->setIcon( QIcon::fromTheme("list-add") );
+ ui.bRemoveXBreak->setIcon( QIcon::fromTheme("list-remove") );
+ ui.cbXBreak->addItem("1");
+
+ ui.bAddYBreak->setIcon( QIcon::fromTheme("list-add") );
+ ui.bRemoveYBreak->setIcon( QIcon::fromTheme("list-remove") );
+ ui.cbYBreak->addItem("1");
+
+ //"Background"-tab
+ ui.kleBackgroundFileName->setClearButtonShown(true);
+ ui.bOpen->setIcon( QIcon::fromTheme("document-open") );
+
+ KUrlCompletion *comp = new KUrlCompletion();
+ ui.kleBackgroundFileName->setCompletionObject(comp);
+
+ //"Title"-tab
+ QHBoxLayout* hboxLayout = new QHBoxLayout(ui.tabTitle);
+ labelWidget=new LabelWidget(ui.tabTitle);
+ hboxLayout->addWidget(labelWidget);
+ hboxLayout->setContentsMargins(2,2,2,2);
+ hboxLayout->setSpacing(2);
+
+ //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);
+ }
+
+ //Validators
+ ui.leXBreakStart->setValidator( new QDoubleValidator(ui.leXBreakStart) );
+ ui.leXBreakEnd->setValidator( new QDoubleValidator(ui.leXBreakEnd) );
+ ui.leYBreakStart->setValidator( new QDoubleValidator(ui.leYBreakStart) );
+ ui.leYBreakEnd->setValidator( new QDoubleValidator(ui.leYBreakEnd) );
+
+ //SIGNAL/SLOT
+ //General
+ connect( ui.leName, SIGNAL(returnPressed()), this, SLOT(nameChanged()) );
+ connect( ui.leComment, SIGNAL(returnPressed()), this, SLOT(commentChanged()) );
+ connect( ui.chkVisible, SIGNAL(stateChanged(int)), this, SLOT(visibilityChanged(int)) );
+ connect( ui.sbLeft, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbTop, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbWidth, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbHeight, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+
+ connect( ui.chkAutoScaleX, SIGNAL(stateChanged(int)), this, SLOT(autoScaleXChanged(int)) );
+ connect( ui.kleXMin, SIGNAL(returnPressed()), this, SLOT(xMinChanged()) );
+ connect( ui.kleXMax, SIGNAL(returnPressed()), this, SLOT(xMaxChanged()) );
+ connect( ui.cbXScaling, SIGNAL(currentIndexChanged(int)), this, SLOT(xScaleChanged(int)) );
+
+ connect( ui.chkAutoScaleY, SIGNAL(stateChanged(int)), this, SLOT(autoScaleYChanged(int)) );
+ connect( ui.kleYMin, SIGNAL(returnPressed()), this, SLOT(yMinChanged()) );
+ connect( ui.kleYMax, SIGNAL(returnPressed()), this, SLOT(yMaxChanged()) );
+ connect( ui.cbYScaling, SIGNAL(currentIndexChanged(int)), this, SLOT(yScaleChanged(int)) );
+
+ //Scale breakings
+ connect( ui.chkXBreak, SIGNAL(stateChanged(int)), this, SLOT(toggleXBreak(int)) );
+ connect( ui.bAddXBreak, SIGNAL(clicked()), this, SLOT(addXBreak()) );
+ connect( ui.bRemoveXBreak, SIGNAL(clicked()), this, SLOT(removeXBreak()) );
+ connect( ui.cbXBreak, SIGNAL(currentIndexChanged(int)), this, SLOT(currentXBreakChanged(int)) );
+ connect( ui.leXBreakStart, SIGNAL(returnPressed()), this, SLOT(xBreakStartChanged()) );
+ connect( ui.leXBreakEnd, SIGNAL(returnPressed()), this, SLOT(xBreakEndChanged()) );
+ connect( ui.sbXBreakPosition, SIGNAL(valueChanged(int)), this, SLOT(xBreakPositionChanged(int)) );
+
+ connect( ui.chkYBreak, SIGNAL(stateChanged(int)), this, SLOT(toggleYBreak(int)) );
+ connect( ui.bAddYBreak, SIGNAL(clicked()), this, SLOT(addYBreak()) );
+ connect( ui.bRemoveYBreak, SIGNAL(clicked()), this, SLOT(removeYBreak()) );
+ connect( ui.cbYBreak, SIGNAL(currentIndexChanged(int)), this, SLOT(currentYBreakChanged(int)) );
+ connect( ui.leYBreakStart, SIGNAL(returnPressed()), this, SLOT(yBreakStartChanged()) );
+ connect( ui.leYBreakEnd, SIGNAL(returnPressed()), this, SLOT(yBreakEndChanged()) );
+ connect( ui.sbYBreakPosition, SIGNAL(valueChanged(int)), this, SLOT(yBreakPositionChanged(int)) );
+
+ //Background
+ connect( ui.cbBackgroundType, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundTypeChanged(int)) );
+ connect( ui.cbBackgroundColorStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundColorStyleChanged(int)) );
+ connect( ui.cbBackgroundImageStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundImageStyleChanged(int)) );
+ connect( ui.cbBackgroundBrushStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundBrushStyleChanged(int)) );
+ connect(ui.bOpen, SIGNAL(clicked(bool)), this, SLOT(selectFile()));
+ connect( ui.kleBackgroundFileName, SIGNAL(returnPressed()), this, SLOT(fileNameChanged()) );
+ connect( ui.kleBackgroundFileName, SIGNAL(clearButtonClicked()), this, SLOT(fileNameChanged()) );
+ connect( ui.kcbBackgroundFirstColor, SIGNAL(changed(QColor)), this, SLOT(backgroundFirstColorChanged(QColor)) );
+ connect( ui.kcbBackgroundSecondColor, SIGNAL(changed(QColor)), this, SLOT(backgroundSecondColorChanged(QColor)) );
+ connect( ui.sbBackgroundOpacity, SIGNAL(valueChanged(int)), this, SLOT(backgroundOpacityChanged(int)) );
+
+ //Border
+ connect( ui.cbBorderStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(borderStyleChanged(int)) );
+ connect( ui.kcbBorderColor, SIGNAL(changed(QColor)), this, SLOT(borderColorChanged(QColor)) );
+ connect( ui.sbBorderWidth, SIGNAL(valueChanged(double)), this, SLOT(borderWidthChanged(double)) );
+ connect( ui.sbBorderCornerRadius, SIGNAL(valueChanged(double)), this, SLOT(borderCornerRadiusChanged(double)) );
+ connect( ui.sbBorderOpacity, SIGNAL(valueChanged(int)), this, SLOT(borderOpacityChanged(int)) );
+
+ //Padding
+ connect( ui.sbPaddingHorizontal, SIGNAL(valueChanged(double)), this, SLOT(horizontalPaddingChanged(double)) );
+ connect( ui.sbPaddingVertical, SIGNAL(valueChanged(double)), this, SLOT(verticalPaddingChanged(double)) );
++=======
+ m_initializing(false){
+
+ ui.setupUi(this);
+
+ //"Coordinate system"-tab
+ ui.bAddXBreak->setIcon( KIcon("list-add") );
+ ui.bRemoveXBreak->setIcon( KIcon("list-remove") );
+ ui.cbXBreak->addItem("1");
+
+ ui.bAddYBreak->setIcon( KIcon("list-add") );
+ ui.bRemoveYBreak->setIcon( KIcon("list-remove") );
+ ui.cbYBreak->addItem("1");
+
+ //"Background"-tab
+ ui.kleBackgroundFileName->setClearButtonShown(true);
+ ui.bOpen->setIcon( KIcon("document-open") );
+
+ KUrlCompletion *comp = new KUrlCompletion();
+ ui.kleBackgroundFileName->setCompletionObject(comp);
+
+ //"Title"-tab
+ QHBoxLayout* hboxLayout = new QHBoxLayout(ui.tabTitle);
+ labelWidget=new LabelWidget(ui.tabTitle);
+ hboxLayout->addWidget(labelWidget);
+ hboxLayout->setContentsMargins(2,2,2,2);
+ hboxLayout->setSpacing(2);
+
+ //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);
+ }
+
+ //Validators
+ ui.leXBreakStart->setValidator( new QDoubleValidator(ui.leXBreakStart) );
+ ui.leXBreakEnd->setValidator( new QDoubleValidator(ui.leXBreakEnd) );
+ ui.leYBreakStart->setValidator( new QDoubleValidator(ui.leYBreakStart) );
+ ui.leYBreakEnd->setValidator( new QDoubleValidator(ui.leYBreakEnd) );
+
+ //SIGNAL/SLOT
+ //General
+ connect( ui.leName, SIGNAL(returnPressed()), this, SLOT(nameChanged()) );
+ connect( ui.leComment, SIGNAL(returnPressed()), this, SLOT(commentChanged()) );
+ connect( ui.chkVisible, SIGNAL(clicked(bool)), this, SLOT(visibilityChanged(bool)) );
+ connect( ui.sbLeft, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbTop, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbWidth, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+ connect( ui.sbHeight, SIGNAL(valueChanged(double)), this, SLOT(geometryChanged()) );
+
+ connect( ui.chkAutoScaleX, SIGNAL(stateChanged(int)), this, SLOT(autoScaleXChanged(int)) );
+ connect( ui.kleXMin, SIGNAL(returnPressed()), this, SLOT(xMinChanged()) );
+ connect( ui.kleXMax, SIGNAL(returnPressed()), this, SLOT(xMaxChanged()) );
+ connect( ui.cbXScaling, SIGNAL(currentIndexChanged(int)), this, SLOT(xScaleChanged(int)) );
+
+ connect( ui.chkAutoScaleY, SIGNAL(stateChanged(int)), this, SLOT(autoScaleYChanged(int)) );
+ connect( ui.kleYMin, SIGNAL(returnPressed()), this, SLOT(yMinChanged()) );
+ connect( ui.kleYMax, SIGNAL(returnPressed()), this, SLOT(yMaxChanged()) );
+ connect( ui.cbYScaling, SIGNAL(currentIndexChanged(int)), this, SLOT(yScaleChanged(int)) );
+
+ //Scale breakings
+ connect( ui.chkXBreak, SIGNAL(stateChanged(int)), this, SLOT(toggleXBreak(int)) );
+ connect( ui.bAddXBreak, SIGNAL(clicked()), this, SLOT(addXBreak()) );
+ connect( ui.bRemoveXBreak, SIGNAL(clicked()), this, SLOT(removeXBreak()) );
+ connect( ui.cbXBreak, SIGNAL(currentIndexChanged(int)), this, SLOT(currentXBreakChanged(int)) );
+ connect( ui.leXBreakStart, SIGNAL(returnPressed()), this, SLOT(xBreakStartChanged()) );
+ connect( ui.leXBreakEnd, SIGNAL(returnPressed()), this, SLOT(xBreakEndChanged()) );
+ connect( ui.sbXBreakPosition, SIGNAL(valueChanged(int)), this, SLOT(xBreakPositionChanged(int)) );
+
+ connect( ui.chkYBreak, SIGNAL(stateChanged(int)), this, SLOT(toggleYBreak(int)) );
+ connect( ui.bAddYBreak, SIGNAL(clicked()), this, SLOT(addYBreak()) );
+ connect( ui.bRemoveYBreak, SIGNAL(clicked()), this, SLOT(removeYBreak()) );
+ connect( ui.cbYBreak, SIGNAL(currentIndexChanged(int)), this, SLOT(currentYBreakChanged(int)) );
+ connect( ui.leYBreakStart, SIGNAL(returnPressed()), this, SLOT(yBreakStartChanged()) );
+ connect( ui.leYBreakEnd, SIGNAL(returnPressed()), this, SLOT(yBreakEndChanged()) );
+ connect( ui.sbYBreakPosition, SIGNAL(valueChanged(int)), this, SLOT(yBreakPositionChanged(int)) );
+
+ //Background
+ connect( ui.cbBackgroundType, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundTypeChanged(int)) );
+ connect( ui.cbBackgroundColorStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundColorStyleChanged(int)) );
+ connect( ui.cbBackgroundImageStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundImageStyleChanged(int)) );
+ connect( ui.cbBackgroundBrushStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundBrushStyleChanged(int)) );
+ connect(ui.bOpen, SIGNAL(clicked(bool)), this, SLOT(selectFile()));
+ connect( ui.kleBackgroundFileName, SIGNAL(returnPressed()), this, SLOT(fileNameChanged()) );
+ connect( ui.kleBackgroundFileName, SIGNAL(clearButtonClicked()), this, SLOT(fileNameChanged()) );
+ connect( ui.kcbBackgroundFirstColor, SIGNAL(changed(QColor)), this, SLOT(backgroundFirstColorChanged(QColor)) );
+ connect( ui.kcbBackgroundSecondColor, SIGNAL(changed(QColor)), this, SLOT(backgroundSecondColorChanged(QColor)) );
+ connect( ui.sbBackgroundOpacity, SIGNAL(valueChanged(int)), this, SLOT(backgroundOpacityChanged(int)) );
+
+ //Border
+ connect( ui.cbBorderStyle, SIGNAL(currentIndexChanged(int)), this, SLOT(borderStyleChanged(int)) );
+ connect( ui.kcbBorderColor, SIGNAL(changed(QColor)), this, SLOT(borderColorChanged(QColor)) );
+ connect( ui.sbBorderWidth, SIGNAL(valueChanged(double)), this, SLOT(borderWidthChanged(double)) );
+ connect( ui.sbBorderCornerRadius, SIGNAL(valueChanged(double)), this, SLOT(borderCornerRadiusChanged(double)) );
+ connect( ui.sbBorderOpacity, SIGNAL(valueChanged(int)), this, SLOT(borderOpacityChanged(int)) );
+
+ //Padding
+ connect( ui.sbPaddingHorizontal, SIGNAL(valueChanged(double)), this, SLOT(horizontalPaddingChanged(double)) );
+ connect( ui.sbPaddingVertical, SIGNAL(valueChanged(double)), this, SLOT(verticalPaddingChanged(double)) );
++>>>>>>> origin/master
TemplateHandler* templateHandler = new TemplateHandler(this, TemplateHandler::CartesianPlot);
ui.verticalLayout->addWidget(templateHandler);
@@@ -249,50 -248,52 +355,52 @@@ void CartesianPlotDock::setPlots(QList<
//show the properties of the first plot
this->load();
- //update active widgets
- backgroundTypeChanged(ui.cbBackgroundType->currentIndex());
-
- //Deactivate the geometry related widgets, if the worksheet layout is active.
- //Currently, a plot can only be a child of the worksheet itself, so we only need to ask the parent aspect (=worksheet).
- //TODO redesign this, if the hierarchy will be changend in future (a plot is a child of a new object group/container or so)
- Worksheet* w = dynamic_cast<Worksheet*>(m_plot->parentAspect());
- if (w){
- bool b = (w->layout()==Worksheet::NoLayout);
- ui.sbTop->setEnabled(b);
- ui.sbLeft->setEnabled(b);
- ui.sbWidth->setEnabled(b);
- ui.sbHeight->setEnabled(b);
- connect(w, SIGNAL(layoutChanged(Worksheet::Layout)), this, SLOT(layoutChanged(Worksheet::Layout)));
- }
-
- //SIGNALs/SLOTs
- connect( m_plot, SIGNAL(aspectDescriptionChanged(const AbstractAspect*)), this, SLOT(plotDescriptionChanged(const AbstractAspect*)) );
- connect( m_plot, SIGNAL(rectChanged(QRectF&)), this, SLOT(plotRectChanged(QRectF&)) );
- connect( m_plot, SIGNAL(xAutoScaleChanged(bool)), this, SLOT(plotXAutoScaleChanged(bool)) );
- connect( m_plot, SIGNAL(xMinChanged(float)), this, SLOT(plotXMinChanged(float)) );
- connect( m_plot, SIGNAL(xMaxChanged(float)), this, SLOT(plotXMaxChanged(float)) );
- connect( m_plot, SIGNAL(xScaleChanged(int)), this, SLOT(plotXScaleChanged(int)) );
- connect( m_plot, SIGNAL(yAutoScaleChanged(bool)), this, SLOT(plotYAutoScaleChanged(bool)) );
- connect( m_plot, SIGNAL(yMinChanged(float)), this, SLOT(plotYMinChanged(float)) );
- connect( m_plot, SIGNAL(yMaxChanged(float)), this, SLOT(plotYMaxChanged(float)) );
- connect( m_plot, SIGNAL(yScaleChanged(int)), this, SLOT(plotYScaleChanged(int)) );
- connect( m_plot, SIGNAL(xScaleBreakingsChanged(CartesianPlot::ScaleBreakings)), this, SLOT(plotXScaleBreakingChanged(CartesianPlot::ScaleBreakings)) );
- connect( m_plot, SIGNAL(yScaleBreakingsChanged(CartesianPlot::ScaleBreakings)), this, SLOT(plotYScaleBreakingChanged(CartesianPlot::ScaleBreakings)) );
- connect( m_plot, SIGNAL(visibleChanged(bool)), this, SLOT(plotVisibleChanged(bool)) );
-
- // Plot Area
- connect( m_plot->plotArea(), SIGNAL(backgroundTypeChanged(PlotArea::BackgroundType)), this, SLOT(plotBackgroundTypeChanged(PlotArea::BackgroundType)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundColorStyleChanged(PlotArea::BackgroundColorStyle)), this, SLOT(plotBackgroundColorStyleChanged(PlotArea::BackgroundColorStyle)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundImageStyleChanged(PlotArea::BackgroundImageStyle)), this, SLOT(plotBackgroundImageStyleChanged(PlotArea::BackgroundImageStyle)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundBrushStyleChanged(Qt::BrushStyle)), this, SLOT(plotBackgroundBrushStyleChanged(Qt::BrushStyle)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundFirstColorChanged(QColor&)), this, SLOT(plotBackgroundFirstColorChanged(QColor&)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundSecondColorChanged(QColor&)), this, SLOT(plotBackgroundSecondColorChanged(QColor&)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundFileNameChanged(QString&)), this, SLOT(plotBackgroundFileNameChanged(QString&)) );
- connect( m_plot->plotArea(), SIGNAL(backgroundOpacityChanged(float)), this, SLOT(plotBackgroundOpacityChanged(float)) );
- connect( m_plot->plotArea(), SIGNAL(borderPenChanged(QPen&)), this, SLOT(plotBorderPenChanged(QPen&)) );
- connect( m_plot->plotArea(), SIGNAL(borderOpacityChanged(float)), this, SLOT(plotBorderOpacityChanged(float)) );
- connect( m_plot, SIGNAL(horizontalPaddingChanged(float)), this, SLOT(plotHorizontalPaddingChanged(float)) );
- connect( m_plot, SIGNAL(verticalPaddingChanged(float)), this, SLOT(plotVerticalPaddingChanged(float)) );
-
- m_initializing = false;
+ //update active widgets
+ backgroundTypeChanged(ui.cbBackgroundType->currentIndex());
+
+ //Deactivate the geometry related widgets, if the worksheet layout is active.
+ //Currently, a plot can only be a child of the worksheet itself, so we only need to ask the parent aspect (=worksheet).
+ //TODO redesign this, if the hierarchy will be changend in future (a plot is a child of a new object group/container or so)
+ Worksheet* w = dynamic_cast<Worksheet*>(m_plot->parentAspect());
+ if (w){
+ bool b = (w->layout()==Worksheet::NoLayout);
+ ui.sbTop->setEnabled(b);
+ ui.sbLeft->setEnabled(b);
+ ui.sbWidth->setEnabled(b);
+ ui.sbHeight->setEnabled(b);
+ connect(w, SIGNAL(layoutChanged(Worksheet::Layout)), this, SLOT(layoutChanged(Worksheet::Layout)));
+ }
+
+ //SIGNALs/SLOTs
+ connect( m_plot, SIGNAL(aspectDescriptionChanged(const AbstractAspect*)), this, SLOT(plotDescriptionChanged(const AbstractAspect*)) );
+ connect( m_plot, SIGNAL(rectChanged(QRectF&)), this, SLOT(plotRectChanged(QRectF&)) );
+ connect( m_plot, SIGNAL(xMinChanged(float)), this, SLOT(plotXMinChanged(float)) );
+ connect( m_plot, SIGNAL(xMaxChanged(float)), this, SLOT(plotXMaxChanged(float)) );
+ connect( m_plot, SIGNAL(xScaleChanged(int)), this, SLOT(plotXScaleChanged(int)) );
++ connect( m_plot, SIGNAL(xAutoScaleChanged(bool)), this, SLOT(plotXAutoScaleChanged(bool)) );
+ connect( m_plot, SIGNAL(yMinChanged(float)), this, SLOT(plotYMinChanged(float)) );
+ connect( m_plot, SIGNAL(yMaxChanged(float)), this, SLOT(plotYMaxChanged(float)) );
+ connect( m_plot, SIGNAL(yScaleChanged(int)), this, SLOT(plotYScaleChanged(int)) );
++ connect( m_plot, SIGNAL(yAutoScaleChanged(bool)), this, SLOT(plotYAutoScaleChanged(bool)) );
+ connect( m_plot, SIGNAL(xScaleBreakingsChanged(CartesianPlot::ScaleBreakings)), this, SLOT(plotXScaleBreakingChanged(CartesianPlot::ScaleBreakings)) );
+ connect( m_plot, SIGNAL(yScaleBreakingsChanged(CartesianPlot::ScaleBreakings)), this, SLOT(plotYScaleBreakingChanged(CartesianPlot::ScaleBreakings)) );
+ connect( m_plot, SIGNAL(visibleChanged(bool)), this, SLOT(plotVisibleChanged(bool)) );
+
+ // Plot Area
+ connect( m_plot->plotArea(), SIGNAL(backgroundTypeChanged(PlotArea::BackgroundType)), this, SLOT(plotBackgroundTypeChanged(PlotArea::BackgroundType)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundColorStyleChanged(PlotArea::BackgroundColorStyle)), this, SLOT(plotBackgroundColorStyleChanged(PlotArea::BackgroundColorStyle)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundImageStyleChanged(PlotArea::BackgroundImageStyle)), this, SLOT(plotBackgroundImageStyleChanged(PlotArea::BackgroundImageStyle)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundBrushStyleChanged(Qt::BrushStyle)), this, SLOT(plotBackgroundBrushStyleChanged(Qt::BrushStyle)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundFirstColorChanged(QColor&)), this, SLOT(plotBackgroundFirstColorChanged(QColor&)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundSecondColorChanged(QColor&)), this, SLOT(plotBackgroundSecondColorChanged(QColor&)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundFileNameChanged(QString&)), this, SLOT(plotBackgroundFileNameChanged(QString&)) );
+ connect( m_plot->plotArea(), SIGNAL(backgroundOpacityChanged(float)), this, SLOT(plotBackgroundOpacityChanged(float)) );
+ connect( m_plot->plotArea(), SIGNAL(borderPenChanged(QPen&)), this, SLOT(plotBorderPenChanged(QPen&)) );
+ connect( m_plot->plotArea(), SIGNAL(borderOpacityChanged(float)), this, SLOT(plotBorderOpacityChanged(float)) );
+ connect( m_plot, SIGNAL(horizontalPaddingChanged(float)), this, SLOT(plotHorizontalPaddingChanged(float)) );
+ connect( m_plot, SIGNAL(verticalPaddingChanged(float)), this, SLOT(plotVerticalPaddingChanged(float)) );
+
+ m_initializing = false;
}
void CartesianPlotDock::activateTitleTab(){
@@@ -365,14 -366,12 +473,12 @@@ void CartesianPlotDock::commentChanged(
m_plot->setComment(ui.leComment->text());
}
- void CartesianPlotDock::visibilityChanged(int state){
- if (m_initializing)
- return;
+ void CartesianPlotDock::visibilityChanged(bool state){
- if (m_initializing)
- return;
++ if (m_initializing)
++ return;
- bool b = (state==Qt::Checked);
- foreach(CartesianPlot* plot, m_plotList){
- plot->setVisible(b);
- }
- foreach(CartesianPlot* plot, m_plotList)
- plot->setVisible(state);
++ foreach(CartesianPlot* plot, m_plotList)
++ plot->setVisible(state);
}
void CartesianPlotDock::geometryChanged(){
@@@ -872,18 -871,24 +978,24 @@@ void CartesianPlotDock::plotDescription
}
void CartesianPlotDock::plotRectChanged(QRectF& rect){
- m_initializing = true;
- ui.sbLeft->setValue(Worksheet::convertFromSceneUnits(rect.x(), Worksheet::Centimeter));
- ui.sbTop->setValue(Worksheet::convertFromSceneUnits(rect.y(), Worksheet::Centimeter));
- ui.sbWidth->setValue(Worksheet::convertFromSceneUnits(rect.width(), Worksheet::Centimeter));
- ui.sbHeight->setValue(Worksheet::convertFromSceneUnits(rect.height(), Worksheet::Centimeter));
- m_initializing = false;
+ m_initializing = true;
+ ui.sbLeft->setValue(Worksheet::convertFromSceneUnits(rect.x(), Worksheet::Centimeter));
+ ui.sbTop->setValue(Worksheet::convertFromSceneUnits(rect.y(), Worksheet::Centimeter));
+ ui.sbWidth->setValue(Worksheet::convertFromSceneUnits(rect.width(), Worksheet::Centimeter));
+ ui.sbHeight->setValue(Worksheet::convertFromSceneUnits(rect.height(), Worksheet::Centimeter));
+ m_initializing = false;
}
+ void CartesianPlotDock::plotXAutoScaleChanged(bool value) {
+ m_initializing = true;
+ ui.chkAutoScaleX->setChecked(value);
+ m_initializing = false;
+ }
+
void CartesianPlotDock::plotXMinChanged(float value){
- m_initializing = true;
- ui.kleXMin->setText( QString::number(value) );
- m_initializing = false;
+ m_initializing = true;
+ ui.kleXMin->setText( QString::number(value) );
+ m_initializing = false;
}
void CartesianPlotDock::plotXMaxChanged(float value){
@@@ -893,15 -898,22 +1005,22 @@@
}
void CartesianPlotDock::plotXScaleChanged(int scale){
- m_initializing = true;
- ui.cbXScaling->setCurrentIndex( scale );
- m_initializing = false;
+ m_initializing = true;
+ ui.cbXScaling->setCurrentIndex( scale );
+ m_initializing = false;
}
+
+ void CartesianPlotDock::plotYAutoScaleChanged(bool value) {
+ m_initializing = true;
+ ui.chkAutoScaleY->setChecked(value);
+ m_initializing = false;
+ }
+
void CartesianPlotDock::plotYMinChanged(float value){
- m_initializing = true;
- ui.kleYMin->setText( QString::number(value) );
- m_initializing = false;
+ m_initializing = true;
+ ui.kleYMin->setText( QString::number(value) );
+ m_initializing = false;
}
void CartesianPlotDock::plotYMaxChanged(float value){
diff --cc src/kdefrontend/dockwidgets/XYCurveDock.cpp
index a9d3c7a,c402798..16fb3cd
--- a/src/kdefrontend/dockwidgets/XYCurveDock.cpp
+++ b/src/kdefrontend/dockwidgets/XYCurveDock.cpp
@@@ -392,9 -390,9 +392,10 @@@ void XYCurveDock::init()
pa.begin(&pm);
pa.setRenderHint(QPainter::Antialiasing);
pa.translate(iconSize/2,iconSize/2);
- pa.drawPath(trafo.map(XYCurve::symbolsPathFromStyle(style)));
+ pa.drawPath(trafo.map(Symbol::pathFromStyle(style)));
pa.end();
- ui.cbSymbolStyle->addItem(QIcon(pm), XYCurve::symbolsNameFromStyle(style));
- ui.cbSymbolStyle->addItem(QIcon(pm), Symbol::nameFromStyle(style));
++ ui.cbSymbolStyle->addItem(QIcon(pm), XYCurve::symbolsNameFromStyle(style));
++ //ui.cbSymbolStyle->addItem(QIcon(pm), Symbol::nameFromStyle(style)); // Origin/master version
}
GuiTools::updateBrushStyles(ui.cbSymbolFillingStyle, Qt::black);
More information about the kde-doc-english
mailing list