[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [analitza] /: Use nullptr
From:       Aleix Pol <null () kde ! org>
Date:       2018-07-17 13:30:25
Message-ID: E1ffQ3d-0003Fq-Vi () code ! kde ! org
[Download RAW message or body]

Git commit 939079eefd8340b90a03963ae1f7c67b1f4861d2 by Aleix Pol.
Committed on 13/07/2018 at 14:57.
Pushed by apol into branch 'master'.

Use nullptr

M  +2    -2    analitza/abstractexpressiontransformer.cpp
M  +2    -2    analitza/analitzautils.cpp
M  +40   -40   analitza/analyzer.cpp
M  +8    -8    analitza/apply.cpp
M  +3    -3    analitza/commands/blockmatrixcommands.cpp
M  +3    -3    analitza/commands/matrixcommands.cpp
M  +1    -1    analitza/container.cpp
M  +12   -12   analitza/expression.cpp
M  +1    -1    analitza/expressiontable.cpp
M  +1    -1    analitza/importqobjectmetatype.cpp
M  +14   -14   analitza/mathmlpresentationexpressionwriter.cpp
M  +31   -31   analitza/operations.cpp
M  +7    -7    analitza/polynomial.cpp
M  +4    -4    analitza/providederivative.cpp
M  +1    -1    analitza/tests/analitzatest.h
M  +1    -1    analitza/tests/builtintest.cpp
M  +1    -1    analitza/tests/builtintest.h
M  +1    -1    analitza/tests/commandstest.h
M  +1    -1    analitza/tests/expressiontest.h
M  +1    -1    analitza/tests/exptest.h
M  +1    -1    analitza/tests/matchingtest.cpp
M  +1    -1    analitza/tests/mathmlpresentationtest.h
M  +1    -1    analitza/tests/typechecktest.h
M  +2    -2    analitza/transformation.cpp
M  +1    -1    analitza/value.cpp
M  +1    -1    analitzagui/algebrahighlighter.h
M  +1    -1    analitzagui/operatorsmodel.cpp
M  +1    -1    analitzagui/operatorsmodel.h
M  +1    -1    analitzagui/tests/operatorsmodeltest.h
M  +1    -1    analitzagui/variablesmodel.cpp
M  +1    -1    analitzagui/variablesmodel.h
M  +1    -1    analitzaplot/plotitem.cpp
M  +1    -1    analitzaplot/plotsdictionarymodel.h
M  +1    -1    analitzaplot/plotsmodel.cpp
M  +1    -1    analitzaplot/plotsmodel.h
M  +4    -4    analitzaplot/plotter2d.cpp
M  +2    -2    analitzaplot/plotter3d_es.cpp
M  +1    -1    analitzaplot/plotter3d_es.h
M  +1    -1    analitzaplot/private/functiongraphfactory.cpp
M  +12   -12   analitzaplot/private/utils/marchingcubes.cpp
M  +2    -2    analitzaplot/private/utils/marchingcubes.h
M  +5    -5    analitzaplot/private/utils/quadtree.cpp
M  +1    -1    analitzaplot/tests/planecurvetest.h
M  +1    -1    analitzaplot/tests/plotsdictionarymodeltest.h
M  +1    -1    analitzaplot/tests/plotsmodeltest.h
M  +1    -1    analitzaplot/tests/spacecurvetest.h
M  +1    -1    analitzaplot/tests/surfacetest.h
M  +1    -1    analitzawidgets/expressionedit.cpp
M  +1    -1    analitzawidgets/expressionedit.h
M  +2    -2    analitzawidgets/plotsview2d.cpp
M  +1    -1    analitzawidgets/plotsview2d.h
M  +1    -1    analitzawidgets/plotsview3d_es.cpp
M  +1    -1    analitzawidgets/plotsview3d_es.h
M  +1    -1    declarative/analitzawrapper.cpp
M  +3    -3    declarative/analitzawrapper.h
M  +1    -1    declarative/graph2dmobile.cpp
M  +1    -1    declarative/graph2dmobile.h
M  +1    -1    declarative/graph3ditem.cpp

https://commits.kde.org/analitza/939079eefd8340b90a03963ae1f7c67b1f4861d2

diff --git a/analitza/abstractexpressiontransformer.cpp \
b/analitza/abstractexpressiontransformer.cpp index 5ffbdcb6..404ef405 100644
--- a/analitza/abstractexpressiontransformer.cpp
+++ b/analitza/abstractexpressiontransformer.cpp
@@ -49,7 +49,7 @@ ITERATION_WALKER(Container, pattern->containerType())
 Object* AbstractExpressionTransformer::walk(const Object* pattern)
 {
     if(!pattern)
-        return 0;
+        return nullptr;
     
     switch(pattern->type()) {
         case Object::apply:
@@ -75,7 +75,7 @@ Object* AbstractExpressionTransformer::walk(const Object* pattern)
     }
     
     Q_ASSERT(false);
-    return 0;
+    return nullptr;
 }
 
 Object* AbstractExpressionTransformer::walkApply(const Analitza::Apply* pattern)
diff --git a/analitza/analitzautils.cpp b/analitza/analitzautils.cpp
index d687f057..f9ab868b 100644
--- a/analitza/analitzautils.cpp
+++ b/analitza/analitzautils.cpp
@@ -502,7 +502,7 @@ Analitza::Expression variantToExpression(const QVariant& v)
         
         return Analitza::Expression::constructList(expressionList);
     } else if(v.canConvert<QObject*>()) {
-        return Analitza::Expression::constructCustomObject(v, 0);
+        return Analitza::Expression::constructCustomObject(v, nullptr);
     }
     
     Q_ASSERT(false && "couldn't figure out the type");
@@ -529,7 +529,7 @@ T* replaceDepthTemplate(int depth, T* tree, Object* towhat)
 Object* replaceDepth(int depth, Object* tree, Object* towhat)
 {
     if(!tree)
-        return 0;
+        return nullptr;
     
     Q_ASSERT(depth>=0);
     switch(tree->type()) {
diff --git a/analitza/analyzer.cpp b/analitza/analyzer.cpp
index 516cb17f..dd2c50d1 100644
--- a/analitza/analyzer.cpp
+++ b/analitza/analyzer.cpp
@@ -290,7 +290,7 @@ Expression Analyzer::calculateLambda()
 Object* Analyzer::eval(const Object* branch, bool resolve, const QSet<QString>& \
unscoped)  {
     Q_ASSERT(branch);
-    Object *ret=0;
+    Object *ret=nullptr;
 //     qDebug() << "POPOPO" << branch->toString();
     
     //Won't calc() so would be a good idea to have it simplified
@@ -361,7 +361,7 @@ Object* Analyzer::eval(const Object* branch, bool resolve, const \
QSet<QString>&  ret=r;
             } break;
             case Container::math:
-                ret=0;
+                ret=nullptr;
                 foreach(const Object* o, c->m_params) {
                     delete ret;
                     ret=eval(o, resolve, unscoped);
@@ -515,9 +515,9 @@ Object* Analyzer::eval(const Object* branch, bool resolve, const \
QSet<QString>&  if(values.size()==1)
                             ret = values.first();
                         else {
-                            r->ulimit()=0;
-                            r->dlimit()=0;
-                            r->domain()=0;
+                            r->ulimit()=nullptr;
+                            r->dlimit()=nullptr;
+                            r->domain()=nullptr;
                             
                             Apply *newC = new Apply;
                             Operator::OperatorType t;
@@ -590,7 +590,7 @@ Object* Analyzer::derivative(const QString &var, const Object* o)
 
 Object* Analyzer::calcPiecewise(const Container* c)
 {
-    Object* ret=0;
+    Object* ret=nullptr;
     //Here we have a list of options and finally the otherwise option
     foreach(Object *o, c->m_params) {
         Container *p=static_cast<Container*>(o);
@@ -636,7 +636,7 @@ Object* Analyzer::calcLambda(const Container* c)
 
 Object* Analyzer::calcDeclare(const Container* c)
 {
-    Object *ret=0;
+    Object *ret=nullptr;
     
     const Ci *var = (const Ci*) c->m_params[0];
     ret=simp(c->m_params[1]->copy());
@@ -662,7 +662,7 @@ Object* Analyzer::calcElements(const Object* root, T* nv)
 Object* Analyzer::calc(const Object* root)
 {
     Q_ASSERT(root);
-    Object* ret=0;
+    Object* ret=nullptr;
     
     switch(root->type()) {
         case Object::container:
@@ -713,7 +713,7 @@ bool isNull(Analitza::Operator::OperatorType opt, Object* ret)
 
 Object* Analyzer::operate(const Apply* c)
 {
-    Object* ret=0;
+    Object* ret=nullptr;
     const Operator& op = c->firstOperator();
     Operator::OperatorType opt=op.operatorType();
     
@@ -749,7 +749,7 @@ Object* Analyzer::operate(const Apply* c)
                         (op.nparams()>-1 && count==op.nparams()) ||
                         opt==Operator::minus);
             
-            QString* error=0;
+            QString* error=nullptr;
             if(count>=2) {
                 Apply::const_iterator it = c->firstValue(), itEnd=c->constEnd();
                 ret = calc(*it);
@@ -770,7 +770,7 @@ Object* Analyzer::operate(const Apply* c)
                     if(Q_UNLIKELY(error)) {
                         m_err.append(*error);
                         delete error;
-                        error=0;
+                        error=nullptr;
                         break;
                     }
                     
@@ -794,7 +794,7 @@ Object* Analyzer::operate(const Apply* c)
 }
 
 Analyzer::funcContainer Analyzer::operateContainer[Container::domainofapplication+1] \
                =
-    {0, &Analyzer::calcMath, &Analyzer::calcDeclare, &Analyzer::calcLambda, \
0,0,0,0,&Analyzer::calcPiecewise,0,0}; +    {nullptr, &Analyzer::calcMath, \
&Analyzer::calcDeclare, &Analyzer::calcLambda, \
nullptr,nullptr,nullptr,nullptr,&Analyzer::calcPiecewise,nullptr,nullptr};  
 Object* Analyzer::operate(const Container* c)
 {
@@ -887,7 +887,7 @@ namespace Analitza
 
 BoundingIterator* Analyzer::initializeBVars(const Apply* n, int base)
 {
-    BoundingIterator* ret=0;
+    BoundingIterator* ret=nullptr;
     
     Object* domain=n->domain();
     
@@ -915,7 +915,7 @@ BoundingIterator* Analyzer::initializeBVars(const Apply* n, int \
base)  }
 BoundingIterator* Analyzer::initBVarsContainer(const Analitza::Apply* n, int base, \
Object* domain)  {
-    BoundingIterator* ret = 0;
+    BoundingIterator* ret = nullptr;
     QVector<Ci*> bvars=n->bvarCi();
     
     switch(domain->type()) {
@@ -941,7 +941,7 @@ BoundingIterator* Analyzer::initBVarsContainer(const \
Analitza::Apply* n, int bas  
 BoundingIterator* Analyzer::initBVarsRange(const Apply* n, int base, Object* objdl, \
Object* objul)  {
-    BoundingIterator* ret = 0;
+    BoundingIterator* ret = nullptr;
     if(isCorrect() && objul->type()==Object::value && objdl->type()==Object::value) \
{  Cn *u=static_cast<Cn*>(objul);
         Cn *d=static_cast<Cn*>(objdl);
@@ -975,7 +975,7 @@ Object* Analyzer::boundedOperation(const Apply& n, const \
Operator& t, Object* in  if(!it)
         return initial;
     
-    QString* correct=0;
+    QString* correct=nullptr;
     Operator::OperatorType type=t.operatorType();
     do {
         Object *val=calc(n.m_params.last());
@@ -1038,7 +1038,7 @@ Object* Analyzer::func(const Apply& n)
 
 Object* Analyzer::calcCallFunction(Container* function, const QVector<Object*>& \
args, const Object* oper)  {
-    Object* ret=0;
+    Object* ret=nullptr;
     int bvarsize = args.size();
     
     if(function && function->m_params.size()>1) {
@@ -1090,7 +1090,7 @@ Object* Analyzer::calcCallFunction(Container* function, const \
QVector<Object*>&  Expression exp=(*func)(expargs);
         if(Q_UNLIKELY(exp.isCorrect())) {
             ret=exp.tree();
-            exp.setTree(0);
+            exp.setTree(nullptr);
         } else {
             m_err += exp.error();
             ret = new None();
@@ -1323,13 +1323,13 @@ Object* Analyzer::simpApply(Apply* c)
                     v->rvalue() *= -1;
                     
                     root=v;
-                    *c->firstValue()=0;
+                    *c->firstValue()=nullptr;
                     delete c;
-                    c=0;
+                    c=nullptr;
                 }
             } else {
                 root=simpPolynomials(c);
-                c=0;
+                c=nullptr;
             }
 //             qDebug()<< "PAAPPA" << root->toString();
             static QList<Transformation> addTrans;
@@ -1372,7 +1372,7 @@ Object* Analyzer::simpApply(Apply* c)
                 nc->appendBranch(aPlusOne);
                 nc->appendBranch(function);
                 
-                c->m_params.last()=0;
+                c->m_params.last()=nullptr;
                 delete c;
                 root=simp(nc);
             } else if(function->isApply()) {
@@ -1384,8 +1384,8 @@ Object* Analyzer::simpApply(Apply* c)
             Object* val=simp(*c->firstValue());
             if(val->type()==Object::vector)
             {
-                c->m_params.last()=0;
-                QString* err=0;
+                c->m_params.last()=nullptr;
+                QString* err=nullptr;
                 val=Operations::reduceUnary(Operator::card, val, &err);
                 if(Q_UNLIKELY(err)) { delete err; }
                 delete c;
@@ -1399,14 +1399,14 @@ Object* Analyzer::simpApply(Apply* c)
             Object* idx=c->m_params[0];
             Object* value=c->m_params[1];
             if(idx->type()==Object::value && value->type()==Object::vector) {
-                QString* err=0;
+                QString* err=nullptr;
                 Object* ret=Operations::reduce(Operator::selector, idx, value, \
&err);  delete err;
                 
                 if(ret) {
                     root=ret;
-                    c->m_params[0]=0;
-                    c->m_params[1]=0;
+                    c->m_params[0]=nullptr;
+                    c->m_params[1]=nullptr;
                     
                     delete c;
                 }
@@ -1423,7 +1423,7 @@ Object* Analyzer::simpApply(Apply* c)
                     newParams.append(*it);
                 else {
                     if((*it)->type()==Object::list && \
                newParams.last()->type()==Object::list) {
-                        QString* err=0;
+                        QString* err=nullptr;
                         Object* ret=Operations::reduce(Operator::_union, \
newParams.last(), *it, &err);  delete err;
                         newParams.last()=ret;
@@ -1432,10 +1432,10 @@ Object* Analyzer::simpApply(Apply* c)
                         newParams.append(*it);
                     }
                 }
-                *it=0;
+                *it=nullptr;
             }
             
-            if(newParams.last()==0)
+            if(newParams.last()==nullptr)
                 newParams.resize(newParams.size()-1);
             
             //if only one, remove union
@@ -1521,7 +1521,7 @@ Object* Analyzer::simpApply(Apply* c)
         case Operator::function: {
             Object* function=c->m_params[0];
             
-            Container* cfunc=0;
+            Container* cfunc=nullptr;
             QList<Ci*> bvars;
             if(function->isContainer()) {
                 cfunc=(Container*) function;
@@ -1544,7 +1544,7 @@ Object* Analyzer::simpApply(Apply* c)
                 }
                 
                 root=simp(cfunc->m_params.last());
-                cfunc->m_params.last()=0;
+                cfunc->m_params.last()=nullptr;
                 delete c;
             }
         }    break;
@@ -1582,12 +1582,12 @@ QList<Object*> Analyzer::findRootsApply(const QString& dep, \
const Apply* a)  switch(op.operatorType()) {
         case Operator::plus:
         case Operator::minus: {
-            Object* varTree = 0;
+            Object* varTree = nullptr;
             //f(x)-w=0 => f(x)=w => x=f-1(x)
             for(Apply::const_iterator it=a->constBegin(), itEnd=a->constEnd(); \
it!=itEnd; ++it) {  bool hasvars = hasVars(*it);
                 if(hasvars && varTree) {
-                    varTree = 0; //we don't support having more than 1 variable in \
the minus yet +                    varTree = nullptr; //we don't support having more \
than 1 variable in the minus yet  return QList<Object*>();
                 }
                 
@@ -1602,8 +1602,8 @@ QList<Object*> Analyzer::findRootsApply(const QString& dep, \
const Apply* a)  }
             
             if(varTree) {
-                Apply* na = 0;
-                Object* value = 0;
+                Apply* na = nullptr;
+                Object* value = nullptr;
                 if(a->countValues()>2) {
                     na = new Apply;
                     na->appendBranch(new Operator(a->firstOperator().inverse()));
@@ -1692,13 +1692,13 @@ Object* Analyzer::testResult(const Object* o, const QString& \
var, const Object*  
 Object* Analyzer::simpPolynomials(Apply* c)
 {
-    Q_ASSERT(c!=0 && c->isApply());
+    Q_ASSERT(c!=nullptr && c->isApply());
     
     Polynomial monos(c);
     
     c->m_params.clear();
     delete c;
-    c=0;
+    c=nullptr;
     
     Object *root=monos.toObject();
     
@@ -1720,7 +1720,7 @@ Object* Analyzer::simpSum(Apply* c)
                 sum.append(*it);
             } else {
                 out.append(*it);
-                *it=0;
+                *it=nullptr;
                 ++removed;
             }
         }
@@ -1749,7 +1749,7 @@ Object* Analyzer::simpPiecewise(Container *c)
 {
     Object *root=c;
     //Here we have a list of options and finally the otherwise option
-    Container *otherwise=0;
+    Container *otherwise=nullptr;
     Container::const_iterator it=c->m_params.constBegin(), itEnd=c->constEnd();
     QList<Object*> newList;
     
diff --git a/analitza/apply.cpp b/analitza/apply.cpp
index f9d70ff2..d6677284 100644
--- a/analitza/apply.cpp
+++ b/analitza/apply.cpp
@@ -26,7 +26,7 @@
 using namespace Analitza;
 
 Apply::Apply()
-    : Object(apply), m_ulimit(0), m_dlimit(0), m_domain(0), m_op(Operator::function)
+    : Object(apply), m_ulimit(nullptr), m_dlimit(nullptr), m_domain(nullptr), \
m_op(Operator::function)  {}
 
 Apply::~Apply()
@@ -49,25 +49,25 @@ bool Apply::addBranch(Object* o)
             case Container::uplimit:
                 Q_ASSERT(!m_ulimit);
                 m_ulimit = c->m_params[0];
-                c->m_params[0]=0;
+                c->m_params[0]=nullptr;
                 delete c;
                 break;
             case Container::downlimit:
                 Q_ASSERT(!m_dlimit);
                 m_dlimit = c->m_params[0];
-                c->m_params[0]=0;
+                c->m_params[0]=nullptr;
                 delete c;
                 break;
             case Container::domainofapplication:
                 Q_ASSERT(!m_domain);
                 m_domain = c->m_params[0];
-                c->m_params[0]=0;
+                c->m_params[0]=nullptr;
                 delete c;
                 break;
             case Container::bvar:
                 Q_ASSERT(c->m_params[0]->type()==variable);
                 m_bvars += static_cast<Ci*>(c->m_params[0]);
-                c->m_params[0]=0;
+                c->m_params[0]=nullptr;
                 delete c;
                 break;
             default:
@@ -127,9 +127,9 @@ bool Apply::operator==(const Apply& a) const
 Apply* Apply::copy() const
 {
     Apply* ret=new Apply;
-    ret->m_dlimit = m_dlimit? m_dlimit->copy() : 0;
-    ret->m_ulimit = m_ulimit? m_ulimit->copy() : 0;
-    ret->m_domain = m_domain? m_domain->copy() : 0;
+    ret->m_dlimit = m_dlimit? m_dlimit->copy() : nullptr;
+    ret->m_ulimit = m_ulimit? m_ulimit->copy() : nullptr;
+    ret->m_domain = m_domain? m_domain->copy() : nullptr;
     ret->m_op     = m_op;
     
     foreach(const Ci* var, m_bvars)
diff --git a/analitza/commands/blockmatrixcommands.cpp \
b/analitza/commands/blockmatrixcommands.cpp index c7fb5e02..2b7a4418 100644
--- a/analitza/commands/blockmatrixcommands.cpp
+++ b/analitza/commands/blockmatrixcommands.cpp
@@ -154,7 +154,7 @@ Expression BlockMatrixCommand::operator()(const QList< \
Analitza::Expression >& a  if (isCorrect) {
                     Analitza::Matrix *matrix = new Analitza::Matrix();
                     
-                    QVector< QVector< const Analitza::Object* > > objmatrix(nrows, \
QVector< const Analitza::Object* >(ncols, 0)); +                    QVector< QVector< \
const Analitza::Object* > > objmatrix(nrows, QVector< const Analitza::Object* \
>(ncols, nullptr));  
                     int nrowsoffset = isVector? nrows : 0;
                     int ncolsoffset = isVector? 0 : ncols;
@@ -235,7 +235,7 @@ Expression BlockDiagonalMatrixCommand::operator()(const QList< \
Analitza::Express  return ret;
     }
     
-    const Analitza::Vector *v = byvector? static_cast<const \
Analitza::Vector*>(args.first().tree()) : 0; +    const Analitza::Vector *v = \
byvector? static_cast<const Analitza::Vector*>(args.first().tree()) : nullptr;  
     if (byvector) nargs = v->size();
     
@@ -270,7 +270,7 @@ Expression BlockDiagonalMatrixCommand::operator()(const QList< \
Analitza::Express  
         if (!failbyblockdiag) {
             Analitza::Matrix *matrix = new Analitza::Matrix();
-            QVector< QVector< const Analitza::Object* > > objmatrix(nrows, QVector< \
const Analitza::Object* >(ncols, 0)); +            QVector< QVector< const \
Analitza::Object* > > objmatrix(nrows, QVector< const Analitza::Object* >(ncols, \
nullptr));  
             nrows = 0;
             ncols = 0;
diff --git a/analitza/commands/matrixcommands.cpp \
b/analitza/commands/matrixcommands.cpp index 6cfd1008..d22399a0 100644
--- a/analitza/commands/matrixcommands.cpp
+++ b/analitza/commands/matrixcommands.cpp
@@ -132,11 +132,11 @@ Expression MatrixCommand::operator()(const QList< \
Analitza::Expression >& args)  delete matrix;
             else if (iscorrect) {
                 if (isVector) {
-                    QString* error=0;
+                    QString* error=nullptr;
                     \
ret.setTree(Analitza::Operations::reduceUnary(Analitza::Operator::transpose, matrix, \
&error));  delete matrix;
                 
-                    Q_ASSERT(error == 0);
+                    Q_ASSERT(error == nullptr);
                 } else
                     ret.setTree(matrix);
             } else {
@@ -279,7 +279,7 @@ Expression DiagonalMatrixCommand::operator()(const QList< \
Analitza::Expression >  Q_ASSERT(ret.isCorrect());
     
     //BEGIN diag(a,b, ...) or diag(vector{a,b, ...})
-    const Analitza::Vector *v = byvector? static_cast<const \
Analitza::Vector*>(args.first().tree()) : 0; +    const Analitza::Vector *v = \
byvector? static_cast<const Analitza::Vector*>(args.first().tree()) : nullptr;  
     if (byvector) nargs = v->size();
     
diff --git a/analitza/container.cpp b/analitza/container.cpp
index 941c7c74..12db3a65 100644
--- a/analitza/container.cpp
+++ b/analitza/container.cpp
@@ -183,7 +183,7 @@ const Container* Container::extractType(Container::ContainerType \
t) const  if(c->isContainer() && c->containerType()==t)
             return c;
     }
-    return 0;
+    return nullptr;
 }
 
 void Container::appendBranch(Object* o)
diff --git a/analitza/expression.cpp b/analitza/expression.cpp
index 23a393d6..e1442f3c 100644
--- a/analitza/expression.cpp
+++ b/analitza/expression.cpp
@@ -63,7 +63,7 @@ public:
                 } else {
 //                     delete ob;
                     delete v;
-                    return 0;
+                    return nullptr;
                 }
             }
             n = n.nextSibling();
@@ -77,7 +77,7 @@ public:
 };
 
 Expression::Expression()
-    : d(new ExpressionPrivate(0))
+    : d(new ExpressionPrivate(nullptr))
 {}
 
 Expression::Expression(Object * o)
@@ -85,13 +85,13 @@ Expression::Expression(Object * o)
 {}
 
 Expression::Expression(const Cn & e)
-    : d(new ExpressionPrivate(0))
+    : d(new ExpressionPrivate(nullptr))
 {
     d->m_tree = new Cn(e);
 }
 
 Expression::Expression(const Expression & e)
-    : d(new ExpressionPrivate(0))
+    : d(new ExpressionPrivate(nullptr))
 {
     d->m_err=e.d->m_err;
     if(e.isCorrect() && e.d->m_tree)
@@ -99,7 +99,7 @@ Expression::Expression(const Expression & e)
 }
 
 Expression::Expression(const QString & exp, bool mathml)
-    : d(new ExpressionPrivate(0))
+    : d(new ExpressionPrivate(nullptr))
 {
     if(mathml)
         setMathML(exp);
@@ -121,7 +121,7 @@ Expression Expression::operator=(const Expression & e)
         if(e.d->m_tree)
             d->m_tree = e.d->m_tree->copy();
         else
-            d->m_tree=0;
+            d->m_tree=nullptr;
         
         d->m_err = e.d->m_err;
     }
@@ -132,7 +132,7 @@ bool Expression::setText(const QString & exp)
 {
     if(exp.isEmpty()) {
         delete d->m_tree;
-        d->m_tree = 0;
+        d->m_tree = nullptr;
         return true;
     }
     d->m_err.clear();
@@ -307,7 +307,7 @@ bool Expression::ExpressionPrivate::canAdd(const Object* where, \
const Object* br  return correct;
 }
 
-static void variableDepth(Object* o, int& next, const QMap<QString, int>& scope, \
const Object* parent=0) +static void variableDepth(Object* o, int& next, const \
QMap<QString, int>& scope, const Object* parent=nullptr)  {
     Q_ASSERT(o);
     switch(o->type()) {
@@ -430,7 +430,7 @@ bool Expression::setMathML(const QString & s)
 Object* Expression::ExpressionPrivate::branch(const QDomElement& elem)
 {
     Cn *num; Operator *op;
-    Object* ret=0;
+    Object* ret=nullptr;
     
     if(elem.tagName()==QLatin1String("cs"))
         ret=listFromString(elem.text());
@@ -443,7 +443,7 @@ Object* Expression::ExpressionPrivate::branch(const QDomElement& \
elem)  
                 if(c && !check(c)) {
                     delete c;
-                    c=0;
+                    c=nullptr;
                 }
                 ret = c;
             } else
@@ -499,7 +499,7 @@ Object* Expression::ExpressionPrivate::branch(const QDomElement& \
elem)  Apply *a=addElements<Apply>(new Apply, &elem);
             if(a && !check(a)) {
                 delete a;
-                a=0;
+                a=nullptr;
             }
             ret=a;
         }    break;
@@ -577,7 +577,7 @@ bool Expression::operator!=(const Expression& e) const
 void Expression::clear()
 {
     delete d->m_tree;
-    d->m_tree=0;
+    d->m_tree=nullptr;
     d->m_err.clear();
 }
 
diff --git a/analitza/expressiontable.cpp b/analitza/expressiontable.cpp
index f7cf4986..c4986c38 100644
--- a/analitza/expressiontable.cpp
+++ b/analitza/expressiontable.cpp
@@ -5,7 +5,7 @@ const char *const ExpressionTable::spell [] = {
   "end of file", "+", "-", "*", ":=", "..", "/", "^", " ²", "identifier", 
   "->", "?", ",", "(", ")", "{", "}", "[", "]", "|", 
   "value", "=", "<", ">", ">=", "<=", "!=", ":", "@", "//Comment//", 
-  "abc", 0, 0, 
+  "abc", nullptr, nullptr, 
 #ifndef QLALR_NO_EXPRESSIONTABLE_DEBUG_INFO
 "Program", "Declaration", "Expression", "Id", "String", "Number", "UniPow", 
   "Value", "PrimaryExpression", "BlockExpression", "SubscriptExpression", \
"PrimaryExpressionExt", "FunctionCall", "FunctionId", "FBody", "PipedCall", \
                "LambdaExpression", 
diff --git a/analitza/importqobjectmetatype.cpp b/analitza/importqobjectmetatype.cpp
index 5e1526a8..cf9d5032 100644
--- a/analitza/importqobjectmetatype.cpp
+++ b/analitza/importqobjectmetatype.cpp
@@ -100,7 +100,7 @@ class QObjectCastToParent : public Analitza::FunctionDefinition
         virtual Expression operator()(const QList< Expression >& args) override
         {
             QObject* o=args.first().customObjectValue().value<QObject*>();
-            return Expression::constructCustomObject(qVariantFromValue<QObject*>(o), \
0); +            return \
Expression::constructCustomObject(qVariantFromValue<QObject*>(o), nullptr);  }
         
         ExpressionType type() const
diff --git a/analitza/mathmlpresentationexpressionwriter.cpp \
b/analitza/mathmlpresentationexpressionwriter.cpp index 328f55ea..4c634d4e 100644
--- a/analitza/mathmlpresentationexpressionwriter.cpp
+++ b/analitza/mathmlpresentationexpressionwriter.cpp
@@ -159,30 +159,30 @@ const char *_log10="<msub><mo>log</mo><mn>10</mn></msub>", \
*logE="<msub><mo>log<  }
 
 MathMLPresentationExpressionWriter::operatorToString
-    MathMLPresentationExpressionWriter::m_operatorToPresentation[] = { 0,
+    MathMLPresentationExpressionWriter::m_operatorToPresentation[] = { nullptr,
             joinOp<&plus>, joinOp<&times>,
             minus, divide, quotient,
             power, root, postfix<&factorial>,
             joinOp<&_and>,joinOp<&_or>,joinOp<&_xor>, prefix<&_not>,
-            0,0,0,0,//gcd, lcm, rem, factorof,
-            0,0,//max, min,
+            nullptr,nullptr,nullptr,nullptr,//gcd, lcm, rem, factorof,
+            nullptr,nullptr,//max, min,
             joinOp<&lt>, joinOp<&gt>,
             joinOp<&equal>,
             joinOp<&neq>, joinOp<&leq>, joinOp<&geq>, joinOp<&implies>,
             joinOp<&approx>, infix<&mabs, &mabs>, infix<&lfloor, &rfloor>, \
infix<&lceil, &rceil>,  // approx, abs, floor, ceiling,
-            0,0,0,// sin, cos, tan,
-            0,0,0,// sec, csc, cot,
-            0,0,0,// sinh, cosh, tanh,
-            0,0,0,// sech, csch, coth,
-            0,0,0,// arcsin, arccos, arctan,
-            0,// arccot,// arccoth,
-            0,0,0,// arccosh, arccsc, arccsch,
-            0,0,0,0,// arcsec, arcsech, arcsinh, arctanh,
+            nullptr,nullptr,nullptr,// sin, cos, tan,
+            nullptr,nullptr,nullptr,// sec, csc, cot,
+            nullptr,nullptr,nullptr,// sinh, cosh, tanh,
+            nullptr,nullptr,nullptr,// sech, csch, coth,
+            nullptr,nullptr,nullptr,// arcsin, arccos, arctan,
+            nullptr,// arccot,// arccoth,
+            nullptr,nullptr,nullptr,// arccosh, arccsc, arccsch,
+            nullptr,nullptr,nullptr,nullptr,// arcsec, arcsech, arcsinh, arctanh,
             exp, prefixOp<&_log10>, prefixOp<&logE>,// exp, ln, log,
-            0,0,0,0,// //             conjugate, arg, real, imaginary,
+            nullptr,nullptr,nullptr,nullptr,// //             conjugate, arg, real, \
imaginary,  sum, product, diff,// sum, product, diff,
-            prefix<&cardinal>, joinOp<&scalarproduct>, selector, 0,
+            prefix<&cardinal>, joinOp<&scalarproduct>, selector, nullptr,
             function // function
     };
 
@@ -318,7 +318,7 @@ QVariant \
Analitza::MathMLPresentationExpressionWriter::visit(const Analitza::App  
     operatorToString call=m_operatorToPresentation[op.operatorType()];
     
-    if(call!=0) {
+    if(call!=nullptr) {
         ret = call(a, this);
     } else if(op.operatorType()!=0) {
         QString bvars;
diff --git a/analitza/operations.cpp b/analitza/operations.cpp
index bd69abc2..8d84c856 100644
--- a/analitza/operations.cpp
+++ b/analitza/operations.cpp
@@ -488,7 +488,7 @@ Object * Operations::reduceValueVector(Operator::OperatorType op, \
Cn * oper, Vec  case Operator::selector: {
             int select=oper->intValue();
             delete oper;
-            Object* ret=0;
+            Object* ret=nullptr;
             if(select<1 || (select-1) >= v1->size()) {
                 *correct=new QString(QCoreApplication::tr("Invalid index for a \
container"));  ret=new None();
@@ -538,7 +538,7 @@ Object * Operations::reduceVectorVector(Operator::OperatorType \
op, Vector * v1,  
 Object* Operations::reduceMatrixVector(Operator::OperatorType op, Matrix* matrix, \
Vector* vector, QString** correct)  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     if (op == Operator::times) {
         if (matrix->hasOnlyNumbers() && vector->hasOnlyNumbers()) {
             const int maxk = matrix->columnCount();
@@ -575,7 +575,7 @@ Object* Operations::reduceMatrixVector(Operator::OperatorType op, \
Matrix* matrix  
 Object* Operations::reduceUnaryVector(Operator::OperatorType op, Vector* c, \
QString** correct)  {
-    Object *ret=0;
+    Object *ret=nullptr;
     switch(op) {
         case Operator::card:
             ret=new Cn(c->size());
@@ -604,7 +604,7 @@ Object* Operations::reduceUnaryVector(Operator::OperatorType op, \
Vector* c, QStr  
 Object* Operations::reduceListList(Operator::OperatorType op, List* l1, List* l2, \
QString** correct)  {
-    Object* ret=0;
+    Object* ret=nullptr;
     switch(op) {
         case Operator::_union: {
             List::iterator itEnd=l2->end();
@@ -626,7 +626,7 @@ Object* Operations::reduceListList(Operator::OperatorType op, \
List* l1, List* l2  
 Object* Operations::reduceUnaryList(Operator::OperatorType op, List* l, QString** \
correct)  {
-    Object *ret=0;
+    Object *ret=nullptr;
     switch(op) {
         case Operator::card:
             ret=new Cn(l->size());
@@ -645,13 +645,13 @@ Object* Operations::reduceValueList(Operator::OperatorType op, \
Cn* oper, List* v  switch(op) {
         case Operator::selector: {
             int select=oper->intValue();
-            Object* ret=0;
+            Object* ret=nullptr;
             if(select<1 || (select-1) >= v1->size()) {
                 *correct=new QString(QCoreApplication::tr("Invalid index for a \
container"));  ret=new None();
             } else {
                 ret=v1->at(select-1);
-                v1->setAt(select-1, 0);
+                v1->setAt(select-1, nullptr);
             }
             delete oper;
             return ret;
@@ -659,7 +659,7 @@ Object* Operations::reduceValueList(Operator::OperatorType op, \
Cn* oper, List* v  default:
             break;
     }
-    return 0;
+    return nullptr;
 }
 
 Object* Operations::reduceCustomCustom(Operator::OperatorType op, CustomObject* v1, \
CustomObject* v2, QString** ) @@ -674,12 +674,12 @@ Object* \
Operations::reduceCustomCustom(Operator::OperatorType op, CustomObject*  }
     
     Q_ASSERT(false && "not implemented, please report");
-    return 0;
+    return nullptr;
 }
 
 Object* Operations::reduceVectorMatrix(Operator::OperatorType op, Vector* vector, \
Matrix* matrix, QString** correct)  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     if (op == Operator::times) {
         if (vector->hasOnlyNumbers() && matrix->hasOnlyNumbers()) {
             if (1 == matrix->rowCount()) {
@@ -712,7 +712,7 @@ Object* Operations::reduceVectorMatrix(Operator::OperatorType op, \
Vector* vector  
 Object* Operations::reduceMatrixMatrix(Operator::OperatorType op, Matrix* m1, \
Matrix* m2, QString** correct)  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     switch(op) {
         //TODO see if we can use here and or xor for matrix too
         case Operator::plus:
@@ -774,7 +774,7 @@ Object* Operations::reduceMatrixMatrix(Operator::OperatorType op, \
Matrix* m1, Ma  
 Object* Operations::reduceValueMatrix(Operator::OperatorType op, Cn* v, Matrix* m1, \
QString** correct)  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     switch(op) {
         case Operator::selector: {
             int select=v->intValue();
@@ -786,7 +786,7 @@ Object* Operations::reduceValueMatrix(Operator::OperatorType op, \
Cn* v, Matrix*  Vector* nv = new Vector(row->size());
                 for(Vector::iterator it=row->begin(); it!=row->end(); ++it) {
                     nv->appendBranch((*it));
-                    *it = 0;
+                    *it = nullptr;
                 }
                 ret = nv;
             }
@@ -811,7 +811,7 @@ Object* Operations::reduceValueMatrix(Operator::OperatorType op, \
Cn* v, Matrix*  
 Object* Operations::reduceMatrixValue(Operator::OperatorType op, Matrix* matrix, Cn* \
value, QString** correct)  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     switch(op) {
         case Operator::power: {
             if (matrix->hasOnlyNumbers()) {
@@ -895,7 +895,7 @@ Object* Operations::reduceMatrixValue(Operator::OperatorType op, \
Matrix* matrix,  
 Object* Operations::reduceUnaryMatrix(Operator::OperatorType op, Matrix* m, \
QString** )  {
-    Object* ret = 0;
+    Object* ret = nullptr;
     switch(op) {
         case Operator::transpose: {
             int sizeA = m->rowCount(), sizeB = \
static_cast<MatrixRow*>(*m->constBegin())->size(); @@ -1122,17 +1122,17 @@ \
QList<ExpressionType> Operations::inferUnary(Operator::OperatorType op)  }
 
 Operations::BinaryOp Operations::opsBinary[Object::custom+1][Object::custom+1] = {
-    {0,(Operations::BinaryOp) reduceNoneValue,0,0,0,0,0,0,(Operations::BinaryOp) \
                reduceNoneMatrix,0,0},
-    {(Operations::BinaryOp) reduceValueNone, (Operations::BinaryOp) \
reduceValueValue, 0, (Operations::BinaryOp) reduceValueVector, (Operations::BinaryOp) \
                reduceValueList,0,0,0,(Operations::BinaryOp) reduceValueMatrix,0},
-    {0,0,0,0,0,0,0,0,0,0,0},
-    {0, (Operations::BinaryOp) reduceVectorValue, 0, (Operations::BinaryOp) \
                reduceVectorVector, 0,0,0,0,(Operations::BinaryOp) \
                reduceVectorMatrix,0,0},
-    {0, 0, 0,0, (Operations::BinaryOp) reduceListList, 0,0,0,0,0},
-    {0,0,0,0,0,0,0,0,0,0,0},
-    {0,0,0,0,0,0,0,0,0,0,0},
-    {0,0,0,0,0,0,0,0,0,0,0},
-    {(Operations::BinaryOp) reduceMatrixNone, (Operations::BinaryOp) \
reduceMatrixValue,0, (Operations::BinaryOp) reduceMatrixVector,0,0,0,0, \
                (Operations::BinaryOp) reduceMatrixMatrix,0,0},
-    {0,0,0,0,0,0,0,0,0,0,0},
-    {0,0,0,0,0,0,0,0,0,0,(Operations::BinaryOp) reduceCustomCustom}
+    {nullptr,(Operations::BinaryOp) \
reduceNoneValue,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,(Operations::BinaryOp) \
reduceNoneMatrix,nullptr,nullptr}, +    {(Operations::BinaryOp) reduceValueNone, \
(Operations::BinaryOp) reduceValueValue, nullptr, (Operations::BinaryOp) \
reduceValueVector, (Operations::BinaryOp) \
reduceValueList,nullptr,nullptr,nullptr,(Operations::BinaryOp) \
reduceValueMatrix,nullptr}, +    \
{nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr},
 +    {nullptr, (Operations::BinaryOp) reduceVectorValue, nullptr, \
(Operations::BinaryOp) reduceVectorVector, \
nullptr,nullptr,nullptr,nullptr,(Operations::BinaryOp) \
reduceVectorMatrix,nullptr,nullptr}, +    {nullptr, nullptr, nullptr,nullptr, \
(Operations::BinaryOp) reduceListList, nullptr,nullptr,nullptr,nullptr,nullptr}, +    \
{nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr},
 +    {nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr},
 +    {nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr},
 +    {(Operations::BinaryOp) reduceMatrixNone, (Operations::BinaryOp) \
reduceMatrixValue,nullptr, (Operations::BinaryOp) \
reduceMatrixVector,nullptr,nullptr,nullptr,nullptr, (Operations::BinaryOp) \
reduceMatrixMatrix,nullptr,nullptr}, +    \
{nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr},
 +    {nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,nullptr,(Operations::BinaryOp) \
reduceCustomCustom}  };
 
 Object * Operations::reduce(Operator::OperatorType op, Object * val1, Object * val2, \
QString** correct) @@ -1145,14 +1145,14 @@ Object * \
Operations::reduce(Operator::OperatorType op, Object * val1, Object * v  }
 
 Operations::UnaryOp Operations::opsUnary[] = {
-    0,
+    nullptr,
     (Operations::UnaryOp) Operations::reduceUnaryValue,
-    0, //variable
+    nullptr, //variable
     (Operations::UnaryOp) Operations::reduceUnaryVector,
     (Operations::UnaryOp) Operations::reduceUnaryList,
-    0, //apply
-    0, //oper
-    0, //container
+    nullptr, //apply
+    nullptr, //oper
+    nullptr, //container
     (Operations::UnaryOp) Operations::reduceUnaryMatrix
 };
 
diff --git a/analitza/polynomial.cpp b/analitza/polynomial.cpp
index 4a07c0f2..4b312a4a 100644
--- a/analitza/polynomial.cpp
+++ b/analitza/polynomial.cpp
@@ -72,7 +72,7 @@ Object* Monomial::createMono(const Operator& o) const
 {
     Operator::OperatorType mult = o.multiplicityOperator();
     
-    Object* toAdd=0;
+    Object* toAdd=nullptr;
     if(first==0.)
         delete second;
     else if(first==1.)
@@ -126,7 +126,7 @@ Monomial::Monomial(const Operator& o, Object* o2, bool& sign)
                     first = sc->value();
                     second = cx->m_params[var];
                     
-                    cx->m_params[var]=0;
+                    cx->m_params[var]=nullptr;
                     delete cx;
                     
                     ismono=true;
@@ -156,7 +156,7 @@ Monomial::Monomial(const Operator& o, Object* o2, bool& sign)
             }
         } else if(cx->firstOperator()==Operator::minus && cx->isUnary()) {
             *this = Monomial(o, *cx->firstValue(), sign);
-            *cx->firstValue()=0;
+            *cx->firstValue()=nullptr;
             delete cx;
             ismono=true;
                 
@@ -270,7 +270,7 @@ void Polynomial::addMonomial(const Monomial& m)
 
 void Polynomial::simpScalars(bool firstValue)
 {
-    Object *value=0;
+    Object *value=nullptr;
     if(!firstValue && m_operator==Operator::minus && !m_scalars.isEmpty())
         m_scalars.first() = negateObject(m_scalars.first());
 
@@ -279,7 +279,7 @@ void Polynomial::simpScalars(bool firstValue)
         
         Object* aux = simpExpression(*i);
         if(value) {
-            QString* err=0;
+            QString* err=nullptr;
             value=Operations::reduce(m_operator.operatorType(), value, aux, &err);
             d=err;
             delete err;
@@ -288,7 +288,7 @@ void Polynomial::simpScalars(bool firstValue)
         
         if(d) {
             addValue(aux);
-            value=0;
+            value=nullptr;
         }
     }
     
@@ -319,7 +319,7 @@ void Polynomial::addValue(Object* value)
 
 Object* Polynomial::toObject()
 {
-    Object* root = 0;
+    Object* root = nullptr;
     if(count()==1) {
         root = first().createMono(m_operator);
     } else if(count()>1) {
diff --git a/analitza/providederivative.cpp b/analitza/providederivative.cpp
index 915fc32f..a88a40ea 100644
--- a/analitza/providederivative.cpp
+++ b/analitza/providederivative.cpp
@@ -82,7 +82,7 @@ Object* ProvideDerivative::walkApply(const Apply* a)
                 return ret;
             }
         }
-        Object* ret = 0;
+        Object* ret = nullptr;
         if(val->isApply()) ret=derivativeApply(static_cast<Apply*>(val));
         else if(val->isContainer()) \
                ret=derivativeContainer(static_cast<Container*>(val));
         else if(val->type()==Object::list) ret=derivateContentList(static_cast<const \
List*>(val)); @@ -158,7 +158,7 @@ Object* ProvideDerivative::derivativeApply(const \
Apply* c)  default:
             break;
     }
-    return 0;
+    return nullptr;
 }
 
 Object* ProvideDerivative::derivativeContainer(const Container *c)
@@ -195,7 +195,7 @@ Object* ProvideDerivative::derivativeContainer(const Container \
*c)  
         return cret;
     }
-    return 0;
+    return nullptr;
 }
 
 Apply* ProvideDerivative::makeDiff(Object* o) const
@@ -210,6 +210,6 @@ Apply* ProvideDerivative::makeDiff(Object* o) const
 
 void ProvideDerivative::clearDiff(Apply* a)
 {
-    *a->firstValue()=0;
+    *a->firstValue()=nullptr;
     delete a;
 }
diff --git a/analitza/tests/analitzatest.h b/analitza/tests/analitzatest.h
index 016ca7c4..d73de352 100644
--- a/analitza/tests/analitzatest.h
+++ b/analitza/tests/analitzatest.h
@@ -30,7 +30,7 @@ class AnalitzaTest : public QObject
 {
 Q_OBJECT
     public:
-        AnalitzaTest(QObject *parent = 0);
+        AnalitzaTest(QObject *parent = nullptr);
         ~AnalitzaTest();
     
     private Q_SLOTS:
diff --git a/analitza/tests/builtintest.cpp b/analitza/tests/builtintest.cpp
index ac537d20..583fe2bd 100644
--- a/analitza/tests/builtintest.cpp
+++ b/analitza/tests/builtintest.cpp
@@ -62,7 +62,7 @@ class VehicleConstructor : public Analitza::FunctionDefinition
 {
     virtual Expression operator()(const QList< Expression >& args) override
     {
-        return Expression::constructCustomObject(QVariant(args.first().toReal().intValue()),0);
 +        return Expression::constructCustomObject(QVariant(args.first().toReal().intValue()),nullptr);
  }
 };
 
diff --git a/analitza/tests/builtintest.h b/analitza/tests/builtintest.h
index 0376595e..cb5aeaa6 100644
--- a/analitza/tests/builtintest.h
+++ b/analitza/tests/builtintest.h
@@ -27,7 +27,7 @@ class BuiltInTest : public QObject
 {
     Q_OBJECT
     public:
-        BuiltInTest(QObject* parent = 0);
+        BuiltInTest(QObject* parent = nullptr);
         ~BuiltInTest();
         
     private Q_SLOTS:
diff --git a/analitza/tests/commandstest.h b/analitza/tests/commandstest.h
index 864f6ffd..98145cdf 100644
--- a/analitza/tests/commandstest.h
+++ b/analitza/tests/commandstest.h
@@ -30,7 +30,7 @@ class CommandsTest : public QObject
 {
 Q_OBJECT
     public:
-        CommandsTest(QObject *parent = 0);
+        CommandsTest(QObject *parent = nullptr);
         ~CommandsTest();
     
     private Q_SLOTS:
diff --git a/analitza/tests/expressiontest.h b/analitza/tests/expressiontest.h
index 06136af5..50dc47d0 100644
--- a/analitza/tests/expressiontest.h
+++ b/analitza/tests/expressiontest.h
@@ -30,7 +30,7 @@ class ExpressionTest : public QObject
 {
 Q_OBJECT
     public:
-        ExpressionTest(QObject *parent = 0);
+        ExpressionTest(QObject *parent = nullptr);
         ~ExpressionTest();
     
     private Q_SLOTS:
diff --git a/analitza/tests/exptest.h b/analitza/tests/exptest.h
index eb914255..d37ca32c 100644
--- a/analitza/tests/exptest.h
+++ b/analitza/tests/exptest.h
@@ -29,7 +29,7 @@ class ExpTest : public QObject
 {
 Q_OBJECT
     public:
-        ExpTest(QObject *parent = 0);
+        ExpTest(QObject *parent = nullptr);
         ~ExpTest();
     
     private Q_SLOTS:
diff --git a/analitza/tests/matchingtest.cpp b/analitza/tests/matchingtest.cpp
index 96efb659..01022933 100644
--- a/analitza/tests/matchingtest.cpp
+++ b/analitza/tests/matchingtest.cpp
@@ -74,7 +74,7 @@ void MatchingTest::testCompareTrees()
     
     QStringList keys=outs.keys();
     foreach(const QString& key, keys) {
-        QVERIFY(outFunc.value(key)!=0);
+        QVERIFY(outFunc.value(key)!=nullptr);
         QCOMPARE(outs[key], outFunc[key]->toString());
     }
 }
diff --git a/analitza/tests/mathmlpresentationtest.h \
b/analitza/tests/mathmlpresentationtest.h index fcbecb23..1ad407d5 100644
--- a/analitza/tests/mathmlpresentationtest.h
+++ b/analitza/tests/mathmlpresentationtest.h
@@ -29,7 +29,7 @@ class MathMLPresentationTest : public QObject
 {
 Q_OBJECT
     public:
-        MathMLPresentationTest(QObject *parent = 0);
+        MathMLPresentationTest(QObject *parent = nullptr);
         ~MathMLPresentationTest();
     
     private Q_SLOTS:
diff --git a/analitza/tests/typechecktest.h b/analitza/tests/typechecktest.h
index 678e2a0a..f72a200c 100644
--- a/analitza/tests/typechecktest.h
+++ b/analitza/tests/typechecktest.h
@@ -27,7 +27,7 @@ class TypeCheckTest : public QObject
 {
     Q_OBJECT
     public:
-        TypeCheckTest(QObject* parent = 0);
+        TypeCheckTest(QObject* parent = nullptr);
         ~TypeCheckTest();
         
     private Q_SLOTS:
diff --git a/analitza/transformation.cpp b/analitza/transformation.cpp
index 1f879714..5cfea0a9 100644
--- a/analitza/transformation.cpp
+++ b/analitza/transformation.cpp
@@ -55,7 +55,7 @@ Analitza::Object* Transformation::applyTransformation(const \
Analitza::Object* in  return obj;
         }
     }
-    return 0;
+    return nullptr;
 }
 
 const Object* Transformation::parse(const QString& exp)
@@ -64,7 +64,7 @@ const Object* Transformation::parse(const QString& exp)
 //     if(!e.isCorrect()) qDebug() << "lelele" << exp << e.error();
     Q_ASSERT(e.isCorrect());
     Object* tree = e.tree();
-    e.setTree(0);
+    e.setTree(nullptr);
     
     //We remove the math node
     Container* root = static_cast<Container*>(tree);
diff --git a/analitza/value.cpp b/analitza/value.cpp
index 9b691425..f7c544f8 100644
--- a/analitza/value.cpp
+++ b/analitza/value.cpp
@@ -53,7 +53,7 @@ bool Cn::setValue(const QDomElement& val)
         if(val.attribute(QStringLiteral("type"), QStringLiteral("integer")) == \
                QLatin1String("real")) {
             m_value= val.text().trimmed().toDouble(&wrong); //TODO: Base on double \
                not implemented
         } else if(val.attribute(QStringLiteral("type"), QStringLiteral("integer")) \
                == QLatin1String("integer")){
-            int base = val.attribute(QStringLiteral("base"), \
QStringLiteral("10")).toInt(NULL, 10); +            int base = \
val.attribute(QStringLiteral("base"), QStringLiteral("10")).toInt(nullptr, 10);  \
m_value= val.text().trimmed().toInt(&wrong, base);  m_format=Integer;
         }
diff --git a/analitzagui/algebrahighlighter.h b/analitzagui/algebrahighlighter.h
index 86d3aff4..898b862d 100644
--- a/analitzagui/algebrahighlighter.h
+++ b/analitzagui/algebrahighlighter.h
@@ -40,7 +40,7 @@ class ANALITZAGUI_EXPORT AlgebraHighlighter : public \
QSyntaxHighlighter  } Mode;
         
         /** Constructor. Creates an AlgebraHighlighter from a QTextDocument @p doc. \
                */
-        explicit AlgebraHighlighter(QTextDocument *doc, const Analitza::Analyzer* \
na=0); +        explicit AlgebraHighlighter(QTextDocument *doc, const \
                Analitza::Analyzer* na=nullptr);
         //int highlightParagraph(const QString &text, int endStateOfLastPara);
         
         /** Returns the currently highlight mode. */
diff --git a/analitzagui/operatorsmodel.cpp b/analitzagui/operatorsmodel.cpp
index 1482f004..6a753186 100644
--- a/analitzagui/operatorsmodel.cpp
+++ b/analitzagui/operatorsmodel.cpp
@@ -24,7 +24,7 @@
 
 using Analitza::Operator;
 
-OperatorsModel::OperatorsModel(QObject *parent) : QAbstractTableModel(parent), \
m_vars(0) +OperatorsModel::OperatorsModel(QObject *parent) : \
QAbstractTableModel(parent), m_vars(nullptr)  {
 }
 
diff --git a/analitzagui/operatorsmodel.h b/analitzagui/operatorsmodel.h
index 5edde7c2..52344cf4 100644
--- a/analitzagui/operatorsmodel.h
+++ b/analitzagui/operatorsmodel.h
@@ -41,7 +41,7 @@ class ANALITZAGUI_EXPORT OperatorsModel : public \
QAbstractTableModel  };
 
         /** Constructor. Creates a new Operator Model. */
-        explicit OperatorsModel(QObject *parent=0);
+        explicit OperatorsModel(QObject *parent=nullptr);
         
         /** Returns the description of the @p o operator. */
         static QString description(const Analitza::Operator& o);
diff --git a/analitzagui/tests/operatorsmodeltest.h \
b/analitzagui/tests/operatorsmodeltest.h index ac487c7e..9a4e8994 100644
--- a/analitzagui/tests/operatorsmodeltest.h
+++ b/analitzagui/tests/operatorsmodeltest.h
@@ -30,7 +30,7 @@ class OperatorsModelTest : public QObject
 {
     Q_OBJECT
     public:
-        OperatorsModelTest(QObject *parent = 0);
+        OperatorsModelTest(QObject *parent = nullptr);
         ~OperatorsModelTest();
     
     private Q_SLOTS:
diff --git a/analitzagui/variablesmodel.cpp b/analitzagui/variablesmodel.cpp
index ebbbd7cc..cb28b770 100644
--- a/analitzagui/variablesmodel.cpp
+++ b/analitzagui/variablesmodel.cpp
@@ -31,7 +31,7 @@ VariablesModel::VariablesModel(const QSharedPointer<Variables>& v, \
QObject *pare  {}
 
 VariablesModel::VariablesModel(QObject* parent)
-    : QAbstractTableModel(parent), m_vars(0), m_editable(true)
+    : QAbstractTableModel(parent), m_vars(nullptr), m_editable(true)
 {}
 
 void VariablesModel::setVariables(const QSharedPointer<Variables> &v)
diff --git a/analitzagui/variablesmodel.h b/analitzagui/variablesmodel.h
index 11306824..33e6d00e 100644
--- a/analitzagui/variablesmodel.h
+++ b/analitzagui/variablesmodel.h
@@ -42,7 +42,7 @@ class ANALITZAGUI_EXPORT VariablesModel : public \
                QAbstractTableModel
     Q_PROPERTY(QSharedPointer<Analitza::Variables> variables READ variables WRITE \
setVariables)  public:
         /** Constructor. Creates a new Variable Model. */
-        explicit VariablesModel(QObject *parent=0);
+        explicit VariablesModel(QObject *parent=nullptr);
         VariablesModel(const QSharedPointer<Analitza::Variables> &v, QObject *parent \
= nullptr);  void setVariables(const QSharedPointer<Analitza::Variables> &v);
         
diff --git a/analitzaplot/plotitem.cpp b/analitzaplot/plotitem.cpp
index 3049ca3e..0dcfe0ce 100644
--- a/analitzaplot/plotitem.cpp
+++ b/analitzaplot/plotitem.cpp
@@ -26,7 +26,7 @@ PlotItem::PlotItem(const QString &n, const QColor& col)
     : m_name(n)
     , m_color(col)
     , m_graphVisible(true)
-    , m_model(0)
+    , m_model(nullptr)
 {}
 
 PlotItem::~PlotItem()
diff --git a/analitzaplot/plotsdictionarymodel.h \
b/analitzaplot/plotsdictionarymodel.h index 1957f411..69ce7cf9 100644
--- a/analitzaplot/plotsdictionarymodel.h
+++ b/analitzaplot/plotsdictionarymodel.h
@@ -36,7 +36,7 @@ class ANALITZAPLOT_EXPORT PlotsDictionaryModel : public \
QStandardItemModel  Q_OBJECT
 public:
     enum Roles { ExpressionRole = Qt::UserRole+1, FileRole };
-    PlotsDictionaryModel(QObject* parent = 0);
+    PlotsDictionaryModel(QObject* parent = nullptr);
     ~PlotsDictionaryModel();
     
     int currentRow() const;
diff --git a/analitzaplot/plotsmodel.cpp b/analitzaplot/plotsmodel.cpp
index 2cf7604b..e26ed3bc 100644
--- a/analitzaplot/plotsmodel.cpp
+++ b/analitzaplot/plotsmodel.cpp
@@ -64,7 +64,7 @@ Qt::ItemFlags PlotsModel::flags(const QModelIndex & index) const
     if(index.isValid())
         return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable | \
Qt::ItemIsEditable;  else
-        return 0;
+        return nullptr;
 }
 
 QVariant PlotsModel::headerData(int section, Qt::Orientation orientation, int role) \
                const
diff --git a/analitzaplot/plotsmodel.h b/analitzaplot/plotsmodel.h
index 9a3a7633..c00eb1c4 100644
--- a/analitzaplot/plotsmodel.h
+++ b/analitzaplot/plotsmodel.h
@@ -52,7 +52,7 @@ public:
         DescriptionRole
     };
     
-    PlotsModel(QObject * parent = 0);
+    PlotsModel(QObject * parent = nullptr);
     virtual ~PlotsModel();
 
     virtual Qt::ItemFlags flags(const QModelIndex & index) const override;
diff --git a/analitzaplot/plotter2d.cpp b/analitzaplot/plotter2d.cpp
index c4e792bc..c755b04c 100644
--- a/analitzaplot/plotter2d.cpp
+++ b/analitzaplot/plotter2d.cpp
@@ -75,7 +75,7 @@ Plotter2D::Plotter2D(const QSizeF& size)
     , m_keepRatio(true)
     , m_dirty(true)
     , m_size(size)
-    , m_model(0)
+    , m_model(nullptr)
     , m_angleMode(Radian)
     , m_scaleMode(Linear)
     , m_showTicks(Qt::Vertical|Qt::Horizontal)
@@ -692,17 +692,17 @@ void Plotter2D::drawSquares(QPainter* painter, const GridInfo& \
gridinfo, GridSty  PlotItem* Plotter2D::itemAt(int row) const
 {
     if (!m_model)
-        return 0;
+        return nullptr;
     
     QModelIndex pi = m_model->index(row, 0);
 
     if (!pi.isValid())
-        return 0;
+        return nullptr;
 
     PlotItem* plot = pi.data(PlotsModel::PlotRole).value<PlotItem*>();
 
     if (plot->spaceDimension() != Dim2D)
-        return 0;
+        return nullptr;
 
     return plot;
 }
diff --git a/analitzaplot/plotter3d_es.cpp b/analitzaplot/plotter3d_es.cpp
index 28ef4109..14f85013 100644
--- a/analitzaplot/plotter3d_es.cpp
+++ b/analitzaplot/plotter3d_es.cpp
@@ -387,12 +387,12 @@ PlotItem* Plotter3DES::itemAt(int row) const
     QModelIndex pi = m_model->index(row, 0);
 
     if (!pi.isValid())
-        return 0;
+        return nullptr;
 
     PlotItem* plot = pi.data(PlotsModel::PlotRole).value<PlotItem*>();
 
     if (plot->spaceDimension() != Dim3D)
-        return 0;
+        return nullptr;
 
     return plot;
 }
diff --git a/analitzaplot/plotter3d_es.h b/analitzaplot/plotter3d_es.h
index fdcde691..9b8e33fe 100644
--- a/analitzaplot/plotter3d_es.h
+++ b/analitzaplot/plotter3d_es.h
@@ -59,7 +59,7 @@ class ANALITZAPLOT_EXPORT Plotter3DES : private QOpenGLFunctions
         //TODO transparency effect when select current item
 //         enum FocusEffect {};
 
-        Plotter3DES(QAbstractItemModel* model = 0);
+        Plotter3DES(QAbstractItemModel* model = nullptr);
         virtual ~Plotter3DES();
 
         virtual void initGL();
diff --git a/analitzaplot/private/functiongraphfactory.cpp \
b/analitzaplot/private/functiongraphfactory.cpp index 0d019145..036f8cb2 100644
--- a/analitzaplot/private/functiongraphfactory.cpp
+++ b/analitzaplot/private/functiongraphfactory.cpp
@@ -26,7 +26,7 @@
 
 using namespace Analitza;
 
-FunctionGraphFactory* FunctionGraphFactory::m_self=0;
+FunctionGraphFactory* FunctionGraphFactory::m_self=nullptr;
 
 QString FunctionGraphFactory::typeName(const QString& id) const
 {
diff --git a/analitzaplot/private/utils/marchingcubes.cpp \
b/analitzaplot/private/utils/marchingcubes.cpp index c7025df1..757eaf9e 100644
--- a/analitzaplot/private/utils/marchingcubes.cpp
+++ b/analitzaplot/private/utils/marchingcubes.cpp
@@ -55,16 +55,16 @@ void MarchingCubes::print_cube()
 // Constructor
 MarchingCubes::MarchingCubes(  ) :
         i_originalMC(false),
-        i_data      ((double*)NULL),
-        i_x_verts   (( int *)NULL),
-        i_y_verts   (( int *)NULL),
-        i_z_verts   (( int *)NULL),
+        i_data      ((double*)nullptr),
+        i_x_verts   (( int *)nullptr),
+        i_y_verts   (( int *)nullptr),
+        i_z_verts   (( int *)nullptr),
         i_nverts    (0),
         i_ntrigs    (0),
         i_Nverts    (0),
         i_Ntrigs    (0),
-        i_vertices  (( Vertex *)NULL),
-        i_triangles ((Triangle*)NULL)
+        i_vertices  (( Vertex *)nullptr),
+        i_triangles ((Triangle*)nullptr)
 {
 }
 //_____________________________________________________________________________
@@ -243,10 +243,10 @@ void MarchingCubes::clean_temps()
     if (i_z_verts)
         delete [] i_z_verts;
 
- i_data     = (double*)NULL ;
-    i_x_verts  = (int*)NULL ;
-    i_y_verts  = (int*)NULL ;
-    i_z_verts  = (int*)NULL ;
+ i_data     = (double*)nullptr ;
+    i_x_verts  = (int*)nullptr ;
+    i_y_verts  = (int*)nullptr ;
+    i_z_verts  = (int*)nullptr ;
 }
 //_____________________________________________________________________________
 
@@ -260,8 +260,8 @@ void MarchingCubes::clean_all()
     clean_temps() ;
     delete [] i_vertices  ;
     delete [] i_triangles ;
-    i_vertices  = (Vertex   *)NULL ;
-    i_triangles = (Triangle *)NULL ;
+    i_vertices  = (Vertex   *)nullptr ;
+    i_triangles = (Triangle *)nullptr ;
     i_nverts = i_ntrigs = 0 ;
     i_Nverts = i_Ntrigs = 0 ;
 
diff --git a/analitzaplot/private/utils/marchingcubes.h \
b/analitzaplot/private/utils/marchingcubes.h index 5c99e74d..0c7c65c0 100644
--- a/analitzaplot/private/utils/marchingcubes.h
+++ b/analitzaplot/private/utils/marchingcubes.h
@@ -118,9 +118,9 @@ public :
   /** accesses the number of triangles of the generated mesh */
   int ntrigs() const { return i_ntrigs ; }
   /** accesses a specific vertex of the generated mesh */
-  Vertex   * vert( const int i ) const { if( i < 0  || i >= i_nverts ) return ( \
Vertex *)NULL ; return i_vertices  + i ; } +  Vertex   * vert( const int i ) const { \
if( i < 0  || i >= i_nverts ) return ( Vertex *)nullptr ; return i_vertices  + i ; }  \
                /** accesses a specific triangle of the generated mesh */
-  Triangle * trig( const int i ) const { if( i < 0  || i >= i_ntrigs ) return \
(Triangle*)NULL ; return i_triangles + i ; } +  Triangle * trig( const int i ) const \
{ if( i < 0  || i >= i_ntrigs ) return (Triangle*)nullptr ; return i_triangles + i ; \
}  
   /** accesses the vertex buffer of the generated mesh */
   Vertex   *mc_vertices () { return i_vertices  ; }
diff --git a/analitzaplot/private/utils/quadtree.cpp \
b/analitzaplot/private/utils/quadtree.cpp index 8a0201e6..241b87a3 100644
--- a/analitzaplot/private/utils/quadtree.cpp
+++ b/analitzaplot/private/utils/quadtree.cpp
@@ -70,7 +70,7 @@ Quadtree::Quadtree(double largo_mundo) {
 
     root->cubo.setHalfEdge(largo_mundo/2);
     for(unsigned int i=0; i<8; i++) {
-        root->nodos[i]=NULL;
+        root->nodos[i]=nullptr;
     }
 }
 
@@ -78,7 +78,7 @@ Quadtree::Quadtree(Square cubo) {
     root = new QNode;
     root->cubo = cubo;
     for(unsigned int i=0; i<8; i++) {
-        root->nodos[i]=NULL;
+        root->nodos[i]=nullptr;
     }
 }
 Quadtree::~Quadtree() {
@@ -93,7 +93,7 @@ void Quadtree::inicializar_nodos(QNode* padre)
         padre->nodos[i] = new QNode;
         padre->nodos[i]->cubo.setHalfEdge(hhedge);
         for(unsigned int j=0; j<4; j++) {
-            padre->nodos[i]->nodos[j]=NULL;
+            padre->nodos[i]->nodos[j]=nullptr;
         }
     }
 
@@ -106,7 +106,7 @@ void Quadtree::inicializar_nodos(QNode* padre)
 }
 
 void Quadtree::borrar_rec(QNode* nodo) {
-    if(nodo == NULL) {
+    if(nodo == nullptr) {
         return;
     }
     for(unsigned int i=0; i<4; i++) {
@@ -141,6 +141,6 @@ void Quadtree::bajarNivel(QNode* nodo) {
 void Quadtree::borrarHijos(QNode* padre) {
     for(unsigned int i=0; i<4; i++) {
         borrar_rec(padre->nodos[i]);
-        padre->nodos[i] = NULL;
+        padre->nodos[i] = nullptr;
     }
 }
diff --git a/analitzaplot/tests/planecurvetest.h \
b/analitzaplot/tests/planecurvetest.h index 48cf6a7a..6b397c9d 100644
--- a/analitzaplot/tests/planecurvetest.h
+++ b/analitzaplot/tests/planecurvetest.h
@@ -32,7 +32,7 @@ class PlaneCurveTest : public QObject
 {
 Q_OBJECT
     public:
-        PlaneCurveTest(QObject *parent = 0);
+        PlaneCurveTest(QObject *parent = nullptr);
         ~PlaneCurveTest();
 
     private Q_SLOTS:
diff --git a/analitzaplot/tests/plotsdictionarymodeltest.h \
b/analitzaplot/tests/plotsdictionarymodeltest.h index eab93ee7..f09d5f3a 100644
--- a/analitzaplot/tests/plotsdictionarymodeltest.h
+++ b/analitzaplot/tests/plotsdictionarymodeltest.h
@@ -30,7 +30,7 @@ class PlotsDictionaryModelTest : public QObject
 {
 Q_OBJECT
     public:
-        PlotsDictionaryModelTest(QObject *parent = 0);
+        PlotsDictionaryModelTest(QObject *parent = nullptr);
         ~PlotsDictionaryModelTest();
 
     private Q_SLOTS:
diff --git a/analitzaplot/tests/plotsmodeltest.h \
b/analitzaplot/tests/plotsmodeltest.h index 8d09f263..6468af05 100644
--- a/analitzaplot/tests/plotsmodeltest.h
+++ b/analitzaplot/tests/plotsmodeltest.h
@@ -27,7 +27,7 @@ class PlotsModelTest : public QObject
 {
 Q_OBJECT
     public:
-        PlotsModelTest(QObject *parent = 0);
+        PlotsModelTest(QObject *parent = nullptr);
         ~PlotsModelTest();
 
     private Q_SLOTS:
diff --git a/analitzaplot/tests/spacecurvetest.h \
b/analitzaplot/tests/spacecurvetest.h index 459603fe..fde0bd0f 100644
--- a/analitzaplot/tests/spacecurvetest.h
+++ b/analitzaplot/tests/spacecurvetest.h
@@ -30,7 +30,7 @@ class SpaceCurveTest : public QObject
 {
 Q_OBJECT
     public:
-        SpaceCurveTest(QObject *parent = 0);
+        SpaceCurveTest(QObject *parent = nullptr);
         ~SpaceCurveTest();
 
     private Q_SLOTS:
diff --git a/analitzaplot/tests/surfacetest.h b/analitzaplot/tests/surfacetest.h
index 08d95980..7bb541c6 100644
--- a/analitzaplot/tests/surfacetest.h
+++ b/analitzaplot/tests/surfacetest.h
@@ -30,7 +30,7 @@ class SurfaceTest : public QObject
 {
 Q_OBJECT
     public:
-        SurfaceTest(QObject *parent = 0);
+        SurfaceTest(QObject *parent = nullptr);
         ~SurfaceTest();
 
     private Q_SLOTS:
diff --git a/analitzawidgets/expressionedit.cpp b/analitzawidgets/expressionedit.cpp
index ea2470d2..98767623 100644
--- a/analitzawidgets/expressionedit.cpp
+++ b/analitzawidgets/expressionedit.cpp
@@ -60,7 +60,7 @@ class HelpTip : public QLabel
 };
 
 ExpressionEdit::ExpressionEdit(QWidget *parent, AlgebraHighlighter::Mode inimode)
-    : QPlainTextEdit(parent), m_histPos(0), a(0), m_correct(true), \
m_ans(QStringLiteral("ans")) +    : QPlainTextEdit(parent), m_histPos(0), a(nullptr), \
m_correct(true), m_ans(QStringLiteral("ans"))  {
     this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
     this->setTabChangesFocus(true);
diff --git a/analitzawidgets/expressionedit.h b/analitzawidgets/expressionedit.h
index 7ad69cc1..1a498cff 100644
--- a/analitzawidgets/expressionedit.h
+++ b/analitzawidgets/expressionedit.h
@@ -55,7 +55,7 @@ class ANALITZAWIDGETS_EXPORT ExpressionEdit : public QPlainTextEdit
         *    @param parent is the widget parent.
         *    @param ini specifies what input format is going to expect the \
                highlighting.
         */
-        explicit ExpressionEdit(QWidget *parent = 0, AlgebraHighlighter::Mode \
ini=AlgebraHighlighter::Autodetect); +        explicit ExpressionEdit(QWidget *parent \
= nullptr, AlgebraHighlighter::Mode ini=AlgebraHighlighter::Autodetect);  
         /** Destructor. */
         ~ExpressionEdit();
diff --git a/analitzawidgets/plotsview2d.cpp b/analitzawidgets/plotsview2d.cpp
index 3e92298b..97723955 100644
--- a/analitzawidgets/plotsview2d.cpp
+++ b/analitzawidgets/plotsview2d.cpp
@@ -50,8 +50,8 @@ PlotsView2D::PlotsView2D(QWidget *parent)
     , mode(None)
     , m_framed(false)
     , m_readonly(false)
-    , m_selection(0)
-    , m_currentModel(0)
+    , m_selection(nullptr)
+    , m_currentModel(nullptr)
 {
     this->setFocusPolicy(Qt::ClickFocus);
     this->setCursor(Qt::CrossCursor);
diff --git a/analitzawidgets/plotsview2d.h b/analitzawidgets/plotsview2d.h
index acafff00..6b086b88 100644
--- a/analitzawidgets/plotsview2d.h
+++ b/analitzawidgets/plotsview2d.h
@@ -69,7 +69,7 @@ public:
     enum Format { PNG, SVG };
     
     /** Constructor. Constructs a new Graph2D. */
-    PlotsView2D(QWidget* parent = 0);
+    PlotsView2D(QWidget* parent = nullptr);
     
     ~PlotsView2D();
     
diff --git a/analitzawidgets/plotsview3d_es.cpp b/analitzawidgets/plotsview3d_es.cpp
index 397ee4d0..740d997c 100644
--- a/analitzawidgets/plotsview3d_es.cpp
+++ b/analitzawidgets/plotsview3d_es.cpp
@@ -30,7 +30,7 @@
 using namespace Analitza;
 
 PlotsView3DES::PlotsView3DES(QWidget *parent)
-    : QOpenGLWidget(parent), m_selection(0), old_x(-1), old_y(-1)
+    : QOpenGLWidget(parent), m_selection(nullptr), old_x(-1), old_y(-1)
 {
     setFocusPolicy(Qt::ClickFocus);
 }
diff --git a/analitzawidgets/plotsview3d_es.h b/analitzawidgets/plotsview3d_es.h
index c4715f17..5f0f946b 100644
--- a/analitzawidgets/plotsview3d_es.h
+++ b/analitzawidgets/plotsview3d_es.h
@@ -51,7 +51,7 @@ class ANALITZAWIDGETS_EXPORT PlotsView3DES : public QOpenGLWidget, \
public Plotte  Q_OBJECT
 
 public:
-    PlotsView3DES(QWidget* parent = 0);
+    PlotsView3DES(QWidget* parent = nullptr);
     virtual ~PlotsView3DES();
 
     void setSelectionModel(QItemSelectionModel* selection);
diff --git a/declarative/analitzawrapper.cpp b/declarative/analitzawrapper.cpp
index 4b40a674..1c736bff 100644
--- a/declarative/analitzawrapper.cpp
+++ b/declarative/analitzawrapper.cpp
@@ -46,7 +46,7 @@ QStringList ExpressionWrapper::errors() const { return \
m_exp.error(); }  
 AnalitzaWrapper::AnalitzaWrapper(QObject* parent)
     : QObject(parent)
-    , m_wrapped(0), m_vars(new Analitza::Variables), m_calc(false)
+    , m_wrapped(nullptr), m_vars(new Analitza::Variables), m_calc(false)
 {
     initWrapped();
 }
diff --git a/declarative/analitzawrapper.h b/declarative/analitzawrapper.h
index ebd31e96..783a470d 100644
--- a/declarative/analitzawrapper.h
+++ b/declarative/analitzawrapper.h
@@ -35,8 +35,8 @@ class ExpressionWrapper : public QObject
     Q_PROPERTY(QString expression READ toString CONSTANT)
     Q_PROPERTY(bool isCorrect READ isCorrect CONSTANT)
     public:
-        ExpressionWrapper(QObject* parent=0);
-        explicit ExpressionWrapper(const Analitza::Expression & e, QObject* parent = \
0); +        ExpressionWrapper(QObject* parent=nullptr);
+        explicit ExpressionWrapper(const Analitza::Expression & e, QObject* parent = \
nullptr);  
         bool isCorrect() const;
         QString toString() const;
@@ -57,7 +57,7 @@ class AnalitzaWrapper : public QObject
     Q_PROPERTY(QStringList errors READ errors)
     Q_PROPERTY(QSharedPointer<Analitza::Variables> variables READ variables WRITE \
setVariables)  public:
-        explicit AnalitzaWrapper(QObject* parent = 0);
+        explicit AnalitzaWrapper(QObject* parent = nullptr);
         ~AnalitzaWrapper();
         
         void setCalculate(bool calc);
diff --git a/declarative/graph2dmobile.cpp b/declarative/graph2dmobile.cpp
index 629dbd14..29745008 100644
--- a/declarative/graph2dmobile.cpp
+++ b/declarative/graph2dmobile.cpp
@@ -114,7 +114,7 @@ QStringList Graph2DMobile::addFunction(const QString& expression, \
const QSharedP  
 void Graph2DMobile::setTicksShownAtAll(bool shown)
 {
-    Qt::Orientations show = shown ? Qt::Vertical|Qt::Horizontal : \
Qt::Orientations(0); +    Qt::Orientations show = shown ? Qt::Vertical|Qt::Horizontal \
: Qt::Orientations(nullptr);  setShowTicks(show);
     setShowTickLabels(show);
 }
diff --git a/declarative/graph2dmobile.h b/declarative/graph2dmobile.h
index c3627d90..90628067 100644
--- a/declarative/graph2dmobile.h
+++ b/declarative/graph2dmobile.h
@@ -41,7 +41,7 @@ class Graph2DMobile : public QQuickItem, public Analitza::Plotter2D
     Q_PROPERTY(bool minorTicksShown READ minorTicksShown WRITE setShowMinorTicks)
     Q_PROPERTY(QStringList filters READ filters CONSTANT)
     public:
-        Graph2DMobile(QQuickItem* parent = 0);
+        Graph2DMobile(QQuickItem* parent = nullptr);
         
         virtual void forceRepaint() override;
         virtual void viewportChanged() override {}
diff --git a/declarative/graph3ditem.cpp b/declarative/graph3ditem.cpp
index 3bb9e000..d3f7b2a7 100644
--- a/declarative/graph3ditem.cpp
+++ b/declarative/graph3ditem.cpp
@@ -76,7 +76,7 @@ QAbstractItemModel* Graph3DItem::model() const
 void Graph3DItem::setModel(QAbstractItemModel* model)
 {
     if (m_plotter->model())
-        disconnect(m_plotter->model(), 0, this, 0);
+        disconnect(m_plotter->model(), nullptr, this, nullptr);
 
     m_plotter->setModel(model);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic