File indexing completed on 2024-04-28 11:20:38
0001 /* 0002 SPDX-FileCopyrightText: 2009 Milian Wolff <mail@milianw.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef QALCULATE_EXPRESSION_H 0008 #define QALCULATE_EXPRESSION_H 0009 0010 #include "expression.h" 0011 #include <vector> 0012 #include <string> 0013 #include <libqalculate/Calculator.h> 0014 0015 #include <QSharedPointer> 0016 0017 class QalculateSession; 0018 class QTemporaryFile; 0019 0020 class QalculateExpression : public Cantor::Expression 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit QalculateExpression( QalculateSession* session, bool internal = false); 0026 ~QalculateExpression() override; 0027 0028 void evaluate() override; 0029 void parseOutput(const QString&) override; 0030 void parseError(const QString&) override; 0031 0032 private: 0033 QTemporaryFile* m_tempFile{nullptr}; 0034 0035 QString m_message; 0036 enum MsgType { MSG_NONE=0, MSG_INFO=1, MSG_WARN=2, MSG_ERR=4 }; 0037 0038 void evaluatePlotCommand(); 0039 0040 bool stringToBool(const QString&, bool*); 0041 void deletePlotDataParameters(const std::vector<PlotDataParameters*>&); 0042 void showMessage(QString msg, MessageType mtype); 0043 int checkForCalculatorMessages(); 0044 void updateVariables(); 0045 QSharedPointer<PrintOptions> printOptions(); 0046 EvaluationOptions evaluationOptions(); 0047 ParseOptions parseOptions(); 0048 std::string unlocalizeExpression(QString expr); 0049 }; 0050 0051 #endif