Warning, file /education/kmplot/kmplot/parameterswidget.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 KmPlot - a math. function plotter for the KDE-Desktop 0003 0004 SPDX-FileCopyrightText: 2006 David Saxton <david@bluehaze.org> 0005 0006 This file is part of the KDE Project. 0007 KmPlot is part of the KDE-EDU Project. 0008 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 0012 #include "parameterswidget.h" 0013 0014 #include "kparametereditor.h" 0015 #include "xparser.h" 0016 #include <QPointer> 0017 0018 // BEGIN class ParametersWidget 0019 ParametersWidget::ParametersWidget(QWidget *parent) 0020 : QGroupBox(parent) 0021 { 0022 setupUi(this); 0023 0024 for (int number = 0; number < SLIDER_COUNT; number++) 0025 listOfSliders->addItem(i18n("Slider No. %1", number + 1)); 0026 0027 connect(editParameterListButton, &QPushButton::clicked, this, &ParametersWidget::editParameterList); 0028 connect(useSlider, &QCheckBox::toggled, this, &ParametersWidget::updateEquationEdits); 0029 connect(useList, &QCheckBox::toggled, this, &ParametersWidget::updateEquationEdits); 0030 } 0031 0032 void ParametersWidget::init(const ParameterSettings &settings) 0033 { 0034 useSlider->setChecked(settings.useSlider); 0035 useList->setChecked(settings.useList); 0036 0037 listOfSliders->setCurrentIndex(settings.sliderID); 0038 m_parameters = settings.list; 0039 } 0040 0041 ParameterSettings ParametersWidget::parameterSettings() const 0042 { 0043 ParameterSettings s; 0044 0045 s.useSlider = useSlider->isChecked(); 0046 s.useList = useList->isChecked(); 0047 0048 s.sliderID = listOfSliders->currentIndex(); 0049 s.list = m_parameters; 0050 0051 return s; 0052 } 0053 0054 void ParametersWidget::editParameterList() 0055 { 0056 QPointer<KParameterEditor> dlg = new KParameterEditor(&m_parameters, 0); 0057 dlg->exec(); 0058 delete dlg; 0059 emit parameterListChanged(); 0060 } 0061 0062 void ParametersWidget::updateEquationEdits() 0063 { 0064 if (!useSlider->isChecked() && !useList->isChecked()) { 0065 // Don't need to add any parameter variables 0066 return; 0067 } 0068 0069 for (EquationEdit *edit : qAsConst(m_equationEdits)) { 0070 if (edit->equation()->usesParameter() || !edit->equation()->looksLikeFunction()) 0071 continue; 0072 0073 QString text = edit->text(); 0074 int bracket = text.indexOf(')'); 0075 if (bracket < 0) 0076 continue; 0077 0078 text.replace(bracket, 1, ",k)"); 0079 edit->setText(text); 0080 } 0081 } 0082 0083 void ParametersWidget::associateEquationEdit(EquationEdit *edit) 0084 { 0085 m_equationEdits << edit; 0086 } 0087 // END class ParametersWidget