File indexing completed on 2024-05-05 11:56:02

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2010 Oleksiy Protas <elfy.ua@gmail.com>
0004 */
0005 
0006 #include "directives/plotdirectives.h"
0007 #include "ui_axisrange.h"
0008 #include "ui_plottitle.h"
0009 
0010 #include <KLocalizedString>
0011 
0012 namespace Cantor
0013 {
0014 
0015 // FIXME maybe this belongs to headers rather
0016 class PlotTitleControl : public AdvancedPlotExtension::DirectiveControl<Ui_PlotTitleControl>
0017 {
0018     public: // FIXME: move window title setting upward, or maybe not
0019         PlotTitleControl(QWidget *parent) : AbstractParent(parent) { setWindowTitle(ki18n("Main title").toString()); }
0020 
0021         AdvancedPlotExtension::PlotDirective* produceDirective() const override
0022         {
0023             return new PlotTitleDirective(titleEdit->text());
0024         }
0025 };
0026 
0027 class AbscissScaleControl : public AdvancedPlotExtension::DirectiveControl<Ui_AxisRangeControl>
0028 {
0029     public:
0030         AbscissScaleControl(QWidget *parent) : AbstractParent(parent) { setWindowTitle(ki18n("Abscissa scale").toString()); }
0031 
0032         AdvancedPlotExtension::PlotDirective* produceDirective() const override
0033         {
0034             return new AbscissScaleDirective(minEdit->value(),maxEdit->value());
0035         }
0036 };
0037 
0038 class OrdinateScaleControl : public AdvancedPlotExtension::DirectiveControl<Ui_AxisRangeControl>
0039 {
0040     public:
0041         OrdinateScaleControl(QWidget *parent) : AbstractParent(parent) { setWindowTitle(ki18n("Ordinate scale").toString()); }
0042 
0043         AdvancedPlotExtension::PlotDirective* produceDirective() const override
0044         {
0045             return new OrdinateScaleDirective(minEdit->value(),maxEdit->value());
0046         }
0047 };
0048 
0049 
0050 const QString& PlotTitleDirective::title() const
0051 {
0052     return m_title;
0053 }
0054 
0055 PlotTitleDirective::PlotTitleDirective(const QString& str) : m_title(str)
0056 {
0057 }
0058 
0059 AdvancedPlotExtension::DirectiveProducer* PlotTitleDirective::widget(QWidget* parent)
0060 {
0061     return new PlotTitleControl(parent);
0062 }
0063 
0064 double AbstractScaleDirective::min() const
0065 {
0066     return m_min;
0067 }
0068 double AbstractScaleDirective::max() const
0069 {
0070     return m_max;
0071 }
0072 
0073 AbstractScaleDirective::AbstractScaleDirective(double a,double b) : m_min(a),m_max(b)
0074 {
0075 }
0076 
0077 AbscissScaleDirective::AbscissScaleDirective(double a,double b) : AbstractScaleDirective(a,b)
0078 {
0079 }
0080 
0081 AdvancedPlotExtension::DirectiveProducer* AbscissScaleDirective::widget(QWidget* parent)
0082 {
0083     return new AbscissScaleControl(parent);
0084 }
0085 
0086 OrdinateScaleDirective::OrdinateScaleDirective(double a,double b) : AbstractScaleDirective(a,b)
0087 {
0088 }
0089 
0090 AdvancedPlotExtension::DirectiveProducer* OrdinateScaleDirective::widget(QWidget* parent)
0091 {
0092     return new OrdinateScaleControl(parent);
0093 }
0094 
0095 }