19
16
#include "kchartParameterConfigPage.h"
20
17
#include "kchartPieConfigPage.h"
21
18
#include "kchartParameter3dConfigPage.h"
22
#include "kchartPolarSubTypeChartPage.h"
19
#include "kchartLegendConfigPage.h"
20
#include "kchartHeaderFooterConfigPage.h"
21
#include "kchartLine3dConfigPage.h"
22
#include "kchartParameterPolarConfigPage.h"
24
#include <kapplication.h>
25
25
#include <klocale.h>
26
26
#include <kdebug.h>
28
28
#include <qradiobutton.h>
31
#include "kdchart/KDChartParams.h"
32
#include "kdchart/KDFrame.h"
34
KChartConfigDialog::KChartConfigDialog( KDChartParams* params,
35
QWidget* parent,KoChart::Data *dat ) :
30
#include "kchart_params.h"
32
KChartConfigDialog::KChartConfigDialog( KChartParams* params,
33
QWidget* parent, int flags,KoChart::Data *dat ) :
36
34
QTabDialog( parent, "Chart config dialog", true ),
40
_parameterfontpage(0),
43
_backgroundpixpage(0),
41
50
//_geompage = new KChartGeometryConfigPage( this );
42
51
//addTab( _geompage, i18n( "&Geometry" ) );
43
setCaption( i18n( "Chart config dialog" ) );
52
setCaption( i18n( "Chart Config Dialog" ) );
45
_colorpage = new KChartColorConfigPage( this );
46
addTab( _colorpage, i18n( "&Colors" ) );
48
if( _params->chartType() != KDChartParams::Pie ) {
49
_parameterpage = new KChartParameterConfigPage(_params,this );
50
addTab( _parameterpage, i18n( "&Parameter" ) );
53
_parameterpiepage = new KChartParameterPieConfigPage(_params,this );
54
addTab( _parameterpiepage, i18n( "&Parameter" ) );
56
_piepage = new KChartPieConfigPage(_params, this );
57
addTab( _piepage, i18n( "&Pie" ) );
60
_parameterfontpage = new KChartFontConfigPage(_params,this, dat );
61
addTab( _parameterfontpage, i18n( "&Font" ) );
63
//_backgroundpixpage = new KChartBackgroundPixmapConfigPage( _params, this );
64
//addTab( _backgroundpixpage, i18n( "&Background pixmap" ) );
66
if( ( _params->chartType() == KDChartParams::Bar &&
67
_params->threeDBars() ) )
69
_parameter3dpage = new KChartParameter3dConfigPage(_params,this );
70
addTab( _parameter3dpage,i18n("3D Parameters"));
72
// Lines and pies might need config pages as well, but not yet
73
switch( _params->chartType() ) {
74
case KDChartParams::Bar:
75
_subTypePage = new KChartBarSubTypeChartPage( _params, this );
76
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
78
case KDChartParams::Area:
79
_subTypePage = new KChartAreaSubTypeChartPage( _params, this );
80
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
82
case KDChartParams::Line:
83
_subTypePage = new KChartLineSubTypeChartPage( _params, this );
84
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
86
case KDChartParams::Polar:
87
_subTypePage = new KChartPolarSubTypeChartPage( _params, this );
88
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
94
if( _params->chartType() == KDChartParams::HiLo &&
95
( _params->hiLoChartSubType() == KDChartParams::HiLoClose ||
96
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) ) {
97
// PENDING(kalle) Combo page needs to be redone completely.
98
// _hlcChart=new KChartComboPage(_params,this);
55
if(flags & KC_COLORS )
57
_colorpage = new KChartColorConfigPage( _params, this, dat );
58
addTab( _colorpage, i18n( "&Colors" ) );
60
else if( flags & KC_FONT )
62
_parameterfontpage = new KChartFontConfigPage(_params,this, dat );
63
addTab( _parameterfontpage, i18n( "&Font" ) );
65
else if( flags & KC_BACK )
67
_backgroundpixpage = new KChartBackgroundPixmapConfigPage( _params, this );
68
addTab( _backgroundpixpage, i18n( "&Background" ) );
70
else if( flags & KC_LEGEND )
72
_parameterLegend = new KChartLegendConfigPage(_params,this );
73
addTab( _parameterLegend,i18n("Legend"));
75
else if(flags & KC_SUBTYPE)
79
else if(flags & KC_HEADERFOOTER)
81
_headerfooterpage=new KChartHeaderFooterConfigPage(_params,this);
82
addTab( _headerfooterpage,i18n("Header/Footer"));
84
else if( flags & KC_ALL )
86
_colorpage = new KChartColorConfigPage( _params, this, dat );
87
addTab( _colorpage, i18n( "&Colors" ) );
88
_parameterfontpage = new KChartFontConfigPage(_params,this, dat );
89
addTab( _parameterfontpage, i18n( "&Font" ) );
90
_backgroundpixpage = new KChartBackgroundPixmapConfigPage( _params, this );
91
addTab( _backgroundpixpage, i18n( "&Background" ) );
92
_parameterLegend = new KChartLegendConfigPage(_params,this );
93
addTab( _parameterLegend,i18n("Legend"));
94
if( _params->chartType() != KDChartParams::Pie && _params->chartType() != KDChartParams::Ring ) {
95
_axespage = new KChartParameterConfigPage(_params,this );
96
addTab( _axespage, i18n( "&Axes" ) );
98
} else if( _params->chartType() != KDChartParams::Ring ) {
99
_parameterpiepage = new KChartParameterPieConfigPage(_params,this );
100
addTab( _parameterpiepage, i18n( "&Axes" ) );
102
_piepage = new KChartPieConfigPage(_params, this );
103
addTab( _piepage, i18n( "&Pie" ) );
106
if( _params->chartType() == KDChartParams::Bar )
108
_parameter3dpage = new KChartParameter3dConfigPage(_params,this );
109
addTab( _parameter3dpage,i18n("3D Parameters"));
111
else if( _params->chartType() == KDChartParams::Line)
113
_linepage3d= new KChartLine3dConfigPage(_params,this);
114
addTab( _linepage3d,i18n("3D Line Parameters"));
116
else if( _params->chartType() == KDChartParams::Polar)
118
_polarpage=new KChartParameterPolarConfigPage(_params,this);
119
addTab( _polarpage,i18n("Polar Parameters"));
124
if( _params->chartType() == KDChartParams::HiLo &&
125
( _params->hiLoChartSubType() == KDChartParams::HiLoClose ||
126
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) ) {
127
// PENDING(kalle) Combo page needs to be redone completely.
128
// _hlcChart=new KChartComboPage(_params,this);
99
129
// addTab( _hlcChart, i18n( "HLC Chart" ) );
131
_headerfooterpage=new KChartHeaderFooterConfigPage(_params,this);
132
addTab( _headerfooterpage,i18n("Header/Footer"));
106
setOKButton( i18n( "OK" ) );
107
setApplyButton( i18n( "Apply" ) );
108
setDefaultButton( i18n( "Defaults" ) );
109
setCancelButton( i18n( "Cancel" ) );
139
setOKButton( i18n( "&OK" ) );
140
setApplyButton( i18n( "&Apply" ) );
141
setDefaultButton( i18n( "&Defaults" ) );
142
setCancelButton( i18n( "&Cancel" ) );
111
144
connect( this, SIGNAL( applyButtonPressed() ), this, SLOT( apply() ) );
112
145
connect( this, SIGNAL( defaultButtonPressed() ), this, SLOT( defaults() ) );
125
const QColor backColor( _colorpage->backgroundColor() );
127
// temp. hack: the background is removed if set to 230,222,222.
129
// For KOffice 1.2 this is to be removed by a checkbox.
131
if( 230 == backColor.red() && 222 == backColor.green() && 222 == backColor.blue() ){
133
const KDChartParams::KDChartFrameSettings * innerFrame =
134
_params->frameSettings( KDChartEnums::AreaInnermost, bFound );
136
KDFrame& frame( (KDFrame&)innerFrame->frame() );
137
frame.setBackground();
141
_params->setSimpleFrame( KDChartEnums::AreaInnermost,
149
QBrush( _colorpage->backgroundColor() ) );
152
KDFrame::PixStretched ); // enum: PixCentered, PixScaled, PixStretched
155
157
// PENDING(kalle) Replace with equivalents
158
// _params->BGColor = _colorpage->backgroundColor();
156
159
// _params->PlotColor = _colorpage->plotColor();
157
160
//_params->EdgeColor = _colorpage->edgeColor();
158
161
// _params->VolColor = _colorpage->volColor();
160
// set the color for Header, Header2 and Footer
161
// (this will be rerplaced for KOffice 1.2 to support
162
// the enhanced header/footer handling of KDChart 1.1
163
_params->setHeaderFooterColor( KDChartParams::HdFtPosHeader,
164
_colorpage->hdFtColor( KDChartParams::HdFtPosHeader ) );
165
_params->setHeaderFooterColor( KDChartParams::HdFtPosHeader2,
166
_colorpage->hdFtColor( KDChartParams::HdFtPosHeader2 ) );
167
_params->setHeaderFooterColor( KDChartParams::HdFtPosFooter,
168
_colorpage->hdFtColor( KDChartParams::HdFtPosFooter ) );
170
KDChartAxisParams leftparams = _params->axisParams( KDChartAxisParams::AxisPosLeft );
171
KDChartAxisParams rightparams = _params->axisParams( KDChartAxisParams::AxisPosRight );
172
KDChartAxisParams bottomparams = _params->axisParams( KDChartAxisParams::AxisPosBottom );
173
leftparams.setAxisGridColor( _colorpage->gridColor() );
175
// temporary solution: make vertical grid lines have the same
176
// color as horizontal grid lines (khz, 10.12.2001)
177
bottomparams.setAxisGridColor( _colorpage->gridColor() );
179
_params->setOutlineDataColor( _colorpage->lineColor() );
180
if( _colorpage->xTitleColor().isValid() )
181
bottomparams.setAxisLineColor( _colorpage->xTitleColor() );
182
if( _colorpage->yTitleColor().isValid() )
183
leftparams.setAxisLineColor( _colorpage->yTitleColor() );
184
if( _colorpage->yTitle2Color().isValid() )
185
rightparams.setAxisLineColor( _colorpage->yTitle2Color() );
186
bottomparams.setAxisLabelsColor( _colorpage->xLabelColor() );
187
leftparams.setAxisLabelsColor( _colorpage->yLabelColor() );
188
rightparams.setAxisLabelsColor( _colorpage->yLabel2Color() );
190
_params->setAxisParams( KDChartAxisParams::AxisPosBottom, bottomparams );
191
_params->setAxisParams( KDChartAxisParams::AxisPosLeft, leftparams );
192
_params->setAxisParams( KDChartAxisParams::AxisPosRight, rightparams );
194
if( _params->chartType() != KDChartParams::Pie ) {
195
_parameterpage->apply();
197
_parameterpiepage->apply();
201
if( ( _params->chartType() == KDChartParams::Bar &&
202
_params->threeDBars() ) )
166
KDChartAxisParams leftparams = _params->axisParams( KDChartAxisParams::AxisPosLeft );
167
leftparams.setAxisGridColor( _colorpage->gridColor() );
168
_params->setOutlineDataColor( _colorpage->lineColor() );
169
KDChartAxisParams rightparams = _params->axisParams( KDChartAxisParams::AxisPosRight );
170
KDChartAxisParams bottomparams = _params->axisParams( KDChartAxisParams::AxisPosBottom );
171
if( _colorpage->xTitleColor().isValid() )
172
bottomparams.setAxisLineColor( _colorpage->xTitleColor() );
174
bottomparams.setAxisLineColor( QColor() );
175
if( _colorpage->yTitleColor().isValid() )
176
leftparams.setAxisLineColor( _colorpage->yTitleColor() );
178
leftparams.setAxisLineColor( QColor() );
179
if( _colorpage->yTitle2Color().isValid() )
180
rightparams.setAxisLineColor( _colorpage->yTitle2Color() );
182
rightparams.setAxisLineColor( QColor() );
183
bottomparams.setAxisLabelsColor( _colorpage->xLabelColor() );
184
leftparams.setAxisLabelsColor( _colorpage->yLabelColor() );
185
rightparams.setAxisLabelsColor( _colorpage->yLabel2Color() );
186
_params->setAxisParams( KDChartAxisParams::AxisPosBottom, bottomparams );
187
_params->setAxisParams( KDChartAxisParams::AxisPosLeft, leftparams );
188
_params->setAxisParams( KDChartAxisParams::AxisPosRight, rightparams );
190
if((_piepage&& _parameterpiepage) || _axespage )
192
if( _params->chartType() != KDChartParams::Pie )
196
_parameterpiepage->apply();
201
if( _parameter3dpage && _params->chartType() == KDChartParams::Bar )
203
202
_parameter3dpage->apply();
205
_parameterfontpage->apply();
204
if( _linepage3d && _params->chartType() == KDChartParams::Line)
205
_linepage3d->apply();
207
if(_parameterfontpage)
208
_parameterfontpage->apply();
207
213
if( _subTypePage )
208
214
_subTypePage->apply();
210
216
if( _params->chartType() == KDChartParams::HiLo &&
211
217
( _params->hiLoChartSubType() == KDChartParams::HiLoClose ||
212
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) ) {
215
//_backgroundpixpage->apply();
217
// data in the params struct has changed; notify application
218
//emit dataChanged();
220
// for( uint i = 0; i < NUMDATACOLORS; i++ )
221
// _params->_datacolors.setColor( i, _colorpage->dataColor( i ) );
218
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) )
221
_hlcChart->apply();*/
224
if(_backgroundpixpage)
225
_backgroundpixpage->apply();
228
// for( uint i = 0; i < NUMDATACOLORS; i++ )
229
// _params->_datacolors.setColor( i, _colorpage->dataColor( i ) );
231
_parameterLegend->apply();
233
if(_headerfooterpage)
234
_headerfooterpage->apply();
223
241
// data in the params struct has changed; notify application
224
242
emit dataChanged();
227
246
void KChartConfigDialog::defaults()
230
_colorpage->setHdFtColor( KDChartParams::HdFtPosHeader,
231
_params->headerFooterColor( KDChartParams::HdFtPosHeader ) );
232
_colorpage->setHdFtColor( KDChartParams::HdFtPosHeader2,
233
_params->headerFooterColor( KDChartParams::HdFtPosHeader2 ) );
234
_colorpage->setHdFtColor( KDChartParams::HdFtPosFooter,
235
_params->headerFooterColor( KDChartParams::HdFtPosFooter ) );
238
const KDChartParams::KDChartFrameSettings * innerFrame =
239
_params->frameSettings( KDChartEnums::AreaInnermost, bFound );
242
const QPixmap* backPixmap;
243
KDFrame::BackPixmapMode backPixmapMode;
244
const QBrush& background = innerFrame->frame().background( backPixmap, backPixmapMode );
245
if( ! backPixmap || backPixmap->isNull() ) {
246
_colorpage->setBackgroundColor( background.color() );
250
// .. // set the background pixmap
253
_colorpage->setBackgroundColor( QColor(230, 222, 222) );
255
_colorpage->setLineColor( _params->outlineDataColor() );
256
KDChartAxisParams leftparams( _params->axisParams( KDChartAxisParams::AxisPosLeft ) );
257
KDChartAxisParams rightparams( _params->axisParams( KDChartAxisParams::AxisPosRight ) );
258
KDChartAxisParams bottomparams( _params->axisParams( KDChartAxisParams::AxisPosBottom ) );
259
_colorpage->setGridColor( leftparams.axisGridColor() );
260
_colorpage->setXTitleColor( bottomparams.axisLineColor() );
261
_colorpage->setYTitleColor( leftparams.axisLineColor() );
262
_colorpage->setYTitle2Color( rightparams.axisLineColor() );
263
_colorpage->setXLabelColor( bottomparams.axisLabelsColor() );
264
_colorpage->setYLabelColor( leftparams.axisLabelsColor() );
265
_colorpage->setYLabel2Color( rightparams.axisLabelsColor() );
266
// PENDING(kalle) Replace with KDChart equivalents
267
// _colorpage->setBackgroundColor( _params->BGColor );
268
// _colorpage->setPlotColor( _params->PlotColor );
269
// _colorpage->setVolColor( _params->VolColor );
270
//_colorpage->setEdgeColor( _params->EdgeColor );
272
if( _params->chartType() != KDChartParams::Pie ) {
273
_parameterpage->init();
275
_parameterpiepage->init();
279
if( ( _params->chartType() == KDChartParams::Bar &&
280
_params->threeDBars() ) )
251
_colorpage->setLineColor( _params->outlineDataColor() );
252
KDChartAxisParams leftparams( _params->axisParams( KDChartAxisParams::AxisPosLeft ) );
253
KDChartAxisParams rightparams( _params->axisParams( KDChartAxisParams::AxisPosRight ) );
254
KDChartAxisParams bottomparams( _params->axisParams( KDChartAxisParams::AxisPosBottom ) );
255
_colorpage->setGridColor( leftparams.axisGridColor() );
256
_colorpage->setXTitleColor( bottomparams.axisLineColor() );
257
_colorpage->setYTitleColor( leftparams.axisLineColor() );
258
_colorpage->setYTitle2Color( rightparams.axisLineColor() );
259
_colorpage->setXLabelColor( bottomparams.axisLabelsColor() );
260
_colorpage->setYLabelColor( leftparams.axisLabelsColor() );
261
_colorpage->setYLabel2Color( rightparams.axisLabelsColor() );
262
// PENDING(kalle) Replace with KDChart equivalents
263
// _colorpage->setBackgroundColor( _params->BGColor );
264
// _colorpage->setPlotColor( _params->PlotColor );
265
// _colorpage->setVolColor( _params->VolColor );
266
//_colorpage->setEdgeColor( _params->EdgeColor );
269
if( _axespage || (_piepage && _parameterpiepage))
271
if( _params->chartType() != KDChartParams::Pie )
277
_parameterpiepage->init();
282
if(_parameter3dpage && _params->chartType() == KDChartParams::Bar )
281
283
_parameter3dpage->init();
283
_parameterfontpage->init();
285
if( _linepage3d && _params->chartType() == KDChartParams::Line)
288
if(_parameterfontpage)
289
_parameterfontpage->init();
285
291
if( _subTypePage )
286
292
_subTypePage->init();
288
if( _params->chartType() == KDChartParams::HiLo &&
289
( _params->hiLoChartSubType() == KDChartParams::HiLoClose ||
290
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) ) {
294
//_backgroundpixpage->init();
296
if( _params->chartType() == KDChartParams::HiLo &&
297
( _params->hiLoChartSubType() == KDChartParams::HiLoClose ||
298
_params->hiLoChartSubType() == KDChartParams::HiLoOpenClose ) ) {
302
if(_backgroundpixpage)
303
_backgroundpixpage->init();
305
_parameterLegend->init();
295
306
// for( uint i = 0; i < NUMDATACOLORS; i++ )
296
307
// _colorpage->setDataColor( i, _params->dataColor( i ) );
309
if(_headerfooterpage)
310
_headerfooterpage->init();
316
void KChartConfigDialog::init3dPage()
318
switch( _params->chartType() ) {
319
case KDChartParams::Bar:
320
_subTypePage = new KChartBarSubTypeChartPage( _params, this );
321
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
323
case KDChartParams::Area:
324
_subTypePage = new KChartAreaSubTypeChartPage( _params, this );
325
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
327
case KDChartParams::Line:
328
_subTypePage = new KChartLineSubTypeChartPage( _params, this );
329
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
331
case KDChartParams::HiLo:
332
_subTypePage = new KChartHiloSubTypeChartPage( _params, this );
333
addTab( _subTypePage, i18n( "Chart &Subtype" ) );
335
case KDChartParams::Polar:
336
_subTypePage = new KChartPolarSubTypeChartPage( _params, this );
337
addTab( _subTypePage, i18n( "Chart &Subtype" ) );