File indexing completed on 2023-05-30 09:03:09
0001 /* 0002 SPDX-FileCopyrightText: 2009 Aleix Pol <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef KALGEBRA_SESSION_H 0008 #define KALGEBRA_SESSION_H 0009 0010 #include "session.h" 0011 0012 class OperatorsModel; 0013 class KAlgebraExpression; 0014 0015 namespace Analitza { 0016 class Analyzer; 0017 class VariablesModel; 0018 } 0019 0020 class KAlgebraSession : public Cantor::Session 0021 { 0022 Q_OBJECT 0023 public: 0024 explicit KAlgebraSession( Cantor::Backend* backend); 0025 ~KAlgebraSession() override; 0026 0027 void login() override; 0028 void logout() override; 0029 0030 void interrupt() override; 0031 0032 Cantor::Expression* evaluateExpression(const QString& command, Cantor::Expression::FinishingBehavior behave = Cantor::Expression::FinishingBehavior::DoNotDelete, bool internal = false) override; 0033 Cantor::CompletionObject* completionFor(const QString& cmd, int index=-1) override; 0034 Cantor::SyntaxHelpObject* syntaxHelpFor(const QString& cmd) override; 0035 Analitza::Analyzer* analyzer() const { return m_analyzer; } 0036 OperatorsModel* operatorsModel(); 0037 QSyntaxHighlighter* syntaxHighlighter(QObject* parent) override; 0038 QAbstractItemModel* variableDataModel() const override; 0039 0040 private: 0041 Analitza::Analyzer* m_analyzer; 0042 OperatorsModel* m_operatorsModel; 0043 Analitza::VariablesModel* m_variablesModel; 0044 }; 0045 0046 #endif