File indexing completed on 2024-05-19 11:21:19
0001 /* 0002 SPDX-License-Identifier: GPL-2.0-or-later 0003 SPDX-FileCopyrightText: 2009 Alexander Rieder <alexanderrieder@gmail.com> 0004 */ 0005 0006 #include "plot3dassistant.h" 0007 0008 #include <QAction> 0009 #include <QDialog> 0010 #include <QPushButton> 0011 #include <QStyle> 0012 0013 #include <KActionCollection> 0014 #include <KConfigGroup> 0015 #include "ui_plot3ddlg.h" 0016 #include "cantor_macros.h" 0017 #include "backend.h" 0018 #include "extension.h" 0019 0020 Plot3dAssistant::Plot3dAssistant(QObject* parent, QList<QVariant> args) : Assistant(parent) 0021 { 0022 Q_UNUSED(args) 0023 } 0024 0025 void Plot3dAssistant::initActions() 0026 { 0027 setXMLFile(QLatin1String("cantor_plot3d_assistant.rc")); 0028 QAction* plot3d=new QAction(i18n("Plot 3D"), actionCollection()); 0029 actionCollection()->addAction(QLatin1String("plot3d_assistant"), plot3d); 0030 connect(plot3d, &QAction::triggered, this, &Plot3dAssistant::requested); 0031 } 0032 0033 QStringList Plot3dAssistant::run(QWidget* parent) 0034 { 0035 QPointer<QDialog> dlg=new QDialog(parent); 0036 QWidget *widget=new QWidget(dlg); 0037 Ui::Plot3dAssistantBase base; 0038 base.setupUi(widget); 0039 QVBoxLayout *mainLayout = new QVBoxLayout; 0040 dlg->setLayout(mainLayout); 0041 mainLayout->addWidget(widget); 0042 0043 base.buttonBox->button(QDialogButtonBox::Ok)->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)); 0044 base.buttonBox->button(QDialogButtonBox::Cancel)->setIcon(QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)); 0045 connect(base.buttonBox, SIGNAL(accepted()), dlg, SLOT(accept())); 0046 connect(base.buttonBox, SIGNAL(rejected()), dlg, SLOT(reject())); 0047 0048 QStringList result; 0049 if( dlg->exec()) 0050 { 0051 const QString expression=base.expression->text(); 0052 Cantor::PlotExtension::VariableParameter v1; 0053 Cantor::PlotExtension::Interval i1; 0054 v1.first=base.variable1->text(); 0055 i1.first=base.min1->text(); 0056 i1.second=base.max1->text(); 0057 v1.second=i1; 0058 0059 Cantor::PlotExtension::VariableParameter v2; 0060 Cantor::PlotExtension::Interval i2; 0061 v2.first=base.variable2->text(); 0062 i2.first=base.min2->text(); 0063 i2.second=base.max2->text(); 0064 v2.second=i2; 0065 0066 Cantor::PlotExtension* ext= 0067 dynamic_cast<Cantor::PlotExtension*>(backend()->extension(QLatin1String("PlotExtension"))); 0068 0069 result<<ext->plotFunction3d(expression, v1, v2); 0070 } 0071 0072 delete dlg; 0073 return result; 0074 } 0075 0076 K_PLUGIN_FACTORY_WITH_JSON(plot3dassistant, "plot3dassistant.json", registerPlugin<Plot3dAssistant>();) 0077 #include "plot3dassistant.moc"