kchart

kchartWizardSetupAxesPage.cpp
1#include "kchartWizardSetupAxesPage.h"
2#include "kchart_view.h"
3#include "kchart_part.h"
4
5#include <tqlabel.h>
6#include <tqframe.h>
7#include <tqlineedit.h>
8#include <tqcheckbox.h>
9#include <tqgroupbox.h>
10#include <tqlayout.h>
11#include <tdelocale.h>
12#include <tdefontdialog.h>
13#include <knumvalidator.h>
14#include <math.h>
15#include <float.h>
16
17
18#include <tqspinbox.h>
19#include <tqpushbutton.h>
20#include <tqcolor.h>
21
22#include "kchart_params.h"
23
24namespace KChart
25{
26
27KChartWizardSetupAxesPage::KChartWizardSetupAxesPage( TQWidget* parent,
28 KChartPart* chart ) :
29 TQWidget( parent ),
30 _chart( chart )
31{
32 chart3d=true;
33
34 TQGridLayout *grid1 = new TQGridLayout(this,2,2,KDialog::marginHint(), KDialog::spacingHint());
35
36 TQGroupBox* tmpTQGroupBox;
37 tmpTQGroupBox = new TQGroupBox( this, "GroupBox_1" );
38 tmpTQGroupBox->setFrameStyle( 49 );
39
40 TQGridLayout *grid2 = new TQGridLayout(tmpTQGroupBox,3,2,KDialog::marginHint(), KDialog::spacingHint());
41
42
43 //grid = new TQCheckBox( i18n( "Has grid:" ), tmpTQGroupBox );
44 new TQLabel( i18n( "Grid Lines" ), tmpTQGroupBox );
45 gridX = new TQCheckBox( i18n( "X axis:" ), tmpTQGroupBox );
46 gridY = new TQCheckBox( i18n( "Y axis:" ), tmpTQGroupBox );
47
48 gridX->setChecked(_chart->params()->showGrid());
49 gridY->setChecked(_chart->params()->showGrid());
50 grid2->addWidget(gridX, 0, 0);
51 grid2->addWidget(gridY, 1, 0);
52
53 gridColor=new KColorButton(tmpTQGroupBox);
54 // PENDING(kalle) Put back in
55 // colorGrid=_chart->params()->GridColor;
56 gridColor->setColor( colorGrid );
57 grid2->addWidget(gridColor, 0, 1);
58
59 border = new TQCheckBox( i18n( "Border:" ), tmpTQGroupBox );
60 // PENDING(kalle) Put back in
61 // border->setChecked( _chart->params()->border );
62 grid2->addWidget(border, 2, 0);
63 border->setEnabled(false);
64
65 borderColor=new KColorButton(tmpTQGroupBox);
66 // PENDING(kalle) Put back in
67 // colorBorder=_chart->params()->LineColor;
68 borderColor->setColor( colorBorder );
69 grid2->addWidget(borderColor,2,1);
70 borderColor->setEnabled(false);
71
72 grid1->addWidget(tmpTQGroupBox,0,0);
73
74
75 tmpTQGroupBox = new TQGroupBox( this, "GroupBox_2" );
76 tmpTQGroupBox->setFrameStyle( 49 );
77
78 grid2 = new TQGridLayout(tmpTQGroupBox,3,2,KDialog::marginHint(), KDialog::spacingHint());
79
80 TQLabel *tmpLabel;
81 tmpLabel=new TQLabel(tmpTQGroupBox);
82 tmpLabel->setText(i18n("Angle 3D:"));
83 grid2->addWidget(tmpLabel,0,0);
84 angle = new TQSpinBox(1, 90, 1,tmpTQGroupBox );
85 angle->setValue( _chart->params()->threeDBarAngle() );
86 grid2->addWidget(angle,0,1);
87
88 tmpLabel=new TQLabel(tmpTQGroupBox);
89 tmpLabel->setText(i18n("Depth 3D:"));
90 grid2->addWidget(tmpLabel,1,0);
91 depth = new TQSpinBox(1, 40, 1, tmpTQGroupBox);
92 depth->setValue( static_cast<int>( _chart->params()->threeDBarDepth() ) );
93 grid2->addWidget(depth,1,1);
94
95 // Bar width is computed automatically in KDChart (and can be
96 // changed via gaps)
97 // tmpLabel=new TQLabel(tmpTQGroupBox);
98// tmpLabel->setText(i18n("Bar width:"));
99// grid2->addWidget(tmpLabel,2,0);
100// barWidth = new TQSpinBox(1, 200, 1, tmpTQGroupBox);
101// barWidth->setValue(_chart->params()->bar_width);
102// grid2->addWidget(barWidth,2,1);
103
104 grid1->addWidget(tmpTQGroupBox,0,1);
105
106 tmpTQGroupBox = new TQGroupBox( this, "GroupBox_3" );
107 tmpTQGroupBox->setFrameStyle( 49 );
108
109 grid2 = new TQGridLayout(tmpTQGroupBox,3,2,KDialog::marginHint(), KDialog::spacingHint());
110
111 tmpLabel=new TQLabel(tmpTQGroupBox);
112 tmpLabel->setText(i18n("Y interval:"));
113 grid2->addWidget(tmpLabel,0,0);
114
115 TQString tmp;
116 y_interval=new TQLineEdit(tmpTQGroupBox);
117 y_interval->setValidator(new KFloatValidator( y_interval));
118 grid2->addWidget(y_interval,0,1);
119 // PENDING(kalle) Put back in
120 // if( _chart->params()->requested_yinterval != -DBL_MAX)
121// y_interval->setText( tmp.setNum(_chart->params()->requested_yinterval));
122
123 tmpLabel=new TQLabel(tmpTQGroupBox);
124 tmpLabel->setText(i18n("Y min:"));
125 grid2->addWidget(tmpLabel,1,0);
126 y_min=new TQLineEdit(tmpTQGroupBox);
127 y_min->setValidator(new KFloatValidator( y_min));
128 grid2->addWidget(y_min,1,1);
129 // PENDING(kalle) Put back in
130 // if( _chart->params()->requested_ymin != DBL_MAX)
131// y_min->setText( tmp.setNum(_chart->params()->requested_ymin));
132
133 tmpLabel=new TQLabel(tmpTQGroupBox);
134 tmpLabel->setText(i18n("Y max:"));
135 grid2->addWidget(tmpLabel,2,0);
136 y_max=new TQLineEdit(tmpTQGroupBox);
137 y_max->setValidator(new KFloatValidator( y_max));
138 grid2->addWidget(y_max,2,1);
139 // PENDING(kalle) Put back in
140 // if( _chart->params()->requested_ymax != -DBL_MAX)
141// y_max->setText( tmp.setNum(_chart->params()->requested_ymax));
142
143 grid1->addWidget(tmpTQGroupBox,1,0);
144 tmpTQGroupBox->setEnabled(false);
145
146 tmpTQGroupBox = new TQGroupBox( this, "GroupBox_3" );
147 tmpTQGroupBox->setFrameStyle( 49 );
148
149 grid2 = new TQGridLayout(tmpTQGroupBox,3,2,KDialog::marginHint(), KDialog::spacingHint());
150
151 tmpLabel=new TQLabel(tmpTQGroupBox);
152 tmpLabel->setText(i18n("Y-label format:"));
153 grid2->addWidget(tmpLabel,0,0);
154 ylabel_fmt=new TQLineEdit(tmpTQGroupBox);
155 grid2->addWidget(ylabel_fmt,0,1);
156
157 // PENDING(kalle) Put back in
158 // if( !_chart->params()->ylabel_fmt.isEmpty()) {
159// int len=_chart->params()->ylabel_fmt.length();
160// ylabel_fmt->setText(_chart->params()->ylabel_fmt.right(len-3));
161// }
162 ylabelFont = new TQPushButton( tmpTQGroupBox);
163 grid2->addWidget(ylabelFont,1,0);
164 ylabelFont->setText(i18n("Font..."));
165 // PENDING(kalle) Put back in
166 // ylabel=_chart->params()->yAxisFont();
167
168 ylabelColor=new KColorButton(tmpTQGroupBox);
169 grid2->addWidget(ylabelColor,1,1);
170 // PENDING(kalle) Put back in
171 // ycolor=_chart->params()->YLabelColor;
172 ylabelColor->setColor( ycolor );
173
174#if 0
175 tmpLabel=new TQLabel(tmpTQGroupBox);
176 tmpLabel->setText(i18n("Y-label 2 format:"));
177 grid2->addWidget(tmpLabel,2,0);
178
179 ylabel2_fmt=new TQLineEdit(tmpTQGroupBox);
180 grid2->addWidget(ylabel2_fmt,2,1);
181 // PENDING(kalle) Put back in
182 // if( !_chart->params()->ylabel2_fmt.isEmpty()) {
183// int len=_chart->params()->ylabel2_fmt.length();
184// ylabel2_fmt->setText(_chart->params()->ylabel2_fmt.right(len-3));
185// }
186#endif
187 tmpTQGroupBox->setEnabled(false);
188 grid1->addWidget(tmpTQGroupBox,1,1);
189
190
191
192 connect(ylabelFont,TQ_SIGNAL(clicked()),this,TQ_SLOT(changeLabelFont()));
193
194
195 connect(ylabelColor,TQ_SIGNAL(changed( const TQColor & )),
196 this,TQ_SLOT(changeLabelColor(const TQColor &)));
197 connect(borderColor,TQ_SIGNAL(changed( const TQColor & )),
198 this,TQ_SLOT(changeBorderColor(const TQColor &)));
199 connect(gridColor,TQ_SIGNAL(changed( const TQColor & )),
200 this,TQ_SLOT(changeGridColor(const TQColor &)));
201}
202
203
204KChartWizardSetupAxesPage::~KChartWizardSetupAxesPage()
205{
206 // _chart->removeAutoUpdate( preview );
207}
208
209void KChartWizardSetupAxesPage::changeLabelColor(const TQColor &_color)
210{
211 ycolor=_color;
212}
213
214void KChartWizardSetupAxesPage::changeBorderColor(const TQColor &_color)
215{
216 colorBorder=_color;
217}
218
219void KChartWizardSetupAxesPage::changeGridColor(const TQColor &_color)
220{
221 colorGrid=_color;
222}
223
224void KChartWizardSetupAxesPage::changeLabelFont()
225{
226 if( TDEFontDialog::getFont( ylabel,false,this ) == TQDialog::Rejected )
227 return;
228}
229
230void KChartWizardSetupAxesPage::paintEvent( TQPaintEvent *)
231{
232 if(chart3d) {
233 angle->setEnabled(true);
234 depth->setEnabled(true);
235 //barWidth->setEnabled(true);
236 } else {
237 angle->setEnabled(false);
238 depth->setEnabled(false);
239 //barWidth->setEnabled(false);
240 }
241}
242
243void KChartWizardSetupAxesPage::apply()
244{
245 _chart->params()->setAxisShowGrid(KDChartAxisParams::AxisPosLeft,gridY->isChecked() );
246 _chart->params()->setAxisShowGrid(KDChartAxisParams::AxisPosBottom,gridX->isChecked() );
247
248 KDChartAxisParams leftparams;
249 leftparams = _chart->params()->axisParams( KDChartAxisParams::AxisPosLeft );
250/* if( !y_max->text().isEmpty())
251 {
252 leftparams.setAxisAreaMode(KDChartAxisParams::AxisAreaModeMinMaxSize);
253 leftparams.setAxisAreaMax(y_max->text().toDouble());
254 }
255 else
256 leftparams.setAxisAreaMode(KDChartAxisParams::AxisAreaModeAutoSize);*/
257 //leftparams.setAxisCalcMode(KDChartAxisParams::AxisCalcLogarithmic);
258 _chart->params()->setAxisParams( KDChartAxisParams::AxisPosLeft, leftparams );
259 // PENDING(kalle) Put back in
260 // _chart->params()->grid =grid->isChecked() ;
261// if( !y_interval->text().isEmpty())
262// _chart->params()->requested_yinterval=y_interval->text().toDouble();
263// else
264// _chart->params()->requested_yinterval=0;
265// if( !y_max->text().isEmpty())
266// _chart->params()->requested_ymax=y_max->text().toDouble();
267// else
268// _chart->params()->requested_ymax=0;
269// if( !y_min->text().isEmpty())
270// _chart->params()->requested_ymin=y_min->text().toDouble();
271// else
272// _chart->params()->requested_ymin=0;
273
274 // PENDING(kalle) Put back in
275// _chart->params()->border =border->isChecked() ;
276
277 _chart->params()->setThreeDBarAngle( angle->value() );
278 // PENDING(kalle) Put back in
279 // if(! ylabel_fmt->text().isEmpty()) {
280// TQString tmp="%g "+ylabel_fmt->text();
281// _chart->params()->ylabel_fmt=tmp;
282// } else {
283// _chart->params()->ylabel_fmt="";
284// }
285// _chart->params()->setYAxisFont(ylabel);
286// _chart->params()->YLabelColor=ycolor;
287// _chart->params()->GridColor=colorGrid;
288// _chart->params()->LineColor=colorBorder;
289 _chart->params()->setThreeDBarDepth( depth->value() );
290 // PENDING(kalle) Put back in
291 // if(! ylabel2_fmt->text().isEmpty()) {
292// TQString tmp="%g "+ylabel2_fmt->text();
293// _chart->params()->ylabel2_fmt=tmp;
294// } else {
295// _chart->params()->ylabel2_fmt="";
296// }
297}
298
299} //namespace KChart
300
301#include "kchartWizardSetupAxesPage.moc"
access the chart axis parameters.