/* SPDX-FileCopyrightText: 2007 Barış Metin SPDX-FileCopyrightText: 2010 Matteo Agostinelli SPDX-FileCopyrightText: 2021 Alexander Lohnau SPDX-License-Identifier: LGPL-2.0-only */ #pragma once #include #include class QalculateEngine; #include /** * This class evaluates the basic expressions given in the interface. */ class CalculatorRunner : public Plasma::AbstractRunner { Q_OBJECT public: CalculatorRunner(QObject *parent, const KPluginMetaData &metaData, const QVariantList &args); ~CalculatorRunner() override; void match(Plasma::RunnerContext &context) override; protected Q_SLOTS: void run(const Plasma::RunnerContext &context, const Plasma::QueryMatch &match) override; QMimeData *mimeDataForMatch(const Plasma::QueryMatch &match) override; private: QString calculate(const QString &term, bool *isApproximate); void userFriendlyMultiplication(QString &cmd); void userFriendlySubstitutions(QString &cmd); std::unique_ptr m_engine; QList m_actions; };