[kde-doc-english] [labplot/integrate-cantor] /: Merge branch 'frameworks' into integrate-cantor
Alexander Semke
alexander.semke at web.de
Sun Mar 27 08:43:46 UTC 2016
Git commit 8c599c296292edd5d91d50cb5651fcbe30a44ceb by Alexander Semke.
Committed on 27/03/2016 at 07:59.
Pushed by asemke into branch 'integrate-cantor'.
Merge branch 'frameworks' into integrate-cantor
M +1 -1 CMakeLists.txt
M +235 -19 doc/index.docbook
M +21 -1 src/CMakeLists.txt
M +11 -11 src/backend/core/AbstractAspect.cpp
M +12 -6 src/backend/core/AspectTreeModel.cpp
M +9 -0 src/backend/core/Folder.cpp
M +15 -1 src/backend/core/Project.cpp
M +4 -3 src/backend/core/column/Column.cpp
M +1 -1 src/backend/core/column/Column.h
M +8 -1 src/backend/gsl/functions.h
M +4 -0 src/backend/spreadsheet/Spreadsheet.h
M +1 -1 src/backend/worksheet/TextLabel.cpp
M +4 -0 src/backend/worksheet/Worksheet.h
M +1 -1 src/backend/worksheet/plots/cartesian/Axis.h
M +8 -1 src/backend/worksheet/plots/cartesian/CartesianPlot.h
M +1 -1 src/backend/worksheet/plots/cartesian/CartesianPlotLegend.h
M +5 -9 src/backend/worksheet/plots/cartesian/XYCurve.h
M +236 -234 src/commonfrontend/spreadsheet/SpreadsheetView.cpp
M +329 -288 src/commonfrontend/worksheet/WorksheetView.cpp
M +79 -27 src/kdefrontend/GuiObserver.cpp
M +3 -0 src/kdefrontend/GuiTools.cpp
M +22 -22 src/kdefrontend/LabPlot.cpp
M +251 -284 src/kdefrontend/MainWin.cpp
M +23 -5 src/kdefrontend/MainWin.h
M +20 -25 src/kdefrontend/SettingsDialog.cpp
M +1 -1 src/kdefrontend/TemplateHandler.cpp
M +47 -45 src/kdefrontend/datasources/ImportFileWidget.cpp
M +98 -70 src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
M +29 -11 src/kdefrontend/dockwidgets/CartesianPlotLegendDock.cpp
M +16 -5 src/kdefrontend/dockwidgets/WorksheetDock.cpp
M +26 -12 src/kdefrontend/dockwidgets/XYCurveDock.cpp
M +11 -6 src/kdefrontend/dockwidgets/XYEquationCurveDock.cpp
M +34 -23 src/kdefrontend/dockwidgets/XYFitCurveDock.cpp
M +7 -0 src/kdefrontend/labplot2ui.rc
M +19 -14 src/kdefrontend/spreadsheet/ExportSpreadsheetDialog.cpp
M +4 -2 src/kdefrontend/spreadsheet/FunctionValuesDialog.cpp
M +1 -1 src/kdefrontend/widgets/FitOptionsWidget.cpp
M +1 -1 src/kdefrontend/widgets/FitParametersWidget.cpp
M +1 -1 src/kdefrontend/widgets/LabelWidget.cpp
http://commits.kde.org/labplot/8c599c296292edd5d91d50cb5651fcbe30a44ceb
diff --cc doc/index.docbook
index 418297b,0fcecbe..3690583
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@@ -97,10 -90,7 +97,11 @@@ Features
<listitem><para>Definition of mathematical formulas is supported by syntax-highlighting and completion and by the list of thematicaly grouped mathematical and physical constants and functions</para></listitem>
<listitem><para>Analysis of plotted data is supported by many zooming and navigation features</para></listitem>
<listitem><para>Linear and non-linear fits to data, several fit-models are predefined and custom models with arbitrary number of parameters can be provided</para></listitem>
+<listitem><para>Supports many CAS backends like Maxima, Python, KAlgebra, Sage</para></listitem>
+<listitem><para>Nice Worksheet view for evaluating expressions</para></listitem>
+<listitem><para>Easy plugin based structure to add different Backends</para></listitem>
+<listitem><para>Plugin based assistant dialogs for common tasks (like integrating a function or entering a matrix)</para></listitem>
+ <listitem><para>Datapicker for manual or (semi-)automatic data extraction from imported images containing plots and curves.</para></listitem>
</itemizedlist>
</para>
@@@ -708,11 -677,11 +840,16 @@@ The menu is only available when a sprea
</para>
</sect1>
+<sect1 id="CASworksheet-menu">
+<title>The CAS Worksheet Menu</title>
+<para>
+This menu contains all the items that can also be found in the context menu (right mouse) of a CAS worksheet.
+The menu is only available when a worksheet object is selected on the <guilabel>Project Explorer</guilabel> panel.
+ <sect1 id="datapicker-menu">
+ <title>The Datapicker Menu</title>
+ <para>
+ This menu contains all the items that can also be found in the context menu (right mouse) of a datapicker.
+ The menu is only available when a datapicker object is selected on the <guilabel>Project Explorer</guilabel> panel.
</para>
</sect1>
diff --cc src/CMakeLists.txt
index e243acb,acf03a2..b403705
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@@ -167,22 -182,11 +183,25 @@@ set(COMMONFRONTEND_SOURCE
${COMMONFRONTEND_DIR}/ProjectExplorer.cpp
${COMMONFRONTEND_DIR}/core/PartMdiView.cpp
${COMMONFRONTEND_DIR}/widgets/TreeViewComboBox.cpp
+ ${COMMONFRONTEND_DIR}/widgets/qxtspanslider.cpp
+ ${COMMONFRONTEND_DIR}/datapicker/DatapickerView.cpp
+ ${COMMONFRONTEND_DIR}/datapicker/DatapickerImageView.cpp
)
+IF (${CANTOR_LIBS_FOUND})
+ set(CANTOR_SOURCES
+ ${KDEFRONTEND_DIR}/ui/dockwidgets/cantorworksheetdock.ui
+ ${KDEFRONTEND_DIR}/dockwidgets/CantorWorksheetDock.cpp
+ ${BACKEND_DIR}/cantorWorksheet/VariableParser.cpp
+ ${BACKEND_DIR}/cantorWorksheet/CantorWorksheet.cpp
+ ${COMMONFRONTEND_DIR}/cantorWorksheet/CantorWorksheetView.cpp
+ )
+ELSE (${CANTOR_LIBS_FOUND})
+ set(CANTOR_SOURCES "")
+ENDIF (${CANTOR_LIBS_FOUND})
+
+MESSAGE (STATUS "Here it is ${CANTOR_SOURCES}")
+
set(TOOLS_SOURCES
${TOOLS_DIR}/TeXRenderer.cpp
${TOOLS_DIR}/EquationHighlighter.cpp
diff --cc src/commonfrontend/worksheet/WorksheetView.cpp
index e9db77f,5751fa1..41f920e
--- a/src/commonfrontend/worksheet/WorksheetView.cpp
+++ b/src/commonfrontend/worksheet/WorksheetView.cpp
@@@ -368,8 -386,10 +386,8 @@@ void WorksheetView::initMenus()
m_cartesianPlotAddNewMenu->addSeparator();
m_cartesianPlotAddNewMenu->addAction(addHorizontalAxisAction);
m_cartesianPlotAddNewMenu->addAction(addVerticalAxisAction);
- m_cartesianPlotAddNewMenu->addSeparator();
- m_cartesianPlotAddNewMenu->addAction(addCustomPointAction);
- m_cartesianPlotZoomMenu = new QMenu(i18n("Zoom/Navigate"));
+ m_cartesianPlotZoomMenu = new QMenu(i18n("Zoom/Navigate"), this);
m_cartesianPlotZoomMenu->setIcon(QIcon::fromTheme("zoom-draw"));
m_cartesianPlotZoomMenu->addAction(scaleAutoAction);
m_cartesianPlotZoomMenu->addAction(scaleAutoXAction);
diff --cc src/kdefrontend/GuiObserver.cpp
index 6d1ec04,4ea5a4c..a40003e
--- a/src/kdefrontend/GuiObserver.cpp
+++ b/src/kdefrontend/GuiObserver.cpp
@@@ -36,9 -36,12 +36,13 @@@
#include "backend/worksheet/plots/cartesian/CartesianPlotLegend.h"
#include "backend/worksheet/plots/cartesian/XYCurve.h"
#include "backend/worksheet/plots/cartesian/Axis.h"
+ #include "backend/worksheet/plots/cartesian/CustomPoint.h"
#include "backend/worksheet/TextLabel.h"
+#include "backend/cantorWorksheet/CantorWorksheet.h"
#include "backend/core/Project.h"
+ #include "backend/datapicker/Datapicker.h"
+ #include "backend/datapicker/DatapickerImage.h"
+ #include "backend/datapicker/DatapickerCurve.h"
#include "commonfrontend/ProjectExplorer.h"
#include "kdefrontend/MainWin.h"
#include "kdefrontend/dockwidgets/AxisDock.h"
@@@ -51,9 -54,11 +55,12 @@@
#include "kdefrontend/dockwidgets/XYCurveDock.h"
#include "kdefrontend/dockwidgets/XYEquationCurveDock.h"
#include "kdefrontend/dockwidgets/XYFitCurveDock.h"
+ #include "kdefrontend/dockwidgets/CustomPointDock.h"
#include "kdefrontend/dockwidgets/WorksheetDock.h"
+#include "kdefrontend/dockwidgets/CantorWorksheetDock.h"
#include "kdefrontend/widgets/LabelWidget.h"
+ #include "kdefrontend/widgets/DatapickerImageWidget.h"
+ #include "kdefrontend/widgets/DatapickerCurveWidget.h"
#include <kstatusbar.h>
@@@ -93,244 -113,253 +100,289 @@@ void GuiObserver::selectedAspectsChange
mainWindow->m_propertiesDock->setWindowTitle(i18n("Properties"));
return;
- }
- prevClassName = className;
- }
-
- if (mainWindow->stackedWidget->currentWidget())
- mainWindow->stackedWidget->currentWidget()->show();
-
- if (className=="Spreadsheet"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Spreadsheet properties"));
-
- if (!mainWindow->spreadsheetDock){
- mainWindow->spreadsheetDock = new SpreadsheetDock(mainWindow->stackedWidget);
- connect(mainWindow->spreadsheetDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->spreadsheetDock);
- }
-
- QList<Spreadsheet*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<Spreadsheet *>(aspect);
- }
- mainWindow->spreadsheetDock->setSpreadsheets(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->spreadsheetDock);
- }else if (className=="Column"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Column properties"));
-
- if (!mainWindow->columnDock){
- mainWindow->columnDock = new ColumnDock(mainWindow->stackedWidget);
- connect(mainWindow->columnDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->columnDock);
- }
-
- QList<Column*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<Column *>(aspect);
}
- mainWindow->columnDock->setColumns(list);
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->columnDock);
- }else if (className=="Matrix"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Matrix properties"));
+ AbstractAspect* aspect=0;
+ QString prevClassName, className;
- if (!mainWindow->matrixDock){
- mainWindow->matrixDock = new MatrixDock(mainWindow->stackedWidget);
- connect(mainWindow->matrixDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->matrixDock);
- }
-
- QList<Matrix*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<Matrix*>(aspect);
- }
- mainWindow->matrixDock->setMatrices(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->matrixDock);
- }else if (className=="Worksheet"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Worksheet properties"));
-
- if (!mainWindow->worksheetDock){
- mainWindow->worksheetDock = new WorksheetDock(mainWindow->stackedWidget);
- connect(mainWindow->worksheetDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->worksheetDock);
- }
-
- QList<Worksheet*> list;
+ //check, whether objects of different types where selected
+ //don't show any dock widgets in this case.
foreach(aspect, selectedAspects){
- list<<qobject_cast<Worksheet *>(aspect);
+ className= aspect->metaObject()->className();
+ if ( className != prevClassName && !prevClassName.isEmpty() ){
+ if (mainWindow->stackedWidget->currentWidget())
+ mainWindow->stackedWidget->currentWidget()->hide();
+
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Properties"));
+ return;
+ }
+ prevClassName = className;
}
- mainWindow->worksheetDock->setWorksheets(list);
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->worksheetDock);
- }else if (className=="CartesianPlot"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Cartesian plot properties"));
-
- if (!mainWindow->cartesianPlotDock){
- mainWindow->cartesianPlotDock = new CartesianPlotDock(mainWindow->stackedWidget);
- connect(mainWindow->cartesianPlotDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->cartesianPlotDock);
- }
-
- QList<CartesianPlot*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<CartesianPlot *>(aspect);
- }
- mainWindow->cartesianPlotDock->setPlots(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->cartesianPlotDock);
- }else if (className=="CartesianPlotLegend"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Cartesian plot legend properties"));
-
- if (!mainWindow->cartesianPlotLegendDock){
- mainWindow->cartesianPlotLegendDock = new CartesianPlotLegendDock(mainWindow->stackedWidget);
- connect(mainWindow->cartesianPlotLegendDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->cartesianPlotLegendDock);
- }
-
- QList<CartesianPlotLegend*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<CartesianPlotLegend*>(aspect);
- }
- mainWindow->cartesianPlotLegendDock->setLegends(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->cartesianPlotLegendDock);
- }else if (className=="Axis"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Axis properties"));
-
- if (!mainWindow->axisDock){
- mainWindow->axisDock = new AxisDock(mainWindow->stackedWidget);
- connect(mainWindow->axisDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->axisDock);
- }
-
- QList<Axis*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<Axis *>(aspect);
- }
- mainWindow->axisDock->setAxes(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->axisDock);
- }else if (className=="XYCurve"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-curve properties"));
-
- if (!mainWindow->xyCurveDock){
- mainWindow->xyCurveDock = new XYCurveDock(mainWindow->stackedWidget);
- mainWindow->xyCurveDock->setupGeneral();
- connect(mainWindow->xyCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->xyCurveDock);
- }
-
- QList<XYCurve*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<XYCurve *>(aspect);
- }
- mainWindow->xyCurveDock->setCurves(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyCurveDock);
- }else if (className=="XYEquationCurve"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-equation-curve properties"));
-
- if (!mainWindow->xyEquationCurveDock){
- mainWindow->xyEquationCurveDock = new XYEquationCurveDock(mainWindow->stackedWidget);
- mainWindow->xyEquationCurveDock->setupGeneral();
- connect(mainWindow->xyEquationCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->xyEquationCurveDock);
- }
-
- QList<XYCurve*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<XYCurve *>(aspect);
- }
- mainWindow->xyEquationCurveDock->setCurves(list);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyEquationCurveDock);
+ if (mainWindow->stackedWidget->currentWidget())
+ mainWindow->stackedWidget->currentWidget()->show();
+
+ if (className=="Spreadsheet"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Spreadsheet properties"));
+
+ if (!mainWindow->spreadsheetDock){
+ mainWindow->spreadsheetDock = new SpreadsheetDock(mainWindow->stackedWidget);
+ connect(mainWindow->spreadsheetDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->spreadsheetDock);
+ }
+
+ QList<Spreadsheet*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Spreadsheet *>(aspect);
+ }
+ mainWindow->spreadsheetDock->setSpreadsheets(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->spreadsheetDock);
+ }else if (className=="Column"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Column properties"));
+
+ if (!mainWindow->columnDock){
+ mainWindow->columnDock = new ColumnDock(mainWindow->stackedWidget);
+ connect(mainWindow->columnDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->columnDock);
+ }
+
+ QList<Column*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Column *>(aspect);
+ }
+ mainWindow->columnDock->setColumns(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->columnDock);
+ }else if (className=="Matrix"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Matrix properties"));
+
+ if (!mainWindow->matrixDock){
+ mainWindow->matrixDock = new MatrixDock(mainWindow->stackedWidget);
+ connect(mainWindow->matrixDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->matrixDock);
+ }
+
+ QList<Matrix*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Matrix*>(aspect);
+ }
+ mainWindow->matrixDock->setMatrices(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->matrixDock);
+ }else if (className=="Worksheet"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Worksheet properties"));
+
+ if (!mainWindow->worksheetDock){
+ mainWindow->worksheetDock = new WorksheetDock(mainWindow->stackedWidget);
+ connect(mainWindow->worksheetDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->worksheetDock);
+ }
+
+ QList<Worksheet*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Worksheet *>(aspect);
+ }
+ mainWindow->worksheetDock->setWorksheets(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->worksheetDock);
+ }else if (className=="CartesianPlot"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Cartesian plot properties"));
+
+ if (!mainWindow->cartesianPlotDock){
+ mainWindow->cartesianPlotDock = new CartesianPlotDock(mainWindow->stackedWidget);
+ connect(mainWindow->cartesianPlotDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->cartesianPlotDock);
+ }
+
+ QList<CartesianPlot*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<CartesianPlot *>(aspect);
+ }
+ mainWindow->cartesianPlotDock->setPlots(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->cartesianPlotDock);
+ }else if (className=="CartesianPlotLegend"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Cartesian plot legend properties"));
+
+ if (!mainWindow->cartesianPlotLegendDock){
+ mainWindow->cartesianPlotLegendDock = new CartesianPlotLegendDock(mainWindow->stackedWidget);
+ connect(mainWindow->cartesianPlotLegendDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->cartesianPlotLegendDock);
+ }
+
+ QList<CartesianPlotLegend*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<CartesianPlotLegend*>(aspect);
+ }
+ mainWindow->cartesianPlotLegendDock->setLegends(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->cartesianPlotLegendDock);
+ }else if (className=="Axis"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Axis properties"));
+
+ if (!mainWindow->axisDock){
+ mainWindow->axisDock = new AxisDock(mainWindow->stackedWidget);
+ connect(mainWindow->axisDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->axisDock);
+ }
+
+ QList<Axis*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Axis *>(aspect);
+ }
+ mainWindow->axisDock->setAxes(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->axisDock);
+ }else if (className=="XYCurve"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-curve properties"));
+
+ if (!mainWindow->xyCurveDock){
+ mainWindow->xyCurveDock = new XYCurveDock(mainWindow->stackedWidget);
+ mainWindow->xyCurveDock->setupGeneral();
+ connect(mainWindow->xyCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->xyCurveDock);
+ }
+
+ QList<XYCurve*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<XYCurve *>(aspect);
+ }
+ mainWindow->xyCurveDock->setCurves(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyCurveDock);
+ }else if (className=="XYEquationCurve"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-equation-curve properties"));
+
+ if (!mainWindow->xyEquationCurveDock){
+ mainWindow->xyEquationCurveDock = new XYEquationCurveDock(mainWindow->stackedWidget);
+ mainWindow->xyEquationCurveDock->setupGeneral();
+ connect(mainWindow->xyEquationCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->xyEquationCurveDock);
+ }
+
+ QList<XYCurve*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<XYCurve *>(aspect);
+ }
+ mainWindow->xyEquationCurveDock->setCurves(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyEquationCurveDock);
- }else if (className=="XYFitCurve"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-fit-curve properties"));
-
- if (!mainWindow->xyFitCurveDock){
- mainWindow->xyFitCurveDock = new XYFitCurveDock(mainWindow->stackedWidget);
- mainWindow->xyFitCurveDock->setupGeneral();
- connect(mainWindow->xyFitCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
- mainWindow->stackedWidget->addWidget(mainWindow->xyFitCurveDock);
- }
+ }else if (className=="XYFitCurve"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("xy-fit-curve properties"));
+
+ if (!mainWindow->xyFitCurveDock){
+ mainWindow->xyFitCurveDock = new XYFitCurveDock(mainWindow->stackedWidget);
+ mainWindow->xyFitCurveDock->setupGeneral();
+ connect(mainWindow->xyFitCurveDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->xyFitCurveDock);
+ }
- QList<XYCurve*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<XYCurve*>(aspect);
- }
- mainWindow->xyFitCurveDock->setCurves(list);
+ QList<XYCurve*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<XYCurve*>(aspect);
+ }
+ mainWindow->xyFitCurveDock->setCurves(list);
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyFitCurveDock);
- }else if (className=="TextLabel"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Text label properties"));
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->xyFitCurveDock);
+ }else if (className=="TextLabel"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Text label properties"));
- if (!mainWindow->textLabelDock){
- mainWindow->textLabelDock = new LabelWidget(mainWindow->stackedWidget);
- mainWindow->stackedWidget->addWidget(mainWindow->textLabelDock);
- }
+ if (!mainWindow->textLabelDock){
+ mainWindow->textLabelDock = new LabelWidget(mainWindow->stackedWidget);
+ mainWindow->stackedWidget->addWidget(mainWindow->textLabelDock);
+ }
- QList<TextLabel*> list;
- foreach(aspect, selectedAspects){
- list<<qobject_cast<TextLabel*>(aspect);
- }
- mainWindow->textLabelDock->setLabels(list);
+ QList<TextLabel*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<TextLabel*>(aspect);
+ }
+ mainWindow->textLabelDock->setLabels(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->textLabelDock);
+ }else if (className=="CustomPoint"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Custom point properties"));
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->textLabelDock);
+ if (!mainWindow->customPointDock){
+ mainWindow->customPointDock = new CustomPointDock(mainWindow->stackedWidget);
+ mainWindow->stackedWidget->addWidget(mainWindow->customPointDock);
+ }
+
+ QList<CustomPoint*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<CustomPoint*>(aspect);
+ }
+ mainWindow->customPointDock->setPoints(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->customPointDock);
+ }else if (className=="DatapickerCurve"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("DatapickerCurve properties"));
+
+ if (!mainWindow->datapickerCurveDock){
+ mainWindow->datapickerCurveDock = new DatapickerCurveWidget(mainWindow->stackedWidget);
+ mainWindow->stackedWidget->addWidget(mainWindow->datapickerCurveDock);
+ }
+
+ QList<DatapickerCurve*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<DatapickerCurve*>(aspect);
+ }
+ mainWindow->datapickerCurveDock->setCurves(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->datapickerCurveDock);
+ }else if (className=="Datapicker"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Datapicker properties"));
+
+ if (!mainWindow->datapickerImageDock){
+ mainWindow->datapickerImageDock = new DatapickerImageWidget(mainWindow->stackedWidget);
+ mainWindow->stackedWidget->addWidget(mainWindow->datapickerImageDock);
+ }
+
+ QList<DatapickerImage*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<Datapicker*>(aspect)->image();
+ }
+ mainWindow->datapickerImageDock->setImages(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->datapickerImageDock);
- }else if (className=="Project"){
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Project properties"));
-
- if (!mainWindow->projectDock){
- mainWindow->projectDock = new ProjectDock(mainWindow->stackedWidget);
- mainWindow->stackedWidget->addWidget(mainWindow->projectDock);
+ }else if (className=="Project"){
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Project properties"));
+
+ if (!mainWindow->projectDock){
+ mainWindow->projectDock = new ProjectDock(mainWindow->stackedWidget);
+ mainWindow->stackedWidget->addWidget(mainWindow->projectDock);
+ }
+
+ mainWindow->projectDock->setProject(mainWindow->m_project);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->projectDock);
+ }else if (className=="CantorWorksheet"){
+ #ifdef HAVE_CANTOR_LIBS
+ if (!mainWindow->cantorWorksheetDock){
+ mainWindow->cantorWorksheetDock = new CantorWorksheetDock(mainWindow->stackedWidget);
+ connect(mainWindow->cantorWorksheetDock, SIGNAL(info(QString)), mainWindow->statusBar(), SLOT(showMessage(QString)));
+ mainWindow->stackedWidget->addWidget(mainWindow->cantorWorksheetDock);
+ }
+
+ QList<CantorWorksheet*> list;
+ foreach(aspect, selectedAspects){
+ list<<qobject_cast<CantorWorksheet *>(aspect);
+ }
+ if (list.size()==1){
+ mainWindow->m_propertiesDock->setWindowTitle(list.first()->backendName() + " Properties");
+ } else {
+ mainWindow->m_propertiesDock->setWindowTitle("CAS Properties");
+ }
+ mainWindow->cantorWorksheetDock->setCantorWorksheets(list);
+
+ mainWindow->stackedWidget->setCurrentWidget(mainWindow->cantorWorksheetDock);
+ #endif
+ }else{
+ mainWindow->m_propertiesDock->setWindowTitle(i18n("Properties"));
+ if (mainWindow->stackedWidget->currentWidget())
+ mainWindow->stackedWidget->currentWidget()->hide();
}
- mainWindow->projectDock->setProject(mainWindow->m_project);
-
- mainWindow->stackedWidget->setCurrentWidget(mainWindow->projectDock);
- }else{
- mainWindow->m_propertiesDock->setWindowTitle(i18n("Properties"));
- if (mainWindow->stackedWidget->currentWidget())
- mainWindow->stackedWidget->currentWidget()->hide();
- }
-
}
/*!
diff --cc src/kdefrontend/LabPlot.cpp
index 7cd9147,89dfa69..4115942
--- a/src/kdefrontend/LabPlot.cpp
+++ b/src/kdefrontend/LabPlot.cpp
@@@ -53,14 -51,14 +51,15 @@@ int main (int argc, char *argv[])
aboutData.addAuthor(i18n("Alexander Semke"), i18n("developer"), "alexander.semke at web.de", 0);
aboutData.addAuthor(i18n("Andreas Kainz"), i18n("icon designer"), "kainz.a at gmail.com", 0);
aboutData.addCredit(i18n("Yuri Chornoivan"), i18n("Help on many questions about the KDE-infrastructure and translation related topics"), "yurchor at ukr.net", 0);
+ aboutData.addCredit(i18n("Garvit Khatri"), i18n("Porting LabPlot2 to KF5 and Integration with Cantor"), "garvitdelhi at gmail.com", 0);
KAboutData::setApplicationData(aboutData);
-
QApplication app(argc, argv);
-
+ QCoreApplication::setApplicationVersion(QLatin1String(LVERSION));
QCommandLineParser parser;
- QCommandLineOption nosplashOption("no-splash", i18n( "start in fullscreen mode"));
+ parser.addHelpOption();
+ parser.addVersionOption();
+ QCommandLineOption nosplashOption("no-splash", i18n("disable splash screen"));
parser.addOption(nosplashOption);
parser.addPositionalArgument("+[file]", i18n( "open a project file"));
diff --cc src/kdefrontend/MainWin.cpp
index 0ebf079,fc9d283..a5e95cf
--- a/src/kdefrontend/MainWin.cpp
+++ b/src/kdefrontend/MainWin.cpp
@@@ -37,16 -37,15 +37,17 @@@
#include "backend/matrix/Matrix.h"
#include "backend/worksheet/Worksheet.h"
#include "backend/datasources/FileDataSource.h"
+#include "backend/cantorWorksheet/CantorWorksheet.h"
+ #include "backend/datapicker/Datapicker.h"
#include "commonfrontend/ProjectExplorer.h"
#include "commonfrontend/matrix/MatrixView.h"
#include "commonfrontend/spreadsheet/SpreadsheetView.h"
#include "commonfrontend/worksheet/WorksheetView.h"
+#include "commonfrontend/cantorWorksheet/CantorWorksheetView.h"
+ #include "commonfrontend/datapicker/DatapickerView.h"
+ #include "commonfrontend/datapicker/DatapickerImageView.h"
- #include "kdefrontend/worksheet/ExportWorksheetDialog.h"
- #include "kdefrontend/spreadsheet/ExportSpreadsheetDialog.h"
#include "kdefrontend/datasources/ImportFileDialog.h"
#include "kdefrontend/dockwidgets/ProjectDock.h"
#include "kdefrontend/HistoryDialog.h"
@@@ -58,14 -57,11 +59,12 @@@
#include <QDockWidget>
#include <QStackedWidget>
#include <QUndoStack>
- #include <QPrinter>
- #include <QPrintDialog>
- #include <QPrintPreviewDialog>
#include <QCloseEvent>
#include <QFileDialog>
+ #include <QMimeData>
#include <QElapsedTimer>
#include <QDebug>
+#include <QHash>
#include <KActionCollection>
#include <KFileDialog>
@@@ -77,46 -73,44 +76,51 @@@
#include <KLocalizedString>
#include <KFilterDev>
+#ifdef HAVE_CANTOR_LIBS
+#include <cantor/backend.h>
+#endif
- /*!
- \class MainWin
- \brief Main application window.
+
- \ingroup kdefrontend
- */
+ /*!
+ \class MainWin
+ \brief Main application window.
+
+ \ingroup kdefrontend
+ */
MainWin::MainWin(QWidget *parent, const QString& filename)
: KXmlGuiWindow(parent),
- m_currentSubWindow(0),
- m_project(0),
- m_aspectTreeModel(0),
- m_projectExplorer(0),
- m_projectExplorerDock(0),
- m_propertiesDock(0),
- m_currentAspect(0),
- m_currentFolder(0),
- m_suppressCurrentSubWindowChangedEvent(false),
- m_closing(false),
- m_autoSaveActive(false),
- m_visibilityMenu(0),
- m_newMenu(0),
- axisDock(0),
- cartesianPlotDock(0),
- cartesianPlotLegendDock(0),
- columnDock(0),
- matrixDock(0),
- spreadsheetDock(0),
- projectDock(0),
- xyCurveDock(0),
- xyEquationCurveDock(0),
- xyFitCurveDock(0),
- worksheetDock(0),
+ m_currentSubWindow(0),
+ m_project(0),
+ m_aspectTreeModel(0),
+ m_projectExplorer(0),
+ m_projectExplorerDock(0),
+ m_propertiesDock(0),
+ m_currentAspect(0),
+ m_currentFolder(0),
+ m_suppressCurrentSubWindowChangedEvent(false),
+ m_closing(false),
+ m_autoSaveActive(false),
+ m_visibilityMenu(0),
+ m_newMenu(0),
+ axisDock(0),
+ cartesianPlotDock(0),
+ cartesianPlotLegendDock(0),
+ columnDock(0),
+ matrixDock(0),
+ spreadsheetDock(0),
+ projectDock(0),
+ xyCurveDock(0),
+ xyEquationCurveDock(0),
+ xyFitCurveDock(0),
+ worksheetDock(0),
+ #ifdef HAVE_CANTOR_LIBS
+ cantorWorksheetDock(0),
+ #endif
- textLabelDock(0){
+ textLabelDock(0),
+ customPointDock(0),
+ datapickerImageDock(0),
+ datapickerCurveDock(0),
+ m_guiObserver(0) {
// QTimer::singleShot( 0, this, SLOT(initGUI(filename)) ); //TODO doesn't work anymore
initGUI(filename);
@@@ -357,41 -365,9 +375,42 @@@ void MainWin::initMenus()
m_newMenu->addAction(m_newSpreadsheetAction);
m_newMenu->addAction(m_newMatrixAction);
m_newMenu->addAction(m_newWorksheetAction);
+ m_newMenu->addAction(m_newDatapickerAction);
m_newMenu->addSeparator();
m_newMenu->addAction(m_newFileDataSourceAction);
+ m_newMenu->addSeparator();
+
+ #ifdef HAVE_CANTOR_LIBS
+ //"Adding Cantor backends to menue and context menu"
+ QStringList m_availableBackend = Cantor::Backend::listAvailableBackends();
+ if(m_availableBackend.count() > 0) {
+ m_newCantorWorksheetMenu = new QMenu(i18n("CAS Worksheet"));
+ m_newCantorWorksheetMenu->setIcon(QIcon::fromTheme("archive-insert"));
+ unplugActionList(QLatin1String("backends_list"));
+ QList<QAction*> newBackendActions;
+ foreach (Cantor::Backend* backend, Cantor::Backend::availableBackends()) {
+ if (!backend->isEnabled()) continue;
+ QAction* action = new QAction(QIcon::fromTheme(backend->icon()), backend->name(),this);
+ action->setData(backend->name());
+ newBackendActions << action;
+ m_newCantorWorksheetMenu->addAction(action);
+ }
+
+ connect(m_newCantorWorksheetMenu, SIGNAL(triggered(QAction*)), this, SLOT(newCantorWorksheet(QAction*)));
+ foreach(QAction* a, newBackendActions) {
+ qDebug() << a->data().toString();
+ }
+ plugActionList(QLatin1String("backends_list"), newBackendActions);
+ m_newMenu->addMenu(m_newCantorWorksheetMenu);
+ } else {
+ int choice = KMessageBox::warningContinueCancel(this, i18n("No backend for Cantor is installed."), i18n("Warning"));
+ switch(choice) {
+ case KMessageBox::Cancel:
+ close();
+ break;
+ }
+ }
+ #endif
// m_newMenu->addAction(m_newSqlDataSourceAction);
//menu subwindow visibility policy
@@@ -462,7 -440,7 +483,8 @@@ void MainWin::updateGUIOnProjectChanges
factory->container("worksheet_toolbar", this)->hide();
factory->container("cartesian_plot_toolbar", this)->hide();
factory->container("spreadsheet_toolbar", this)->hide();
+ factory->container("casWorksheet", this)->setEnabled(!b);
+ factory->container("datapicker_toolbar", this)->hide();
}
factory->container("new", this)->setEnabled(!b);
@@@ -500,7 -479,7 +523,8 @@@ void MainWin::updateGUI()
factory->container("worksheet_toolbar", this)->hide();
factory->container("cartesian_plot_toolbar", this)->hide();
factory->container("spreadsheet_toolbar", this)->hide();
+ factory->container("casWorksheet", this)->setEnabled(false);
+ factory->container("datapicker_toolbar", this)->hide();
return;
}
@@@ -595,27 -574,31 +619,46 @@@
QMenu* menu=qobject_cast<QMenu*>(factory->container("matrix", this));
menu->clear();
view->createContextMenu(menu);
- }else{
+ } else {
factory->container("matrix", this)->setEnabled(false);
}
+ #ifdef HAVE_CANTOR_LIBS
+ CantorWorksheet* cantorworksheet = this->activeCantorWorksheet();
+ if(cantorworksheet) {
+ // enable Cantor Worksheet related menues
+ factory->container("casWorksheet", this)->setEnabled(true);
+ CantorWorksheetView* view=qobject_cast<CantorWorksheetView*>(cantorworksheet->view());
+ QMenu* menu=qobject_cast<QMenu*>(factory->container("casWorksheet", this));
+ menu->clear();
+ view->createContextMenu(menu);
+ QToolBar* toolbar=qobject_cast<QToolBar*>(factory->container("cantorworksheet_toolbar", this));
- toolbar->setVisible(true);
- toolbar->clear();
- view->fillToolBar(toolbar);
+ } else {
+ //no cantor worksheet selected -> deactivate cantor worksheet related menus
+ factory->container("casWorksheet", this)->setEnabled(false);
+ }
+ #endif
+
+ const Datapicker* datapicker = this->activeDatapicker();
+ if (datapicker) {
+ factory->container("datapicker", this)->setEnabled(true);
+ //populate datapicker-menu
+ DatapickerView* view=qobject_cast<DatapickerView*>(datapicker->view());
+ QMenu* menu=qobject_cast<QMenu*>(factory->container("datapicker", this));
+ menu->clear();
+ view->createContextMenu(menu);
+
+ //populate spreadsheet-toolbar
+ QToolBar* toolbar=qobject_cast<QToolBar*>(factory->container("datapicker_toolbar", this));
+ if (group.groupList().indexOf("Toolbar datapicker_toolbar")==-1)
+ toolbar->setToolButtonStyle(Qt::ToolButtonFollowStyle);
+
+ toolbar->setVisible(true);
+ toolbar->clear();
+ view->fillToolBar(toolbar);
+ } else {
+ factory->container("datapicker", this)->setEnabled(false);
+ factory->container("datapicker_toolbar", this)->setVisible(false);
+ }
}
/*!
@@@ -1275,10 -1182,10 +1267,10 @@@ void MainWin::handleAspectAboutToBeRemo
}
/*!
- called when the current aspect in the tree of the project explorer was changed.
- Selects the new aspect.
+ called when the current aspect in the tree of the project explorer was changed.
+ Selects the new aspect.
*/
- void MainWin::handleCurrentAspectChanged(AbstractAspect *aspect){
+ void MainWin::handleCurrentAspectChanged(AbstractAspect *aspect) {
if (!aspect)
aspect = m_project; // should never happen, just in case
@@@ -1501,11 -1432,11 +1517,11 @@@ void MainWin::handleSettingsChanges()
/************************************** dialogs ***************************************/
/***************************************************************************************/
/*!
- shows the dialog with the Undo-history.
+ shows the dialog with the Undo-history.
*/
- void MainWin::historyDialog(){
+ void MainWin::historyDialog() {
if (!m_project->undoStack())
- return;
+ return;
HistoryDialog* dialog = new HistoryDialog(this, m_project->undoStack(), m_undoViewEmptyLabel);
int index = m_project->undoStack()->index();
@@@ -1523,10 -1454,10 +1539,10 @@@
}
/*!
- Opens the dialog to import data to the selected workbook, spreadsheet or matrix
+ Opens the dialog to import data to the selected workbook, spreadsheet or matrix
*/
- void MainWin::importFileDialog(){
- m_importFileDialog = new ImportFileDialog(this);
+ void MainWin::importFileDialog(const QString& fileName) {
+ m_importFileDialog = new ImportFileDialog(this, false, fileName);
if ( m_currentAspect->inherits("Spreadsheet") || m_currentAspect->inherits("Matrix") || m_currentAspect->inherits("Workbook") ) {
m_importFileDialog->setCurrentIndex( m_projectExplorer->currentIndex());
@@@ -1545,71 -1476,22 +1561,22 @@@
}
/*!
- opens the dialog for the export of the currently active worksheet, spreadsheet or matrix.
+ opens the dialog for the export of the currently active worksheet, spreadsheet or matrix.
*/
- void MainWin::exportDialog(){
- Worksheet* w=this->activeWorksheet();
- if (w!=0){ //worksheet
- ExportWorksheetDialog* dlg = new ExportWorksheetDialog(this);
- dlg->setFileName(w->name());
- if (dlg->exec()==QDialog::Accepted){
- QString path = dlg->path();
- WorksheetView::ExportFormat format = dlg->exportFormat();
- WorksheetView::ExportArea area = dlg->exportArea();
- bool background = dlg->exportBackground();
- int resolution = dlg->exportResolution();
-
- WorksheetView* view = qobject_cast<WorksheetView*>(w->view());
- WAIT_CURSOR;
- view->exportToFile(path, format, area, background, resolution);
- RESET_CURSOR;
- }
-
- return;
- }
-
-
- Spreadsheet* s = this->activeSpreadsheet();
- if (s) {
- ExportSpreadsheetDialog* dlg = new ExportSpreadsheetDialog(this);
- dlg->setFileName(s->name());
- if (dlg->exec()==QDialog::Accepted){
- QString path = dlg->path();
- const bool exportHeader = dlg->exportHeader();
- QString separator = dlg->separator();
-
- SpreadsheetView* view = qobject_cast<SpreadsheetView*>(s->view());
- WAIT_CURSOR;
- view->exportToFile(path, exportHeader, separator);
- RESET_CURSOR;
- }
-
+ void MainWin::exportDialog() {
+ QMdiSubWindow* win = m_mdiArea->currentSubWindow();
+ if (!win)
return;
- }
-
- Matrix* m = this->activeMatrix();
- if (m) {
- ExportSpreadsheetDialog* dlg = new ExportSpreadsheetDialog(this);
- dlg->setFileName(m->name());
- dlg->setMatrixMode(true);
- if (dlg->exec()==QDialog::Accepted){
- QString path = dlg->path();
- QString separator = dlg->separator();
-
- MatrixView* view = qobject_cast<MatrixView*>(m->view());
- WAIT_CURSOR;
- view->exportToFile(path, separator);
- RESET_CURSOR;
- }
- return;
- }
+ AbstractPart* part = dynamic_cast<PartMdiView*>(win)->part();
+ part->exportView();
+ statusBar()->showMessage(i18n("%1 exported", part->name()));
}
/*!
- adds a new file data source to the current project.
+ adds a new file data source to the current project.
*/
- void MainWin::newFileDataSourceActionTriggered(){
+ void MainWin::newFileDataSourceActionTriggered() {
ImportFileDialog* dlg = new ImportFileDialog(this, true);
if ( dlg->exec() == QDialog::Accepted ) {
FileDataSource* dataSource = new FileDataSource(0, i18n("File data source%1", 1));
@@@ -1620,9 -1502,9 +1587,9 @@@
}
/*!
- adds a new SQL data source to the current project.
+ adds a new SQL data source to the current project.
*/
- void MainWin::newSqlDataSourceActionTriggered(){
+ void MainWin::newSqlDataSourceActionTriggered() {
//TODO
}
diff --cc src/kdefrontend/MainWin.h
index 7d2aaad,2cbcab5..e0a0e30
--- a/src/kdefrontend/MainWin.h
+++ b/src/kdefrontend/MainWin.h
@@@ -55,16 -58,15 +58,20 @@@ class XYFitCurveDock
class WorksheetDock;
class LabelWidget;
class ImportFileDialog;
+ class DatapickerImageWidget;
+ class DatapickerCurveWidget;
+#ifdef HAVE_CANTOR_LIBS
+class CantorWorksheet;
+class CantorWorksheetDock;
+#endif
+
class QDockWidget;
class QStackedWidget;
+ class QDragEnterEvent;
+ class QDropEvent;
- class MainWin : public KXmlGuiWindow{
+ class MainWin : public KXmlGuiWindow {
Q_OBJECT
public:
@@@ -142,14 -145,7 +150,14 @@@ private
QAction* m_visibilityAllAction;
QAction* m_toggleProjectExplorerDockAction;
QAction* m_togglePropertiesDockAction;
+
+ //cantor
+ #ifdef HAVE_CANTOR_LIBS
+ QMenu* m_newCantorWorksheetMenu;
+ CantorWorksheetDock* cantorWorksheetDock;
+ CantorWorksheet* activeCantorWorksheet() const;
+ #endif
-
+
//Menus
QMenu* m_visibilityMenu;
QMenu* m_newMenu;
diff --cc src/kdefrontend/SettingsDialog.cpp
index d245a76,846dd3b..ab944ba
--- a/src/kdefrontend/SettingsDialog.cpp
+++ b/src/kdefrontend/SettingsDialog.cpp
@@@ -98,7 -91,8 +91,9 @@@ void SettingsDialog::onOkButton()
}
}
- void SettingsDialog::onApplyButton(){
+ /*void SettingsDialog::onApplyButton(){
+ qDebug()<<"SettingsDialog::onApplyButton()";
++>>>>>>> frameworks
if (m_changed){
applySettings();
setWindowTitle(i18n("Preferences"));
diff --cc src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
index a81b141,8eefb4d..1bba819
--- a/src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
+++ b/src/kdefrontend/dockwidgets/CartesianPlotDock.cpp
@@@ -161,58 -164,62 +164,62 @@@ CartesianPlotDock::CartesianPlotDock(QW
connect(templateHandler, SIGNAL(saveConfigRequested(KConfig&)), this, SLOT(saveConfigAsTemplate(KConfig&)));
connect(templateHandler, SIGNAL(info(QString)), this, SIGNAL(info(QString)));
- init();
+ init();
- //TODO: activate the tab again once the functionality is implemented
- ui.tabWidget->removeTab(2);
+ //TODO: activate the tab again once the functionality is implemented
+ ui.tabWidget->removeTab(2);
}
+ CartesianPlotDock::~CartesianPlotDock() {
+ delete m_completion;
+ }
+
void CartesianPlotDock::init(){
- this->retranslateUi();
-
- //create icons for the different styles for scale breaking
- QPainter pa;
- pa.setPen( QPen(Qt::SolidPattern, 0) );
- QPixmap pm(20, 20);
- ui.cbXBreakStyle->setIconSize( QSize(20,20) );
- ui.cbYBreakStyle->setIconSize( QSize(20,20) );
-
- //simple
- pm.fill(Qt::transparent);
- pa.begin( &pm );
- pa.setRenderHint(QPainter::Antialiasing);
- pa.setBrush(Qt::SolidPattern);
- pa.drawLine(3,10,8,10);
- pa.drawLine(12,10,17,10);
- pa.end();
- ui.cbXBreakStyle->setItemIcon(0, pm);
- ui.cbYBreakStyle->setItemIcon(0, pm);
-
- //vertical
- pm.fill(Qt::transparent);
- pa.begin( &pm );
- pa.setRenderHint(QPainter::Antialiasing);
- pa.setBrush(Qt::SolidPattern);
- pa.drawLine(3,10,8,10);
- pa.drawLine(12,10,17,10);
- pa.drawLine(8,14,8,6);
- pa.drawLine(12,14,12,6);
- pa.end();
- ui.cbXBreakStyle->setItemIcon(1, pm);
- ui.cbYBreakStyle->setItemIcon(1, pm);
-
- //sloped
- pm.fill(Qt::transparent);
- pa.begin( &pm );
- pa.setRenderHint(QPainter::Antialiasing);
- pa.setBrush(Qt::SolidPattern);
- pa.drawLine(3,10,8,10);
- pa.drawLine(12,10,17,10);
- pa.drawLine(6,14,10,6);
- pa.drawLine(10,14,14,6);
- pa.end();
- ui.cbXBreakStyle->setItemIcon(2, pm);
- ui.cbYBreakStyle->setItemIcon(2, pm);
+ this->retranslateUi();
+
+ //create icons for the different styles for scale breaking
+ QPainter pa;
+ pa.setPen( QPen(Qt::SolidPattern, 0) );
+ QPixmap pm(20, 20);
+ ui.cbXBreakStyle->setIconSize( QSize(20,20) );
+ ui.cbYBreakStyle->setIconSize( QSize(20,20) );
+
+ //simple
+ pm.fill(Qt::transparent);
+ pa.begin( &pm );
+ pa.setRenderHint(QPainter::Antialiasing);
+ pa.setBrush(Qt::SolidPattern);
+ pa.drawLine(3,10,8,10);
+ pa.drawLine(12,10,17,10);
+ pa.end();
+ ui.cbXBreakStyle->setItemIcon(0, pm);
+ ui.cbYBreakStyle->setItemIcon(0, pm);
+
+ //vertical
+ pm.fill(Qt::transparent);
+ pa.begin( &pm );
+ pa.setRenderHint(QPainter::Antialiasing);
+ pa.setBrush(Qt::SolidPattern);
+ pa.drawLine(3,10,8,10);
+ pa.drawLine(12,10,17,10);
+ pa.drawLine(8,14,8,6);
+ pa.drawLine(12,14,12,6);
+ pa.end();
+ ui.cbXBreakStyle->setItemIcon(1, pm);
+ ui.cbYBreakStyle->setItemIcon(1, pm);
+
+ //sloped
+ pm.fill(Qt::transparent);
+ pa.begin( &pm );
+ pa.setRenderHint(QPainter::Antialiasing);
+ pa.setBrush(Qt::SolidPattern);
+ pa.drawLine(3,10,8,10);
+ pa.drawLine(12,10,17,10);
+ pa.drawLine(6,14,10,6);
+ pa.drawLine(10,14,14,6);
+ pa.end();
+ ui.cbXBreakStyle->setItemIcon(2, pm);
+ ui.cbYBreakStyle->setItemIcon(2, pm);
}
void CartesianPlotDock::setPlots(QList<CartesianPlot*> list){
@@@ -234,65 -241,67 +241,67 @@@
ui.lComment->setEnabled(true);
ui.leComment->setEnabled(true);
- ui.leName->setText(m_plot->name());
- ui.leComment->setText(m_plot->comment());
- }else{
- ui.lName->setEnabled(false);
- ui.leName->setEnabled(false);
- ui.lComment->setEnabled(false);
- ui.leComment->setEnabled(false);
+ ui.leName->setText(m_plot->name());
+ ui.leComment->setText(m_plot->comment());
+ }else{
+ ui.lName->setEnabled(false);
+ ui.leName->setEnabled(false);
+ ui.lComment->setEnabled(false);
+ ui.leComment->setEnabled(false);
- ui.leName->setText("");
- ui.leComment->setText("");
- }
+ ui.leName->setText("");
+ ui.leComment->setText("");
+ }
//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(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(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;
+ 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(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(){
@@@ -359,20 -368,18 +368,18 @@@ void CartesianPlotDock::nameChanged()
}
void CartesianPlotDock::commentChanged(){
- if (m_initializing)
- return;
+ if (m_initializing)
+ return;
- m_plot->setComment(ui.leComment->text());
+ m_plot->setComment(ui.leComment->text());
}
- void CartesianPlotDock::visibilityChanged(int state){
- if (m_initializing)
- return;
+ void CartesianPlotDock::visibilityChanged(bool state){
+ 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);
}
void CartesianPlotDock::geometryChanged(){
@@@ -741,23 -748,30 +748,30 @@@ void CartesianPlotDock::backgroundSecon
opens a file dialog and lets the user select the image file.
*/
void CartesianPlotDock::selectFile() {
- KConfigGroup conf(KSharedConfig::openConfig(), "CartesianPlotDock");
- QString dir = conf.readEntry("LastImageDir", "");
- QString path = QFileDialog::getOpenFileName(this, i18n("Select the image file"), dir);
- if (path.isEmpty())
- return; //cancel was clicked in the file-dialog
-
- int pos = path.lastIndexOf(QDir::separator());
- if (pos!=-1) {
- QString newDir = path.left(pos);
- if (newDir!=dir)
- conf.writeEntry("LastImageDir", newDir);
+ KConfigGroup conf(KSharedConfig::openConfig(), "CartesianPlotDock");
+ QString dir = conf.readEntry("LastImageDir", "");
+
+ QString formats;
+ foreach(const QByteArray format, QImageReader::supportedImageFormats()) {
+ QString f = "*." + QString(format.constData());
+ formats.isEmpty() ? formats+=f : formats+=' '+f;
}
+ QString path = QFileDialog::getOpenFileName(this, i18n("Select the image file"), dir, i18n("Images (%1)", formats));
+ if (path.isEmpty())
+ return; //cancel was clicked in the file-dialog
+
+ int pos = path.lastIndexOf(QDir::separator());
+ if (pos!=-1) {
+ QString newDir = path.left(pos);
+ if (newDir!=dir)
+ conf.writeEntry("LastImageDir", newDir);
+ }
+
- ui.kleBackgroundFileName->setText( path );
+ ui.kleBackgroundFileName->setText( path );
- foreach(CartesianPlot* plot, m_plotList)
- plot->plotArea()->setBackgroundFileName(path);
+ foreach(CartesianPlot* plot, m_plotList)
+ plot->plotArea()->setBackgroundFileName(path);
}
void CartesianPlotDock::fileNameChanged(){
@@@ -872,18 -886,24 +886,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 -913,22 +913,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){
@@@ -1178,32 -1205,33 +1205,33 @@@ void CartesianPlotDock::saveConfigAsTem
// group.writeEntry("yMax", ui.kleYMax->text());
// group.writeEntry("yScale", ui.cbYScaling->currentIndex());
- //Title
- KConfigGroup group = config.group("PlotTitle");
- labelWidget->saveConfig(group);
-
- //Scale breakings
- //TODO
-
- //Background
- group = config.group("PlotArea");
- group.writeEntry("BackgroundType", ui.cbBackgroundType->currentIndex());
- group.writeEntry("BackgroundColorStyle", ui.cbBackgroundColorStyle->currentIndex());
- group.writeEntry("BackgroundImageStyle", ui.cbBackgroundImageStyle->currentIndex());
- group.writeEntry("BackgroundBrushStyle", ui.cbBackgroundBrushStyle->currentIndex());
- group.writeEntry("BackgroundFileName", ui.kleBackgroundFileName->text());
- group.writeEntry("BackgroundFirstColor", ui.kcbBackgroundFirstColor->color());
- group.writeEntry("BackgroundSecondColor", ui.kcbBackgroundSecondColor->color());
- group.writeEntry("BackgroundOpacity", ui.sbBackgroundOpacity->value()/100.0);
- group.writeEntry("HorizontalPadding", Worksheet::convertToSceneUnits(ui.sbPaddingHorizontal->value(), Worksheet::Centimeter));
- group.writeEntry("VerticalPadding", Worksheet::convertToSceneUnits(ui.sbPaddingVertical->value(), Worksheet::Centimeter));
-
- //Border
- group.writeEntry("BorderStyle", ui.cbBorderStyle->currentIndex());
- group.writeEntry("BorderColor", ui.kcbBorderColor->color());
- group.writeEntry("BorderWidth", Worksheet::convertToSceneUnits(ui.sbBorderWidth->value(), Worksheet::Point));
- group.writeEntry("BorderCornerRadius", Worksheet::convertToSceneUnits(ui.sbBorderCornerRadius->value(), Worksheet::Centimeter));
- group.writeEntry("BorderOpacity", ui.sbBorderOpacity->value()/100.0);
-
- config.sync();
+ //Title
+ KConfigGroup group = config.group("PlotTitle");
+ labelWidget->saveConfig(group);
+
+ //Scale breakings
+ //TODO
+
+ //Background
+ group = config.group("PlotArea");
+ group.writeEntry("BackgroundType", ui.cbBackgroundType->currentIndex());
+ group.writeEntry("BackgroundColorStyle", ui.cbBackgroundColorStyle->currentIndex());
+ group.writeEntry("BackgroundImageStyle", ui.cbBackgroundImageStyle->currentIndex());
+ group.writeEntry("BackgroundBrushStyle", ui.cbBackgroundBrushStyle->currentIndex());
+ group.writeEntry("BackgroundFileName", ui.kleBackgroundFileName->text());
+ group.writeEntry("BackgroundFirstColor", ui.kcbBackgroundFirstColor->color());
+ group.writeEntry("BackgroundSecondColor", ui.kcbBackgroundSecondColor->color());
+ group.writeEntry("BackgroundOpacity", ui.sbBackgroundOpacity->value()/100.0);
+ group.writeEntry("HorizontalPadding", Worksheet::convertToSceneUnits(ui.sbPaddingHorizontal->value(), Worksheet::Centimeter));
+ group.writeEntry("VerticalPadding", Worksheet::convertToSceneUnits(ui.sbPaddingVertical->value(), Worksheet::Centimeter));
+
+ //Border
+ group.writeEntry("BorderStyle", ui.cbBorderStyle->currentIndex());
+ group.writeEntry("BorderColor", ui.kcbBorderColor->color());
+ group.writeEntry("BorderWidth", Worksheet::convertToSceneUnits(ui.sbBorderWidth->value(), Worksheet::Point));
+ group.writeEntry("BorderCornerRadius", Worksheet::convertToSceneUnits(ui.sbBorderCornerRadius->value(), Worksheet::Centimeter));
+ group.writeEntry("BorderOpacity", ui.sbBorderOpacity->value()/100.0);
+
+ config.sync();
}
+
diff --cc src/kdefrontend/dockwidgets/CartesianPlotLegendDock.cpp
index 17f4769,7ee9f79..930d85b
--- a/src/kdefrontend/dockwidgets/CartesianPlotLegendDock.cpp
+++ b/src/kdefrontend/dockwidgets/CartesianPlotLegendDock.cpp
@@@ -62,10 -66,9 +66,9 @@@ CartesianPlotLegendDock::CartesianPlotL
//"Background"-tab
ui.kleBackgroundFileName->setClearButtonShown(true);
- ui.bOpen->setIcon( QIcon::fromTheme("document-open") );
+ ui.bOpen->setIcon( QIcon::fromTheme("document-open") );
- KUrlCompletion *comp = new KUrlCompletion();
- ui.kleBackgroundFileName->setCompletionObject(comp);
+ ui.kleBackgroundFileName->setCompletionObject(m_completion);
//adjust layouts in the tabs
for (int i=0; i<ui.tabWidget->count(); ++i){
diff --cc src/kdefrontend/dockwidgets/WorksheetDock.cpp
index ad9a2c0,a6a0f23..dafde31
--- a/src/kdefrontend/dockwidgets/WorksheetDock.cpp
+++ b/src/kdefrontend/dockwidgets/WorksheetDock.cpp
@@@ -87,10 -88,9 +88,9 @@@ WorksheetDock::WorksheetDock(QWidget *p
//Background-tab
ui.cbBackgroundColorStyle->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLengthWithIcon);
ui.kleBackgroundFileName->setClearButtonShown(true);
- ui.bOpen->setIcon( QIcon::fromTheme("document-open") );
+ ui.bOpen->setIcon( QIcon::fromTheme("document-open") );
- KUrlCompletion *comp = new KUrlCompletion();
- ui.kleBackgroundFileName->setCompletionObject(comp);
+ ui.kleBackgroundFileName->setCompletionObject(m_completion);
//adjust layouts in the tabs
for (int i=0; i<ui.tabWidget->count(); ++i){
diff --cc src/kdefrontend/dockwidgets/XYCurveDock.cpp
index d82f772,3a838bf..dfbb2e2
--- a/src/kdefrontend/dockwidgets/XYCurveDock.cpp
+++ b/src/kdefrontend/dockwidgets/XYCurveDock.cpp
@@@ -481,7 -488,7 +488,7 @@@ void XYCurveDock::init()
void XYCurveDock::setModel() {
QList<const char*> list;
- list<<"Folder"<<"Workbook"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"Worksheet"<<"CartesianPlot"<<"XYFitCurve"<<"CantorWorksheet";
- list<<"Folder"<<"Workbook"<<"Datapicker"<<"DatapickerCurve"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"Worksheet"<<"CartesianPlot"<<"XYFitCurve";
++ list<<"Folder"<<"Workbook"<<"Datapicker"<<"DatapickerCurve"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"Worksheet"<<"CartesianPlot"<<"XYFitCurve"<<"CantorWorksheet";
if (cbXColumn) {
cbXColumn->setTopLevelClasses(list);
cbYColumn->setTopLevelClasses(list);
diff --cc src/kdefrontend/dockwidgets/XYFitCurveDock.cpp
index 2ba9ab3,99527a1..07a7d49
--- a/src/kdefrontend/dockwidgets/XYFitCurveDock.cpp
+++ b/src/kdefrontend/dockwidgets/XYFitCurveDock.cpp
@@@ -161,7 -168,7 +168,7 @@@ void XYFitCurveDock::initGeneralTab()
void XYFitCurveDock::setModel() {
QList<const char*> list;
- list<<"Folder"<<"Workbook"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"CantorWorksheet";
- list<<"Folder"<<"Workbook"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"Datapicker";
++ list<<"Folder"<<"Workbook"<<"Spreadsheet"<<"FileDataSource"<<"Column"<<"CantorWorksheet"<<"Datapicker";
cbXDataColumn->setTopLevelClasses(list);
cbYDataColumn->setTopLevelClasses(list);
cbWeightsColumn->setTopLevelClasses(list);
diff --cc src/kdefrontend/labplot2ui.rc
index 2374a32,fc21b73..ec0fcca
--- a/src/kdefrontend/labplot2ui.rc
+++ b/src/kdefrontend/labplot2ui.rc
@@@ -65,7 -64,7 +71,8 @@@
<Menu name="spreadsheet"><text>&Spreadsheet</text></Menu>
<Menu name="matrix"><text>&Matrix</text></Menu>
<Menu name="worksheet"><text>&Worksheet</text></Menu>
+<Menu name="casWorksheet"><text>&CAS Worksheet</text></Menu>
+ <Menu name="datapicker"><text>&Datapicker</text></Menu>
<!-- <Menu name="analysis"><text>&Analysis</text></Menu> -->
<!-- <Menu name="drawing"><text>&Drawing</text></Menu> -->
<!-- <Menu name="script"><text>&Script</text></Menu> -->
diff --cc src/kdefrontend/spreadsheet/ExportSpreadsheetDialog.cpp
index e9290bc,f2ac4b5..0a5a64b
--- a/src/kdefrontend/spreadsheet/ExportSpreadsheetDialog.cpp
+++ b/src/kdefrontend/spreadsheet/ExportSpreadsheetDialog.cpp
@@@ -82,8 -79,9 +79,9 @@@ ExportSpreadsheetDialog::ExportSpreadsh
connect(this,SIGNAL(user1Clicked()), this, SLOT(toggleOptions()));
setCaption(i18n("Export spreadsheet"));
- setWindowIcon(QIcon::fromTheme("document-export-database"));
+ setWindowIcon(QIcon::fromTheme("document-export-database"));
+ //restore saved settings
KConfigGroup conf(KSharedConfig::openConfig(), "ExportSpreadsheetDialog");
ui.cbFormat->setCurrentIndex(conf.readEntry("Format", 0));
ui.chkExportHeader->setChecked(conf.readEntry("Header", true));
diff --cc src/kdefrontend/spreadsheet/FunctionValuesDialog.cpp
index c1b89c4,ce8114b..8700516
--- a/src/kdefrontend/spreadsheet/FunctionValuesDialog.cpp
+++ b/src/kdefrontend/spreadsheet/FunctionValuesDialog.cpp
@@@ -58,10 -58,9 +58,11 @@@ FunctionValuesDialog::FunctionValuesDia
setMainWidget(mainWidget);
ui.tbConstants->setIcon( QIcon::fromTheme("labplot-format-text-symbol") );
+
+ ui.tbConstants->setIcon( QIcon::fromTheme("format-text-symbol") );
ui.tbFunctions->setIcon( QIcon::fromTheme("preferences-desktop-font") );
+ ui.teEquation->setMaximumHeight(QLineEdit().sizeHint().height()*2);
ui.teEquation->setFocus();
m_topLevelClasses<<"Folder"<<"Workbook"<<"Spreadsheet"<<"FileDataSource"<<"Column";
diff --cc src/kdefrontend/widgets/FitOptionsWidget.cpp
index 1a3e660,73ed0af..1ffad11
--- a/src/kdefrontend/widgets/FitOptionsWidget.cpp
+++ b/src/kdefrontend/widgets/FitOptionsWidget.cpp
@@@ -33,10 -33,10 +33,10 @@@
\ingroup kdefrontend
*/
- FitOptionsWidget::FitOptionsWidget(QWidget *parent, XYFitCurve::FitData* fitData): QWidget(parent), m_fitData(fitData) {
+ FitOptionsWidget::FitOptionsWidget(QWidget *parent, XYFitCurve::FitData* fitData): QWidget(parent), m_fitData(fitData), m_changed(false) {
ui.setupUi(this);
- ui.pbApply->setIcon(QIcon::fromTheme("dialog-ok-apply"));
- ui.pbCancel->setIcon(QIcon::fromTheme("dialog-cancel"));
+ ui.pbApply->setIcon(QIcon::fromTheme("dialog-ok-apply"));
+ ui.pbCancel->setIcon(QIcon::fromTheme("dialog-cancel"));
//TODO: show "robust" option when robust fitting is possible
// ui.cbRobust->addItem(i18n("on"));
diff --cc src/kdefrontend/widgets/FitParametersWidget.cpp
index dbbf68d,0b2dc4f..fc556a4
--- a/src/kdefrontend/widgets/FitParametersWidget.cpp
+++ b/src/kdefrontend/widgets/FitParametersWidget.cpp
@@@ -37,10 -37,10 +37,10 @@@
\ingroup kdefrontend
*/
- FitParametersWidget::FitParametersWidget(QWidget* parent, XYFitCurve::FitData* data) : QWidget(parent), m_fitData(data) {
+ FitParametersWidget::FitParametersWidget(QWidget* parent, XYFitCurve::FitData* data) : QWidget(parent), m_fitData(data), m_changed(false) {
ui.setupUi(this);
- ui.pbApply->setIcon(QIcon::fromTheme("dialog-ok-apply"));
- ui.pbCancel->setIcon(QIcon::fromTheme("dialog-cancel"));
+ ui.pbApply->setIcon(QIcon::fromTheme("dialog-ok-apply"));
+ ui.pbCancel->setIcon(QIcon::fromTheme("dialog-cancel"));
ui.tableWidget->setColumnCount(2);
diff --cc src/kdefrontend/widgets/LabelWidget.cpp
index 7aeea41,4ac385c..803235e
--- a/src/kdefrontend/widgets/LabelWidget.cpp
+++ b/src/kdefrontend/widgets/LabelWidget.cpp
@@@ -48,16 -48,16 +48,16 @@@
*/
// see legacy/LabelWidget.cpp
- LabelWidget::LabelWidget(QWidget *parent): QWidget(parent), m_dateTimeMenu(new QMenu(this)) {
+ LabelWidget::LabelWidget(QWidget *parent): QWidget(parent), m_initializing(false), m_dateTimeMenu(new QMenu(this)) {
ui.setupUi(this);
- m_dateTimeMenu->setSeparatorsCollapsible(false); //we don't want the first separator to be removed
+ m_dateTimeMenu->setSeparatorsCollapsible(false); //we don't want the first separator to be removed
- QGridLayout* layout =static_cast<QGridLayout*>(this->layout());
- layout->setContentsMargins(2,2,2,2);
- layout->setHorizontalSpacing(2);
- layout->setVerticalSpacing(2);
- ui.kcbFontColor->setColor(Qt::black); // default color
+ QGridLayout* layout =static_cast<QGridLayout*>(this->layout());
+ layout->setContentsMargins(2,2,2,2);
+ layout->setHorizontalSpacing(2);
+ layout->setVerticalSpacing(2);
+ ui.kcbFontColor->setColor(Qt::black); // default color
//Icons
ui.tbFontBold->setIcon( QIcon::fromTheme("format-text-bold") );
More information about the kde-doc-english
mailing list