kchart

kchartWizardSelectChartSubTypePage.cpp
1
2#include "kchartWizardSelectChartSubTypePage.h"
3#include "kchart_view.h"
4#include "kchart_part.h"
5
6#include <tqbuttongroup.h>
7#include <tqpushbutton.h>
8#include <tqradiobutton.h>
9#include <tqspinbox.h>
10#include <tqlabel.h>
11#include <tqptrcollection.h>
12#include <tqobjectlist.h>
13#include <tqlayout.h>
14#include <tqhbox.h>
15
16#include <kdebug.h>
17#include <kiconloader.h>
18#include <tdeglobal.h>
19#include <tdelocale.h>
20#include <kdialog.h>
21
22#include "kchart_params.h"
23
24
25namespace KChart
26{
27
28KChartWizardSelectChartSubTypePage::KChartWizardSelectChartSubTypePage( TQWidget* parent,
29 KChartPart* chart ) :
30 TQWidget( parent ),
31 m_chart( chart )
32{
33 // FIXME: Use KChartPart::chartType() instead, when implemented.
34 m_charttype = (KChartParams::ChartType) m_chart->params()->chartType();
35 chartSubType = true;
36
37 TQGridLayout *grid1 = new TQGridLayout(this, 3, 2, KDialog::marginHint(),
38 KDialog::spacingHint());
39
40 TQVBoxLayout *lay1 = new TQVBoxLayout( );
41 lay1->setMargin( KDialog::marginHint() );
42 lay1->setSpacing( KDialog::spacingHint() );
43
44 TQButtonGroup *grp = new TQButtonGroup( 1, TQt::Horizontal,
45 i18n( "Chart Sub Type" ), this );
46 grp->setRadioButtonExclusive( true );
47 grp->layout();
48 lay1->addWidget(grp);
49 m_normal = new TQRadioButton( i18n( "Normal" ), grp );
50 m_stacked = new TQRadioButton( i18n( "Stacked" ), grp );
51 m_percent = new TQRadioButton( i18n( "Percent" ), grp );
52
53 TQHBox *hbox = new TQHBox( this );
54 /*TQLabel *lbl =*/ new TQLabel( i18n( "Number of lines: "), hbox );
55 m_numLines = new TQSpinBox( hbox );
56
57 if( ( m_chart->chartType() == KChartParams::Bar &&
58 m_chart->params()->barChartSubType() == KDChartParams::BarNormal )
59 || ( m_chart->chartType() == KChartParams::Line &&
60 m_chart->params()->lineChartSubType() == KDChartParams::LineNormal )
61 || ( m_chart->chartType() == KChartParams::Polar &&
62 m_chart->params()->polarChartSubType() == KDChartParams::PolarNormal )
63 || ( m_chart->chartType() == KChartParams::Area &&
64 m_chart->params()->areaChartSubType() == KDChartParams::AreaNormal ) )
65 m_normal->setChecked( true );
66 else if( ( m_chart->params()->chartType() == KChartParams::Bar &&
67 m_chart->params()->barChartSubType() == KDChartParams::BarStacked ) ||
68 ( m_chart->params()->chartType() == KChartParams::Line &&
69 m_chart->params()->lineChartSubType() == KDChartParams::LineStacked ) ||
70 ( m_chart->params()->chartType() == KChartParams::Polar &&
71 m_chart->params()->polarChartSubType() == KDChartParams::PolarStacked ) ||
72 ( m_chart->params()->chartType() == KChartParams::Area &&
73 m_chart->params()->areaChartSubType() == KDChartParams::AreaStacked ) )
74 m_stacked->setChecked( true );
75 else if( ( m_chart->params()->chartType() == KChartParams::Bar &&
76 m_chart->params()->barChartSubType() == KDChartParams::BarPercent ) ||
77 ( m_chart->params()->chartType() == KChartParams::Line &&
78 m_chart->params()->lineChartSubType() == KDChartParams::LinePercent ) ||
79 ( m_chart->params()->chartType() == KChartParams::Polar &&
80 m_chart->params()->polarChartSubType() == KDChartParams::PolarPercent ) ||
81 ( m_chart->params()->chartType() == KChartParams::Area &&
82 m_chart->params()->areaChartSubType() == KDChartParams::AreaPercent ) )
83 m_percent->setChecked( true );
84 else {
85 kdDebug(35001)<<"Error in chart_type\n";
86 }
87
88 m_numLines->setValue( m_chart->params()->barNumLines() );
89
90 if( m_chart->params()->chartType() == KChartParams::HiLo)
91 {
92 if( m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoNormal)
93 m_normal->setChecked( true );
94 else if(m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoClose)
95 m_stacked->setChecked(true);
96 else if(m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoOpenClose)
97 m_percent->setChecked(true);
98 }
99
100 changeSubTypeName( m_chart->chartType());
101 if(!chartSubType)
102 grp->setEnabled(false);
103
104 grid1->addWidget(grp, 0, 0);
105 grid1->addWidget(hbox, 1, 0);
106}
107
108
109
110void KChartWizardSelectChartSubTypePage::apply()
111{
112 if (chartSubType) {
113 if( m_normal->isChecked() )
114 switch( m_chart->params()->chartType() ) {
115 case KChartParams::Bar:
116 m_chart->params()->setBarChartSubType( KDChartParams::BarNormal );
117 // FIXME: Error controls.
118 m_chart->params()->setBarNumLines( m_numLines->value() );
119 break;
120 case KChartParams::Line:
121 m_chart->params()->setLineChartSubType( KDChartParams::LineNormal );
122 break;
123 case KChartParams::Area:
124 m_chart->params()->setAreaChartSubType( KDChartParams::AreaNormal );
125 break;
126 case KChartParams::HiLo:
127 m_chart->params()->setHiLoChartSubType(KDChartParams::HiLoNormal);
128 break;
129 case KChartParams::Polar:
130 m_chart->params()->setPolarChartSubType( KDChartParams::PolarNormal );
131 default:
132 kdDebug( 35001 ) << "Error in group button\n";
133 }
134 else if ( m_stacked->isChecked() )
135 switch( m_chart->params()->chartType() ) {
136 case KChartParams::Bar:
137 m_chart->params()->setBarChartSubType( KDChartParams::BarStacked );
138 break;
139 case KChartParams::Line:
140 m_chart->params()->setLineChartSubType( KDChartParams::LineStacked );
141 break;
142 case KChartParams::Area:
143 m_chart->params()->setAreaChartSubType( KDChartParams::AreaStacked );
144 break;
145 case KChartParams::HiLo:
146 m_chart->params()->setHiLoChartSubType( KDChartParams::HiLoClose);
147 break;
148 case KChartParams::Polar:
149 m_chart->params()->setPolarChartSubType( KDChartParams::PolarStacked );
150 break;
151 default:
152 kdDebug( 35001 ) << "Error in group button\n";
153 }
154 else if( m_percent->isChecked() )
155 switch( m_chart->params()->chartType() ) {
156 case KChartParams::Bar:
157 m_chart->params()->setBarChartSubType( KDChartParams::BarPercent );
158 break;
159 case KChartParams::Line:
160 m_chart->params()->setLineChartSubType( KDChartParams::LinePercent );
161 break;
162 case KChartParams::Area:
163 m_chart->params()->setAreaChartSubType( KDChartParams::AreaPercent );
164 break;
165 case KChartParams::HiLo:
166 m_chart->params()->setHiLoChartSubType( KDChartParams::HiLoOpenClose);
167 break;
168 case KChartParams::Polar:
169 m_chart->params()->setPolarChartSubType( KDChartParams::PolarPercent );
170 break;
171 default:
172 kdDebug( 35001 ) << "Error in group button\n";
173 }
174 else
175 kdDebug(35001)<<"Error in groupbutton\n";
176 }
177}
178
179void KChartWizardSelectChartSubTypePage::changeSubTypeName( KChartParams::ChartType _type)
180{
181 if (_type==KChartParams::HiLo)
182 {
183 m_stacked->setText( i18n("HiLoClose") );
184 m_percent->setText( i18n("HiLoOpenClose") );
185 }
186 else
187 {
188 m_stacked->setText( i18n( "Stacked" ) );
189 m_percent->setText( i18n( "Percent" ) );
190 }
191}
192
193} //KChart namespace
194
195#include "kchartWizardSelectChartSubTypePage.moc"