File indexing completed on 2024-04-14 10:50:07

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2012 Alexander Rieder <alexanderrieder@gmail.com>
0004 */
0005 
0006 #ifndef _MAXIMAVARIABLEMODEL_H
0007 #define _MAXIMAVARIABLEMODEL_H
0008 
0009 #include "defaultvariablemodel.h"
0010 #include <QStringList>
0011 
0012 class MaximaSession;
0013 class MaximaExpression;
0014 
0015 class MaximaVariableModel : public Cantor::DefaultVariableModel
0016 {
0017   Q_OBJECT
0018   public:
0019     static const QString inspectCommand;
0020     static const QString variableInspectCommand;
0021 
0022     explicit MaximaVariableModel(MaximaSession*);
0023     ~MaximaVariableModel() override = default;
0024 
0025     void update() override;
0026 
0027   private Q_SLOTS:
0028     void parseNewVariables(Cantor::Expression::Status);
0029     void parseNewFunctions(Cantor::Expression::Status);
0030 
0031   private:
0032     MaximaSession* maximaSession();
0033 
0034   private:
0035     MaximaExpression* m_variableExpression{nullptr};
0036     MaximaExpression* m_functionExpression{nullptr};
0037 };
0038 
0039 #endif /* _MAXIMAVARIABLEMODEL_H */