[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot/frameworks] /: Merge remote-tracking branch 'origin/master' into frameworks-merge
From: Christian Butcher <chrisb2244 () gmail ! com>
Date: 2015-12-14 23:31:02
Message-ID: E1a8ca6-0003sg-GB () scm ! kde ! org
[Download RAW message or body]
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);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic