Warning, file /education/cantor/src/backends/qalculate/qalculatebackend.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2009 Milian Wolff <mail@milianw.de> 0003 SPDX-FileCopyrightText: 2011 Matteo Agostinelli <agostinelli@gmail.com> 0004 SPDX-FileCopyrightText: 2023 Alexander Semke <alexander.semke@web.de> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "qalculatebackend.h" 0010 #include "settings.h" // settings.h must be included before qalculatesession.h 0011 #include "qalculatesession.h" 0012 #include "qalculateextensions.h" 0013 #include "qalculatesettingswidget.h" 0014 0015 #include <KLocalizedString> 0016 #include <KPluginFactory> 0017 0018 QalculateBackend::QalculateBackend(QObject* parent,const QList<QVariant> args) 0019 : Cantor::Backend(parent, args) 0020 { 0021 new QalculateHistoryExtension(this); 0022 new QalculateVariableManagementExtension(this); 0023 new QalculateCalculusExtension(this); 0024 new QalculateCASExtension(this); 0025 new QalculateLinearAlgebraExtension(this); 0026 new QalculatePlotExtension(this); 0027 } 0028 0029 QString QalculateBackend::id() const 0030 { 0031 return QLatin1String("qalculate"); 0032 } 0033 0034 QString QalculateBackend::version() const 0035 { 0036 return QLatin1String("4.8"); 0037 } 0038 0039 Cantor::Session* QalculateBackend::createSession() 0040 { 0041 return new QalculateSession(this); 0042 } 0043 0044 Cantor::Backend::Capabilities QalculateBackend::capabilities() const 0045 { 0046 return Cantor::Backend::Completion | Cantor::Backend::SyntaxHighlighting | Cantor::Backend::SyntaxHelp | Cantor::Backend::VariableManagement; 0047 } 0048 0049 QString QalculateBackend::description() const 0050 { 0051 return i18n("<b>Qalculate!</b> is a multi-purpose cross-platform desktop calculator. " 0052 "It is simple to use but provides power and versatility normally reserved for complicated math packages, " 0053 "as well as useful tools for everyday needs (such as currency conversion and percent calculation). " 0054 "Features include a large library of customizable functions, unit calculations and conversion, " 0055 "physical constants, symbolic calculations (including integrals and equations), arbitrary precision, " 0056 "uncertainty propagation, interval arithmetic, plotting,"); 0057 } 0058 0059 QUrl QalculateBackend::helpUrl() const 0060 { 0061 return QUrl(QString::fromLatin1("https://qalculate.github.io/manual/index.html")); 0062 } 0063 0064 bool QalculateBackend::requirementsFullfilled(QString* const reason) const 0065 { 0066 const QString& path = QalculateSettings::self()->path().toLocalFile(); 0067 return Cantor::Backend::checkExecutable(QLatin1String("Qalculate!"), path, reason); 0068 } 0069 0070 KConfigSkeleton* QalculateBackend::config() const 0071 { 0072 return QalculateSettings::self(); 0073 } 0074 0075 QWidget* QalculateBackend::settingsWidget(QWidget* parent) const 0076 { 0077 return new QalculateSettingsWidget(parent, id()); 0078 } 0079 0080 K_PLUGIN_FACTORY_WITH_JSON(qalculatebackend, "qalculatebackend.json", registerPlugin<QalculateBackend>();) 0081 #include "qalculatebackend.moc"