QtiPlot  0.9.8.2
AxesDialog.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : AxesDialog.h
3  Project : QtiPlot
4  --------------------------------------------------------------------
5  Copyright : (C) 2004 - 2011 by Ion Vasilief
6  (C) 2006 Tilman Hoener zu Siederdissen
7  Email (use @ for *) : ion_vasilief*yahoo.fr
8  Description : Axes preferences dialog
9 
10  ***************************************************************************/
11 
12 /***************************************************************************
13  * *
14  * This program is free software; you can redistribute it and/or modify *
15  * it under the terms of the GNU General Public License as published by *
16  * the Free Software Foundation; either version 2 of the License, or *
17  * (at your option) any later version. *
18  * *
19  * This program is distributed in the hope that it will be useful, *
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22  * GNU General Public License for more details. *
23  * *
24  * You should have received a copy of the GNU General Public License *
25  * along with this program; if not, write to the Free Software *
26  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
27  * Boston, MA 02110-1301 USA *
28  * *
29  ***************************************************************************/
30 #ifndef AXESDIALOG_H
31 #define AXESDIALOG_H
32 
33 #include <QDialog>
34 #include <QLabel>
35 #include <QList>
36 #include <QTextEdit>
37 
38 class QLineEdit;
39 class QTimeEdit;
40 class QDateTimeEdit;
41 class QListWidget;
42 class QListWidgetItem;
43 class QCheckBox;
44 class QGroupBox;
45 class QComboBox;
46 class QLabel;
47 class QPushButton;
48 class QRadioButton;
49 class QSpinBox;
50 class QTabWidget;
51 class QWidget;
52 class QStringList;
53 class ColorButton;
54 class Graph;
55 class TextFormatButtons;
56 class DoubleSpinBox;
57 class Grid;
58 class PenStyleBox;
59 
61 
64 class AxesDialog : public QDialog
65 {
66  Q_OBJECT
67 
68 public:
70 
74  AxesDialog( QWidget* parent = 0, Qt::WFlags fl = 0 );
75 
76  void setGraph(Graph *g);
77 
78 public slots:
79  void setCurrentScale(int axisPos);
80  void showGeneralPage();
81  void showAxesPage();
82  void showGridPage();
83  void showFormulaBox();
84 
86 
90  int exec();
91 
92 private slots:
93  void showAxisFormula(int axis);
94  void customAxisLabelFont();
95  void pickAxisLabelColor();
96  void setAxisType(int axis);
97  void updateAxisType(int axis);
98  void updateTitleBox(int axis);
99  bool updatePlot(QWidget *page = NULL);
100  void updateScale();
101  void stepEnabled();
102  void stepDisabled();
103  void majorGridEnabled(bool on);
104  void minorGridEnabled(bool on);
105  void showGridOptions(int axis);
106  void accept();
107  void customAxisFont();
108  void showAxis();
109  void updateShowBox(int axis);
110  void updateAxisColor(int);
111  int mapToQwtAxis(int axis);
112  int mapToQwtAxisId();
113  void updateTickLabelsList(bool);
114  void updateMinorTicksList(int scaleType);
115  void setTicksType(int);
116  void updateGrid();
117  void setLabelsNumericFormat(int);
118  void updateLabelsFormat(int);
119  void showAxisFormatOptions(int format);
120  void setBaselineDist(int);
121  void changeMinorTicksLength (int minLength);
122  void changeMajorTicksLength (int majLength);
123  void pageChanged ( QWidget *page);
124  void showAxis(int, int, const QString&, bool, int, int, bool, const QColor&, int, int, int, int, const QString&, const QColor&, int, bool, int);
125  void applyCanvasFormat();
126  void setFrameDefaultValues();
127  void applyAxisFormat();
128  void updateCurrentAxis();
129 
130 protected:
131  void applyCanvasFormatTo(Graph *g);
133  void initAxesPage();
135  void initScalesPage();
137  void initGridPage();
139  void initFramePage();
141  void applyChangesToGrid(Grid *grid);
143  void applyAxisFormatToLayer(Graph *g);
144 
145  QPushButton* buttonApply;
146  QPushButton* buttonOk;
147  QPushButton* buttonCancel;
148  QTabWidget* generalDialog;
149  QWidget* scalesPage;
152  QComboBox* boxScaleType;
153  QComboBox* boxMinorValue;
155  QRadioButton* btnStep;
156  QCheckBox *btnInvert;
157  QSpinBox* boxMajorValue;
158  QRadioButton* btnMajor;
159  QListWidget* axesList;
160  QWidget* gridPage;
161  QCheckBox* boxMajorGrid;
162  QCheckBox* boxMinorGrid;
170  QCheckBox* boxXLine;
171  QCheckBox* boxYLine;
172  QListWidget* axesGridList;
173  QWidget* axesPage, *frame;
174  QListWidget* axesTitlesList;
175  QGroupBox *boxShowLabels;
176  QCheckBox *boxShowAxis;
177 
178  QTextEdit *boxFormula, *boxTitle;
180  QPushButton* btnAxesFont;
184  QGroupBox *boxFramed;
189  QGroupBox *labelBox;
190  QPushButton * buttonLabelFont;
192 
193  QStringList tickLabelsOn;
194  QGroupBox *boxAxesBreaks;
199  QComboBox *boxApplyGridFormat;
202  QWidget* lastPage;
205  QPushButton *frameDefaultBtn;
206  QSpinBox *boxLabelsDistance;
207  QGroupBox *axisFormatBox;
209  QCheckBox *invertTitleBox;
210  QCheckBox* boxAxisBackbone;
212  QLineEdit *boxPrefix, *boxSuffix;
213 
214  QComboBox *showTicksPolicyBox;
216 };
217 
218 #endif
ColorButton * axisLabelColorButton
Definition: AxesDialog.h:215
QLineEdit * boxPrefix
Definition: AxesDialog.h:212
QCheckBox * boxAntialiseGrid
Definition: AxesDialog.h:198
QComboBox * axisFormatApplyToBox
Definition: AxesDialog.h:208
QGroupBox * boxFramed
Definition: AxesDialog.h:184
QComboBox * boxColName
Definition: AxesDialog.h:183
QCheckBox * boxShowFormula
Definition: AxesDialog.h:181
QSpinBox * boxLabelsDistance
Definition: AxesDialog.h:206
QLabel * labelTable
Definition: AxesDialog.h:185
void changeMinorTicksLength(int minLength)
Definition: AxesDialog.cpp:776
QPushButton * frameDefaultBtn
Definition: AxesDialog.h:205
void updateCurrentAxis()
Definition: AxesDialog.cpp:1643
QSpinBox * boxBreakPosition
Definition: AxesDialog.h:196
void applyAxisFormatToLayer(Graph *g)
Customizes graph axes.
Definition: AxesDialog.cpp:1994
void applyChangesToGrid(Grid *grid)
Modifies the grid.
Definition: AxesDialog.cpp:1089
QSpinBox * boxBreakWidth
Definition: AxesDialog.h:196
QLineEdit * boxSuffix
Definition: AxesDialog.h:212
void pickAxisLabelColor()
Definition: AxesDialog.cpp:1823
QComboBox * canvasFrameApplyToBox
Definition: AxesDialog.h:204
ColorButton * boxColorMajor
Definition: AxesDialog.h:165
QCheckBox * boxMajorGrid
Definition: AxesDialog.h:161
QListWidget * axesGridList
Definition: AxesDialog.h:172
PenStyleBox * boxTypeMinor
Definition: AxesDialog.h:168
QSpinBox * boxFrameWidth
Definition: AxesDialog.h:179
void initGridPage()
generate UI for the grid page
Definition: AxesDialog.cpp:310
A 2D-plotting widget.
Definition: Graph.h:123
QCheckBox * boxXLine
Definition: AxesDialog.h:170
QCheckBox * btnInvert
Definition: AxesDialog.h:156
QSpinBox * boxAxesLinewidth
Definition: AxesDialog.h:179
ColorButton * boxAxisColor
Definition: AxesDialog.h:182
A customized QtColorPicker used for color selection.
Definition: ColorButton.h:39
ColorButton * boxAxisNumColor
Definition: AxesDialog.h:188
DoubleSpinBox * boxWidthMinor
Definition: AxesDialog.h:169
void customAxisFont()
Definition: AxesDialog.cpp:998
DoubleSpinBox * boxBreakStart
Definition: AxesDialog.h:195
void updateAxisType(int axis)
Definition: AxesDialog.cpp:929
DoubleSpinBox * boxStep
Definition: AxesDialog.h:154
void showAxis()
Definition: AxesDialog.cpp:934
QLabel * label2
Definition: AxesDialog.h:185
void setAxisType(int axis)
Definition: AxesDialog.cpp:1623
void changeMajorTicksLength(int majLength)
Definition: AxesDialog.cpp:782
Definition: Grid.h:36
ColorButton * boxFrameColor
Definition: AxesDialog.h:188
void updateTickLabelsList(bool)
Definition: AxesDialog.cpp:1671
void updateGrid()
Definition: AxesDialog.cpp:1033
QGroupBox * boxShowLabels
Definition: AxesDialog.h:175
QComboBox * showTicksPolicyBox
Definition: AxesDialog.h:214
QGroupBox * labelBox
Definition: AxesDialog.h:189
QPushButton * btnAxesFont
Definition: AxesDialog.h:180
void stepDisabled()
Definition: AxesDialog.cpp:1207
QPushButton * buttonApply
Definition: AxesDialog.h:145
QDateTimeEdit * boxStartDateTime
Definition: AxesDialog.h:203
AxesDialog(QWidget *parent=0, Qt::WFlags fl=0)
Constructor.
Definition: AxesDialog.cpp:70
void updateLabelsFormat(int)
Definition: AxesDialog.cpp:1784
QSpinBox * boxBorderWidth
Definition: AxesDialog.h:186
void pageChanged(QWidget *page)
Definition: AxesDialog.cpp:1839
QWidget * gridPage
Definition: AxesDialog.h:160
QPushButton * buttonCancel
Definition: AxesDialog.h:147
QComboBox * boxGridXAxis
Definition: AxesDialog.h:187
QCheckBox * boxLog10AfterBreak
Definition: AxesDialog.h:198
QComboBox * boxApplyGridFormat
Definition: AxesDialog.h:199
QComboBox * boxAxisType
Definition: AxesDialog.h:183
QCheckBox * boxShowAxis
Definition: AxesDialog.h:176
QLabel * minorBoxLabel
Definition: AxesDialog.h:185
QCheckBox * boxBackbones
Definition: AxesDialog.h:181
int exec()
Shows the dialog as a modal dialog.
Definition: AxesDialog.cpp:1856
DoubleSpinBox * boxStart
Definition: AxesDialog.h:151
QLabel * boxScaleTypeLabel
Definition: AxesDialog.h:185
QComboBox * boxMajorTicksType
Definition: AxesDialog.h:183
QComboBox * boxGridYAxis
Definition: AxesDialog.h:187
QSpinBox * boxMajorTicksLength
Definition: AxesDialog.h:186
void initAxesPage()
generate UI for the axes page
Definition: AxesDialog.cpp:438
A QDoubleSpinBox allowing to customize numbers display with respect to locale settings.
Definition: DoubleSpinBox.h:39
QSpinBox * boxAngle
Definition: AxesDialog.h:179
QCheckBox * invertTitleBox
Definition: AxesDialog.h:209
void initScalesPage()
generate UI for the scales page
Definition: AxesDialog.cpp:110
void updateAxisColor(int)
Definition: AxesDialog.cpp:1215
QComboBox * boxMinorTicksType
Definition: AxesDialog.h:183
QSpinBox * boxMinorTicksLength
Definition: AxesDialog.h:186
void updateMinorTicksList(int scaleType)
Definition: AxesDialog.cpp:1867
QListWidget * axesTitlesList
Definition: AxesDialog.h:174
QTabWidget * generalDialog
Definition: AxesDialog.h:148
QComboBox * boxMinorValue
Definition: AxesDialog.h:153
void initFramePage()
generate UI for the general page
Definition: AxesDialog.cpp:700
QLabel * label1
Definition: AxesDialog.h:185
void applyAxisFormat()
Definition: AxesDialog.cpp:2030
QTextEdit * boxFormula
Definition: AxesDialog.h:178
QComboBox * boxTableName
Definition: AxesDialog.h:187
void stepEnabled()
Definition: AxesDialog.cpp:1199
QComboBox * boxScaleType
Definition: AxesDialog.h:152
DoubleSpinBox * boxEnd
Definition: AxesDialog.h:150
void updateShowBox(int axis)
Definition: AxesDialog.cpp:980
void showAxesPage()
Definition: AxesDialog.cpp:1727
void showAxisFormatOptions(int format)
Definition: AxesDialog.cpp:788
ColorButton * boxColorMinor
Definition: AxesDialog.h:164
int mapToQwtAxisId()
Definition: AxesDialog.cpp:1411
QWidget * scalesPage
Definition: AxesDialog.h:149
void showGridOptions(int axis)
Definition: AxesDialog.cpp:1114
QComboBox * boxFormat
Definition: AxesDialog.h:183
void applyCanvasFormat()
Definition: AxesDialog.cpp:1934
QPushButton * buttonLabelFont
Definition: AxesDialog.h:190
void majorGridEnabled(bool on)
Definition: AxesDialog.cpp:1015
int mapToQwtAxis(int axis)
Definition: AxesDialog.cpp:1416
QWidget * frame
Definition: AxesDialog.h:173
QSpinBox * boxBaseline
Definition: AxesDialog.h:179
QComboBox * boxUnit
Definition: AxesDialog.h:187
void setLabelsNumericFormat(int)
Definition: AxesDialog.cpp:1739
QSpinBox * boxPrecision
Definition: AxesDialog.h:179
void setCurrentScale(int axisPos)
Definition: AxesDialog.cpp:1703
QCheckBox * boxAxisBackbone
Definition: AxesDialog.h:210
QPushButton * buttonOk
Definition: AxesDialog.h:146
QWidget * axesPage
Definition: AxesDialog.h:173
void setBaselineDist(int)
Definition: AxesDialog.cpp:1634
void showAxisFormula(int axis)
Definition: AxesDialog.cpp:1770
QDateTimeEdit * boxEndDateTime
Definition: AxesDialog.h:203
void showGeneralPage()
Definition: AxesDialog.cpp:1810
QStringList tickLabelsOn
Definition: AxesDialog.h:193
Widget with text format buttons (connected to a QTextEdit)
Definition: TextFormatButtons.h:38
QComboBox * boxMinorTicksAfterBreak
Definition: AxesDialog.h:197
QRadioButton * btnMajor
Definition: AxesDialog.h:158
QListWidget * axesList
Definition: AxesDialog.h:159
void showGridPage()
Definition: AxesDialog.cpp:1733
QWidget * lastPage
Last selected tab.
Definition: AxesDialog.h:202
DoubleSpinBox * boxStepAfterBreak
Definition: AxesDialog.h:195
QRadioButton * btnStep
Definition: AxesDialog.h:155
ColorButton * boxCanvasColor
Definition: AxesDialog.h:166
QLabel * label3
Definition: AxesDialog.h:185
void minorGridEnabled(bool on)
Definition: AxesDialog.cpp:1024
void setFrameDefaultValues()
Definition: AxesDialog.cpp:1974
QCheckBox * boxMinorGrid
Definition: AxesDialog.h:162
QCheckBox * boxYLine
Definition: AxesDialog.h:171
General plot options dialog.
Definition: AxesDialog.h:64
DoubleSpinBox * boxBreakEnd
Definition: AxesDialog.h:195
QTextEdit * boxTitle
Definition: AxesDialog.h:178
QComboBox * boxMinorTicksBeforeBreak
Definition: AxesDialog.h:197
void showFormulaBox()
Definition: AxesDialog.cpp:1815
void setGraph(Graph *g)
Definition: AxesDialog.cpp:1375
QSpinBox * boxTickLabelDistance
Definition: AxesDialog.h:211
bool updatePlot(QWidget *page=NULL)
Definition: AxesDialog.cpp:1231
void accept()
Definition: AxesDialog.cpp:1009
QGroupBox * axisFormatBox
Definition: AxesDialog.h:207
void updateTitleBox(int axis)
Definition: AxesDialog.cpp:1604
A modified QComboBox allowing to choose a Qt::PenStyle.
Definition: PenStyleBox.h:38
TextFormatButtons * formatButtons
Definition: AxesDialog.h:191
void customAxisLabelFont()
Definition: AxesDialog.cpp:1829
QSpinBox * boxMajorValue
Definition: AxesDialog.h:157
QGroupBox * boxAxesBreaks
Definition: AxesDialog.h:194
PenStyleBox * boxTypeMajor
Definition: AxesDialog.h:163
DoubleSpinBox * boxWidthMajor
Definition: AxesDialog.h:167
QCheckBox * boxBreakDecoration
Definition: AxesDialog.h:198
void applyCanvasFormatTo(Graph *g)
Definition: AxesDialog.cpp:1919
Graph * d_graph
Definition: AxesDialog.h:200
void setTicksType(int)
Definition: AxesDialog.cpp:1664
DoubleSpinBox * boxStepBeforeBreak
Definition: AxesDialog.h:195
void updateScale()
Definition: AxesDialog.cpp:1437