QtiPlot  0.9.8.2
FitDialog.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : FitDialog.h
3  Project : QtiPlot
4  --------------------------------------------------------------------
5  Copyright : (C) 2004 - 2011 by Ion Vasilief
6  Email (use @ for *) : ion_vasilief*yahoo.fr
7  Description : Fit Wizard
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  * This program is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
21  * GNU General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU General Public License *
24  * along with this program; if not, write to the Free Software *
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
26  * Boston, MA 02110-1301 USA *
27  * *
28  ***************************************************************************/
29 #ifndef FITDIALOG_H
30 #define FITDIALOG_H
31 
32 #include <Graph.h>
33 #include <QDoubleSpinBox>
34 #include <QCheckBox>
35 
36 class QPushButton;
37 class QLineEdit;
38 class QComboBox;
39 class QStackedWidget;
40 class QWidget;
41 class QTextEdit;
42 class QListWidget;
43 class QTableWidget;
44 class QSpinBox;
45 class QLabel;
46 class QRadioButton;
47 class QLineEdit;
48 class ColorButton;
49 class Fit;
50 class Table;
51 class DoubleSpinBox;
52 class FunctionCurve;
53 class MdiSubWindow;
54 class ScriptEdit;
55 
57 class FitDialog : public QDialog
58 {
59  Q_OBJECT
60 
61 public:
62  FitDialog(Graph *g, QWidget* parent = 0);
63 
64  void setSrcTables(QList<MdiSubWindow*> tables);
65 
66 protected:
67  void closeEvent (QCloseEvent * e );
68  void initFitPage();
69  void initEditPage();
70  void initAdvancedPage();
71  void chooseFitModelsFolder();
72  void choosePluginsFolder();
73 
74 private slots:
75  void accept();
77  void resetFunction();
78  void showFitPage();
79  void showEditPage();
80  void showAdvancedPage();
81  void showFunctionsList(int category);
82  void showParseFunctions();
83  void showExpression(int function);
84  void addFunction();
85  void addFunctionName();
86  void setFunction(bool ok);
87  void saveUserFunction();
88  void removeUserFunction();
89  void setGraph(Graph *g);
90  void activateCurve(const QString&);
91  void chooseFolder();
92  void changeDataRange();
93  void selectSrcTable(int tabnr);
94  void enableWeightingParameters(int index);
95  void showPointsBox(bool);
96  void showParametersTable();
97  void showCovarianceMatrix();
98  void showResiduals();
99  void showConfidenceLimits();
100  void showPredictionLimits();
101 
103  void applyChanges();
104 
106  void deleteFitCurves();
107 
109  void enableApplyChanges(int = 0);
110  void setNumPeaks(int peaks);
111  void saveInitialGuesses();
112  void loadInitialGuesses();
113  void guessInitialValues();
114  void returnToFitPage();
115  void updatePreview();
116  void updatePreviewColor(const QColor &);
117  void showPreview(bool on);
118  void showParameterRange(bool);
119  void guessParameters();
120 
121 private:
122  void loadPlugins();
123  void loadUserFunctions();
124  void initBuiltInFunctions();
125  void modifyGuesses(double* initVal);
126  QStringList builtInFunctionNames();
127  QStringList userFunctionNames();
128  QStringList plugInNames();
129  QString parseFormula(const QString& s);
130  void setEditorTextColor(const QColor& c);
131  void setCurrentFit(int);
132 
135  QPointer <Table> d_param_table;
137  QList <QwtPlotCurve*> d_result_curves;
138  QList <MdiSubWindow*> srcTables;
140 
141  QCheckBox* boxUseBuiltIn;
142  QStackedWidget* tw;
143  QPushButton* buttonOk;
144  QPushButton* buttonCancel1;
145  QPushButton* buttonCancel2;
146  QPushButton* buttonCancel3;
147  QPushButton* buttonAdvanced;
148  QPushButton* buttonClear;
149  QPushButton* buttonPlugins;
150  QPushButton* btnBack;
152  QComboBox* boxCurve;
153  QComboBox* boxAlgorithm;
154  QTableWidget* boxParams;
161  QTextEdit *explainBox, *boxFunction;
162  QListWidget *categoryBox, *funcBox;
163  QLineEdit *boxName;
176  QCheckBox *previewBox;
177 };
178 #endif // FITDIALOG_H
QComboBox * boxAlgorithm
Definition: FitDialog.h:153
void showPointsBox(bool)
Definition: FitDialog.cpp:818
void showExpression(int function)
Definition: FitDialog.cpp:1278
void setEditorTextColor(const QColor &c)
Definition: FitDialog.cpp:1977
void initAdvancedPage()
Definition: FitDialog.cpp:581
void setCurrentFit(int)
Definition: FitDialog.cpp:1256
void addFunctionName()
Definition: FitDialog.cpp:1341
void showPreview(bool on)
Definition: FitDialog.cpp:1816
void activateCurve(const QString &)
Definition: FitDialog.cpp:847
ColorButton * boxColor
Definition: FitDialog.h:168
DoubleSpinBox * boxTolerance
Definition: FitDialog.h:157
void changeDataRange()
Definition: FitDialog.cpp:1517
QSpinBox * polynomOrderBox
Definition: FitDialog.h:158
void guessInitialValues()
Definition: FitDialog.cpp:1781
void loadPlugins()
Definition: FitDialog.cpp:1220
void saveUserFunction()
Definition: FitDialog.cpp:861
ScriptEdit * editBox
Definition: FitDialog.h:160
QStringList userFunctionNames()
Definition: FitDialog.cpp:1714
QPushButton * buttonPlugins
Definition: FitDialog.h:149
A 2D-plotting widget.
Definition: Graph.h:123
QSpinBox * boxPoints
Definition: FitDialog.h:158
void showParametersTable()
Definition: FitDialog.cpp:782
QList< QwtPlotCurve * > d_result_curves
Definition: FitDialog.h:137
void initFitPage()
Definition: FitDialog.cpp:122
QComboBox * boxWeighting
Definition: FitDialog.h:169
A customized QtColorPicker used for color selection.
Definition: ColorButton.h:39
FunctionCurve * d_preview_curve
Definition: FitDialog.h:139
void setNumPeaks(int peaks)
Definition: FitDialog.cpp:1651
QList< Fit * > d_built_in_functions
Definition: FitDialog.h:136
QComboBox * colNamesBox
Definition: FitDialog.h:169
QTextEdit * explainBox
Definition: FitDialog.h:161
DoubleSpinBox * boxFrom
Definition: FitDialog.h:155
Graph * d_graph
Definition: FitDialog.h:134
void showPredictionLimits()
Definition: FitDialog.cpp:1941
void addFunction()
Definition: FitDialog.cpp:1325
void updatePreviewColor(const QColor &)
Definition: FitDialog.cpp:1879
void saveInitialGuesses()
Definition: FitDialog.cpp:1722
QPushButton * btnAddFunc
Definition: FitDialog.h:166
void showAdvancedPage()
Definition: FitDialog.cpp:1090
void showCovarianceMatrix()
Definition: FitDialog.cpp:800
QCheckBox * scaleErrorsBox
Definition: FitDialog.h:175
DoubleSpinBox * boxConfidenceLevel
Definition: FitDialog.h:173
void showFitPage()
Definition: FitDialog.cpp:970
QPushButton * btnConfidenceLimits
Definition: FitDialog.h:172
QLabel * lblFunction
Definition: FitDialog.h:165
void setFunction(bool ok)
Definition: FitDialog.cpp:1105
QPushButton * buttonCancel2
Definition: FitDialog.h:145
void choosePluginsFolder()
Definition: FitDialog.cpp:1192
QSpinBox * boxPrecision
Definition: FitDialog.h:158
QPushButton * btnPredictionLimits
Definition: FitDialog.h:172
QRadioButton * generatePointsBtn
Definition: FitDialog.h:170
QPushButton * btnDeleteFitCurves
Definition: FitDialog.h:167
void removeUserFunction()
Definition: FitDialog.cpp:939
void showParseFunctions()
Definition: FitDialog.cpp:1251
QPushButton * buttonOk
Definition: FitDialog.h:143
void setSrcTables(QList< MdiSubWindow * > tables)
Definition: FitDialog.cpp:1531
void guessParameters()
Definition: FitDialog.cpp:1952
QComboBox * boxCurve
Definition: FitDialog.h:152
A QDoubleSpinBox allowing to customize numbers display with respect to locale settings.
Definition: DoubleSpinBox.h:39
QLabel * boxParam
Definition: FitDialog.h:164
QPushButton * btnResiduals
Definition: FitDialog.h:172
Fit base class.
Definition: Fit.h:44
void selectSrcTable(int tabnr)
Definition: FitDialog.cpp:1548
QListWidget * categoryBox
Definition: FitDialog.h:162
QPushButton * buttonEdit
Definition: FitDialog.h:167
QString parseFormula(const QString &s)
Definition: FitDialog.cpp:1899
QWidget * advancedPage
Definition: FitDialog.h:159
QPushButton * buttonAdvanced
Definition: FitDialog.h:147
Editor widget with support for evaluating expressions and executing code.
Definition: ScriptEdit.h:50
void showFunctionsList(int category)
Definition: FitDialog.cpp:1126
QStringList plugInNames()
Definition: FitDialog.cpp:1802
QPushButton * btnGuess
Definition: FitDialog.h:151
QPushButton * buttonClear
Definition: FitDialog.h:148
QPushButton * btnParamTable
Definition: FitDialog.h:171
void showEditPage()
Definition: FitDialog.cpp:1085
void enableApplyChanges(int=0)
Enable the &quot;Apply&quot; button.
Definition: FitDialog.cpp:1584
Definition: FunctionCurve.h:37
QPushButton * buttonCancel1
Definition: FitDialog.h:144
QPushButton * btnAddTxt
Definition: FitDialog.h:167
void resetFunction()
Clears the function editor, the parameter names and the function name.
Definition: FitDialog.cpp:1612
void initBuiltInFunctions()
Definition: FitDialog.cpp:1619
QCheckBox * logBox
Definition: FitDialog.h:175
QLabel * polynomOrderLabel
Definition: FitDialog.h:165
QWidget * editPage
Definition: FitDialog.h:159
void returnToFitPage()
Definition: FitDialog.cpp:1810
QPushButton * btnLoadGuesses
Definition: FitDialog.h:151
void enableWeightingParameters(int index)
Definition: FitDialog.cpp:1559
void accept()
Definition: FitDialog.cpp:1349
void showParameterRange(bool)
Definition: FitDialog.cpp:1888
QPushButton * btnCovMatrix
Definition: FitDialog.h:171
QSpinBox * generatePointsBox
Definition: FitDialog.h:158
void setGraph(Graph *g)
Definition: FitDialog.cpp:829
QPushButton * btnContinue
Definition: FitDialog.h:166
QCheckBox * previewBox
Definition: FitDialog.h:176
void updatePreview()
Definition: FitDialog.cpp:1826
QPushButton * btnBack
Definition: FitDialog.h:150
QLineEdit * paramTableName
Definition: FitDialog.h:174
QWidget * fitPage
Definition: FitDialog.h:159
Fit * d_current_fit
Definition: FitDialog.h:133
QPushButton * buttonCancel3
Definition: FitDialog.h:146
QPointer< Table > d_param_table
Definition: FitDialog.h:135
QStringList builtInFunctionNames()
Definition: FitDialog.cpp:1661
QList< MdiSubWindow * > srcTables
Definition: FitDialog.h:138
void showResiduals()
Definition: FitDialog.cpp:1919
void loadUserFunctions()
Definition: FitDialog.cpp:1669
QList< Fit * > d_plugins
Definition: FitDialog.h:136
QListWidget * funcBox
Definition: FitDialog.h:162
void initEditPage()
Definition: FitDialog.cpp:401
void showConfidenceLimits()
Definition: FitDialog.cpp:1930
Base class of all MDI client windows.
Definition: MdiSubWindow.h:51
QPushButton * btnApply
Definition: FitDialog.h:166
QPushButton * btnDelFunc
Definition: FitDialog.h:166
QPushButton * btnParamRange
Definition: FitDialog.h:171
void chooseFolder()
Definition: FitDialog.cpp:1184
void modifyGuesses(double *initVal)
Definition: FitDialog.cpp:1504
QLineEdit * covMatrixName
Definition: FitDialog.h:174
MDI window providing a spreadsheet table with column logic.
Definition: Table.h:57
QStackedWidget * tw
Definition: FitDialog.h:142
void chooseFitModelsFolder()
Definition: FitDialog.cpp:1204
QTextEdit * boxFunction
Definition: FitDialog.h:161
QCheckBox * plotLabelBox
Definition: FitDialog.h:175
void deleteFitCurves()
Deletes the result fit curves from the plot.
Definition: FitDialog.cpp:1589
QTableWidget * boxParams
Definition: FitDialog.h:154
QList< Fit * > d_user_functions
Definition: FitDialog.h:136
QLineEdit * boxName
Definition: FitDialog.h:163
QCheckBox * globalParamTableBox
Definition: FitDialog.h:175
QPushButton * btnAddName
Definition: FitDialog.h:167
QCheckBox * boxUseBuiltIn
Definition: FitDialog.h:141
QPushButton * btnSaveGuesses
Definition: FitDialog.h:151
QLabel * lblPoints
Definition: FitDialog.h:165
void applyChanges()
Applies the user changes to the numerical format of the output results.
Definition: FitDialog.cpp:758
FitDialog(Graph *g, QWidget *parent=0)
Definition: FitDialog.cpp:70
QRadioButton * samePointsBtn
Definition: FitDialog.h:170
QLabel * boxErrorMsg
Definition: FitDialog.h:164
void closeEvent(QCloseEvent *e)
Definition: FitDialog.cpp:1567
Fit Wizard.
Definition: FitDialog.h:57
void loadInitialGuesses()
Definition: FitDialog.cpp:1765
DoubleSpinBox * boxTo
Definition: FitDialog.h:156
QComboBox * tableNamesBox
Definition: FitDialog.h:169