[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kalgebra/analitzaplot] /: Adapt to changes in analitzaplot
From: Aleix Pol <aleixpol () kde ! org>
Date: 2012-09-23 22:44:15
Message-ID: 20120923224415.A9368A6094 () git ! kde ! org
[Download RAW message or body]
Git commit ce2497884451724626e95d2bbe05bd8dea63eab4 by Aleix Pol.
Committed on 24/09/2012 at 00:44.
Pushed by apol into branch 'analitzaplot'.
Adapt to changes in analitzaplot
M +4 -2 mobile/kalgebramobile.cpp
M +4 -4 src/dictionary.cpp
M +7 -4 src/functionedit.cpp
M +21 -17 src/kalgebra.cpp
http://commits.kde.org/kalgebra/ce2497884451724626e95d2bbe05bd8dea63eab4
diff --git a/mobile/kalgebramobile.cpp b/mobile/kalgebramobile.cpp
index 2dff057..4a63ab5 100644
--- a/mobile/kalgebramobile.cpp
+++ b/mobile/kalgebramobile.cpp
@@ -22,6 +22,7 @@
#include <analitzagui/variablesmodel.h>
#include <analitzaplot/plotsmodel.h>
#include <analitzaplot/planecurve.h>
+#include <analitzaplot/plotsfactory.h>
#include "analitzawrapper.h"
#include <QDeclarativeContext>
@@ -51,7 +52,7 @@ PlotsModel* KAlgebraMobile::functionsModel()
{
if(!m_functionsModel) {
m_functionsModel = new PlotsModel(this);
- connect(m_functionsModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), \
SLOT(functionRemoved(QString))); + connect(m_functionsModel, \
SIGNAL(rowsRemoved(QModelIndex,int,int)), \
SLOT(functionRemoved(QModelIndex,int,int))); connect(m_functionsModel, \
SIGNAL(rowsInserted(QModelIndex,int,int)), \
SLOT(functionInserted(QModelIndex,int,int))); connect(m_functionsModel, \
SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(functionModified(QModelIndex, \
QModelIndex))); }
@@ -104,7 +105,8 @@ QStringList KAlgebraMobile::addFunction(const QString& \
expression, double up, do QColor fcolor = randomFunctionColor();
QStringList err;
- PlaneCurve* it = new PlaneCurve(e, fname, fcolor, m_vars);
+ PlotBuilder req = PlotsFactory::self()->requestPlot(e, Dim2D);
+ PlaneCurve* it = static_cast<PlaneCurve*>(req.create(fcolor, fname, m_vars));
if(up!=down)
it->setInterval(it->parameters().first(), down, up);
diff --git a/src/dictionary.cpp b/src/dictionary.cpp
index c66b19c..720c813 100644
--- a/src/dictionary.cpp
+++ b/src/dictionary.cpp
@@ -20,6 +20,9 @@
#include <analitza/variables.h>
#include <analitza/expression.h>
#include <analitzagui/operatorsmodel.h>
+#include <analitzaplot/plotsmodel.h>
+#include <analitzaplot/plotsview2d.h>
+#include <analitzaplot/plotsfactory.h>
#include <QLabel>
#include <QGroupBox>
@@ -28,9 +31,6 @@
#include <QFormLayout>
#include <KLocale>
#include <QtMmlWidget>
-#include <analitzaplot/plotsmodel.h>
-#include <analitzaplot/plotsview2d.h>
-#include <analitzaplot/planecurve.h>
Dictionary::Dictionary(QWidget *p) : QWidget(p)
{
@@ -118,7 +118,7 @@ void Dictionary::activated(const QModelIndex& idx, const \
QModelIndex& prev) if(!error.isEmpty())
qDebug() << "dict formula error: " << error << e.toMathMLPresentation();
- m_funcs->addPlot(new PlaneCurve(e, "func", QColor(0,150,0), m_vars));
+ m_funcs->addPlot(PlotsFactory::self()->requestPlot(e, \
Dim2D).create(QColor(0,150,0), "dict", m_vars)); } else {
QString error;
m_name->setText(QString());
diff --git a/src/functionedit.cpp b/src/functionedit.cpp
index a4d0736..58d99e9 100644
--- a/src/functionedit.cpp
+++ b/src/functionedit.cpp
@@ -36,6 +36,7 @@
#include <analitzaplot/planecurve.h>
#include <analitzaplot/plotsmodel.h>
#include <analitzaplot/plotsview2d.h>
+#include <analitzaplot/plotsfactory.h>
namespace {
static const int resolution = 200;
@@ -53,7 +54,7 @@ FunctionEdit::FunctionEdit(QWidget *parent)
m_name = new KLineEdit(this);
m_func = new ExpressionEdit(this);
- m_func->setExamples(PlaneCurve::examples());
+ m_func->setExamples(PlotsFactory::self()->examples(Dim2D));
m_func->setAns("x");
connect(m_func, SIGNAL(textChanged()), this, SLOT(edit()));
connect(m_func, SIGNAL(returnPressed()), this, SLOT(ok()));
@@ -259,8 +260,8 @@ void FunctionEdit::edit()
bool added = false;
PlaneCurve* f = 0;
- QStringList errors = PlaneCurve::canDraw(expression());
- if(errors.isEmpty())
+ PlotBuilder req = PlotsFactory::self()->requestPlot(expression(), Dim2D);
+ if(req.canDraw())
f = createFunction();
if(f && f->isCorrect())
@@ -273,6 +274,7 @@ void FunctionEdit::edit()
setState(QString("%1:=%2")
.arg(m_name->text()).arg(f->expression().toString()), false);
} else {
+ QStringList errors = req.errors();
if(f)
errors = f->errors();
Q_ASSERT(!errors.isEmpty());
@@ -299,7 +301,8 @@ void FunctionEdit::focusInEvent(QFocusEvent *)
PlaneCurve* FunctionEdit::createFunction() const
{
- PlaneCurve* curve = new PlaneCurve(expression(), name(), color(), m_vars);
+ PlotBuilder req = PlotsFactory::self()->requestPlot(expression(), Dim2D);
+ PlaneCurve* curve = static_cast<PlaneCurve*>(req.create(color(), name(), m_vars));
if(m_calcUplimit != m_calcDownlimit) {
foreach(const QString& var, curve->parameters())
curve->setInterval(var, m_calcUplimit, m_calcDownlimit);
diff --git a/src/kalgebra.cpp b/src/kalgebra.cpp
index 52f7777..cdc0ec7 100644
--- a/src/kalgebra.cpp
+++ b/src/kalgebra.cpp
@@ -55,6 +55,7 @@
#include <KRecentFilesAction>
#include <KApplication>
#include <kabstractfilewidget.h>
+#include <analitzaplot/plotsfactory.h>
class Add2DOption : public InlineOptions
{
@@ -64,9 +65,8 @@ class Add2DOption : public InlineOptions
{}
virtual QString id() const { return "add2d"; }
- virtual bool matchesExpression(const Analitza::Expression& exp, const \
Analitza::ExpressionType& functype) const
- {
- return FunctionGraph::canDraw(exp, Dim2D).isEmpty();
+ virtual bool matchesExpression(const Analitza::Expression& exp, const \
Analitza::ExpressionType& functype) const { + return \
PlotsFactory::self()->requestPlot(exp, Dim2D).canDraw(); }
virtual QString caption() const { return i18n("Plot 2D"); }
@@ -88,7 +88,7 @@ class Add3DOption : public InlineOptions
virtual QString id() const { return "add3d"; }
virtual bool matchesExpression(const Analitza::Expression& exp, const \
Analitza::ExpressionType& functype) const {
- return FunctionGraph::canDraw(exp, Dim3D).isEmpty();
+ return PlotsFactory::self()->requestPlot(exp, Dim2D).canDraw();
}
virtual QString caption() const { return i18n("Plot 3D"); }
@@ -285,6 +285,7 @@ KAlgebra::KAlgebra(QWidget *parent) : KMainWindow(parent)
t_model3d = new PlotsModel(this);
m_graph3d = new PlotsView3D(tridim);
m_graph3d->setModel(t_model3d);
+// m_graph3d->setBackgroundColor(Qt::black);
tridim->setLayout(t_layo);
m_tabs->addTab(tridim, i18n("&3D Graph"));
@@ -292,7 +293,6 @@ KAlgebra::KAlgebra(QWidget *parent) : KMainWindow(parent)
t_layo->addWidget(t_exp);
connect(t_exp, SIGNAL(returnPressed()), this, SLOT(new_func3d()));
- connect(m_graph3d, SIGNAL(status(QString)), this, SLOT(changeStatusBar(QString)));
c_results->addOptionsObserver(new Add3DOption(this));
////////menu
@@ -301,7 +301,6 @@ KAlgebra::KAlgebra(QWidget *parent) : KMainWindow(parent)
t_actions[0] = t_menu->addAction(i18n("&Transparency"), this, \
SLOT(toggleTransparency())); t_menu->addAction(KStandardAction::save(this, \
SLOT(save3DGraph()), this)); t_menu->addAction(KIcon("zoom-original"), i18n("&Reset \
View"), m_graph3d, SLOT(resetView()));
- t_menu->addSeparator()->setText(i18n("Type"));
t_actions[2] = t_menu->addAction(i18n("Dots"), this, SLOT(set_dots()));
t_actions[3] = t_menu->addAction(i18n("Lines"), this, SLOT(set_lines()));
t_actions[4] = t_menu->addAction(i18n("Solid"), this, SLOT(set_solid()));
@@ -392,7 +391,8 @@ void KAlgebra::add2D(const Analitza::Expression& exp)
{
qDebug() << "adding" << exp.toString();
- PlaneCurve* curve = new PlaneCurve(exp, b_funcsModel->freeId(), \
randomFunctionColor(), c_results->analitza()->variables()); + PlotItem* curve = \
PlotsFactory::self()->requestPlot(exp, Dim2D).create(randomFunctionColor(), \
b_funcsModel->freeId(), + c_results->analitza()->variables());
b_funcsModel->addPlot(curve);
m_tabs->setCurrentIndex(1);
@@ -516,33 +516,36 @@ void KAlgebra::new_func3d()
{
#ifdef HAVE_OPENGL
Analitza::Expression exp = t_exp->expression();
- QStringList errors = FunctionGraph::canDraw(exp, Dim3D);
- if(errors.isEmpty()) {
+ PlotBuilder plot = PlotsFactory::self()->requestPlot(exp, Dim3D);
+ if(plot.canDraw()) {
t_model3d->clear();
- t_model3d->addPlot(new FunctionGraph(exp, Dim3D, "func3d", Qt::yellow, \
c_results->analitza()->variables())); + t_model3d->addPlot(plot.create(Qt::yellow, \
"func3d", c_results->analitza()->variables())); } else
- changeStatusBar(i18n("Errors: %1", errors.join(i18n(", "))));
+ changeStatusBar(i18n("Errors: %1", plot.errors().join(i18n(", "))));
#endif
}
void KAlgebra::set_dots()
{
#ifdef HAVE_OPENGL
-// m_graph3d->setMethod(PlotsView3D::Dots);
+ if(t_model3d->rowCount()>0)
+ m_graph3d->itemAt(0)->setPlotStyle(PlotItem::Dots);
#endif
}
void KAlgebra::set_lines()
{
#ifdef HAVE_OPENGL
-// m_graph3d->setMethod(PlotsView3D::Lines);
+ if(t_model3d->rowCount()>0)
+ m_graph3d->itemAt(0)->setPlotStyle(PlotItem::Wired);
#endif
}
void KAlgebra::set_solid()
{
#ifdef HAVE_OPENGL
-// m_graph3d->setMethod(PlotsView3D::Solid);
+ if(t_model3d->rowCount()>0)
+ m_graph3d->itemAt(0)->setPlotStyle(PlotItem::Solid);
#endif
}
@@ -550,8 +553,9 @@ void KAlgebra::save3DGraph()
{
#ifdef HAVE_OPENGL
QString path = KFileDialog::getSaveFileName(KUrl(), i18n("*.png|PNG File"), this, \
QString(), KFileDialog::ConfirmOverwrite);
- if(!path.isEmpty())
- m_graph3d->saveSnapshot(path);
+// if(!path.isEmpty())
+// m_graph3d->saveSnapshot(path);
+#warning TODO: port to the new viewer
#endif
}
@@ -682,7 +686,7 @@ void KAlgebra::add3D(const Analitza::Expression& exp)
{
#ifdef HAVE_OPENGL
t_model3d->clear();
- t_model3d->addPlot(new FunctionGraph(exp, Dim3D, "func3d", Qt::yellow, \
c_results->analitza()->variables())); \
+ t_model3d->addPlot(PlotsFactory::self()->requestPlot(exp, Dim3D).create(Qt::yellow, \
"func3d_console", c_results->analitza()->variables())); m_tabs->setCurrentIndex(2);
#endif
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic