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 "plot2dassistant.h" 0007 0008 #include <QAction> 0009 #include <QDialog> 0010 #include <QPushButton> 0011 #include <QStyle> 0012 0013 #include <KActionCollection> 0014 #include <KConfigGroup> 0015 #include "ui_plot2ddlg.h" 0016 #include "cantor_macros.h" 0017 #include "backend.h" 0018 #include "extension.h" 0019 0020 Plot2dAssistant::Plot2dAssistant(QObject* parent, QList<QVariant> args) : Assistant(parent) 0021 { 0022 Q_UNUSED(args) 0023 } 0024 0025 void Plot2dAssistant::initActions() 0026 { 0027 setXMLFile(QLatin1String("cantor_plot2d_assistant.rc")); 0028 QAction* plot2d=new QAction(i18n("Plot 2D"), actionCollection()); 0029 actionCollection()->addAction(QLatin1String("plot2d_assistant"), plot2d); 0030 connect(plot2d, &QAction::triggered, this, &Plot2dAssistant::requested); 0031 } 0032 0033 QStringList Plot2dAssistant::run(QWidget* parent) 0034 { 0035 QPointer<QDialog> dlg=new QDialog(parent); 0036 QWidget *widget=new QWidget(dlg); 0037 Ui::Plot2dAssistantBase 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 const QString variable=base.variable->text(); 0053 const QString min=base.min->text(); 0054 const QString max=base.max->text(); 0055 0056 Cantor::PlotExtension* ext= 0057 dynamic_cast<Cantor::PlotExtension*>(backend()->extension(QLatin1String("PlotExtension"))); 0058 0059 result<<ext->plotFunction2d(expression, variable, min, max); 0060 } 0061 0062 delete dlg; 0063 return result; 0064 } 0065 0066 K_PLUGIN_FACTORY_WITH_JSON(plot2dassistant, "plot2dassistant.json", registerPlugin<Plot2dAssistant>();) 0067 #include "plot2dassistant.moc"