mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[apps/sequence] Improve sequence model
Change-Id: I1369646291c4da852777f07c4730c640c3df76ac
This commit is contained in:
@@ -1,7 +1,92 @@
|
||||
#include "sequence.h"
|
||||
#include <string.h>
|
||||
|
||||
using namespace Shared;
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
Sequence::Sequence(const char * text, KDColor color) :
|
||||
Function(text, color),
|
||||
m_type(Type::Explicite),
|
||||
m_firstInitialConditionText(""),
|
||||
m_secondInitialConditionText(""),
|
||||
m_firstInitialConditionExpression(nullptr),
|
||||
m_secondInitialConditionExpression(nullptr),
|
||||
m_firstInitialConditionLayout(nullptr),
|
||||
m_secondInitialConditionLayout(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
Sequence::~Sequence() {
|
||||
((Function *)this)->Shared::Function::~Function();
|
||||
if (m_firstInitialConditionLayout != nullptr) {
|
||||
delete m_firstInitialConditionLayout;
|
||||
}
|
||||
if (m_secondInitialConditionLayout != nullptr) {
|
||||
delete m_secondInitialConditionLayout;
|
||||
}
|
||||
if (m_firstInitialConditionExpression != nullptr) {
|
||||
delete m_firstInitialConditionExpression;
|
||||
}
|
||||
if (m_secondInitialConditionExpression != nullptr) {
|
||||
delete m_secondInitialConditionExpression;
|
||||
}
|
||||
}
|
||||
|
||||
Sequence::Type Sequence::type() {
|
||||
return m_type;
|
||||
}
|
||||
|
||||
void Sequence::setType(Type type) {
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
Poincare::Expression * Sequence::firstInitialConditionExpression() {
|
||||
return m_firstInitialConditionExpression;
|
||||
}
|
||||
|
||||
Poincare::Expression * Sequence::secondInitialConditionExpression() {
|
||||
return m_secondInitialConditionExpression;
|
||||
}
|
||||
|
||||
Poincare::ExpressionLayout * Sequence::firstInitialConditionLayout() {
|
||||
return m_firstInitialConditionLayout;
|
||||
}
|
||||
|
||||
Poincare::ExpressionLayout * Sequence::secondInitialConditionLayout() {
|
||||
return m_secondInitialConditionLayout;
|
||||
}
|
||||
|
||||
void Sequence::setFirstInitialConditionContent(const char * c) {
|
||||
strlcpy(m_firstInitialConditionText, c, sizeof(m_firstInitialConditionText));
|
||||
if (m_firstInitialConditionExpression != nullptr) {
|
||||
delete m_firstInitialConditionExpression;
|
||||
}
|
||||
m_firstInitialConditionExpression = Poincare::Expression::parse(m_firstInitialConditionText);
|
||||
if (m_firstInitialConditionLayout != nullptr) {
|
||||
delete m_firstInitialConditionLayout;
|
||||
}
|
||||
m_firstInitialConditionLayout = nullptr;
|
||||
if (m_firstInitialConditionExpression) {
|
||||
m_firstInitialConditionLayout = expression()->createLayout();
|
||||
}
|
||||
}
|
||||
|
||||
void Sequence::setSecondInitialConditionContent(const char * c) {
|
||||
strlcpy(m_secondInitialConditionText, c, sizeof(m_secondInitialConditionText));
|
||||
if (m_secondInitialConditionExpression != nullptr) {
|
||||
delete m_secondInitialConditionExpression;
|
||||
}
|
||||
m_secondInitialConditionExpression = Poincare::Expression::parse(m_secondInitialConditionText);
|
||||
if (m_secondInitialConditionLayout != nullptr) {
|
||||
delete m_secondInitialConditionLayout;
|
||||
}
|
||||
m_secondInitialConditionLayout = nullptr;
|
||||
if (m_secondInitialConditionExpression) {
|
||||
m_secondInitialConditionLayout = expression()->createLayout();
|
||||
}
|
||||
}
|
||||
|
||||
char Sequence::symbol() const {
|
||||
return 'n';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user