kchart
kchartWizardSelectChartSubTypePage.cc00001
00002 #include "kchartWizardSelectChartSubTypePage.h"
00003 #include "kchart_view.h"
00004 #include "kchart_part.h"
00005
00006 #include <qbuttongroup.h>
00007 #include <qpushbutton.h>
00008 #include <qradiobutton.h>
00009 #include <qspinbox.h>
00010 #include <qlabel.h>
00011 #include <qptrcollection.h>
00012 #include <qobjectlist.h>
00013 #include <qlayout.h>
00014 #include <qhbox.h>
00015
00016 #include <kdebug.h>
00017 #include <kiconloader.h>
00018 #include <kglobal.h>
00019 #include <klocale.h>
00020 #include <kdialog.h>
00021
00022 #include "kchart_params.h"
00023
00024
00025 namespace KChart
00026 {
00027
00028 KChartWizardSelectChartSubTypePage::KChartWizardSelectChartSubTypePage( QWidget* parent,
00029 KChartPart* chart ) :
00030 QWidget( parent ),
00031 m_chart( chart )
00032 {
00033
00034 m_charttype = (KChartParams::ChartType) m_chart->params()->chartType();
00035 chartSubType = true;
00036
00037 QGridLayout *grid1 = new QGridLayout(this, 3, 2, KDialog::marginHint(),
00038 KDialog::spacingHint());
00039
00040 QVBoxLayout *lay1 = new QVBoxLayout( );
00041 lay1->setMargin( KDialog::marginHint() );
00042 lay1->setSpacing( KDialog::spacingHint() );
00043
00044 QButtonGroup *grp = new QButtonGroup( 1, QGroupBox::Horizontal,
00045 i18n( "Chart Sub Type" ), this );
00046 grp->setRadioButtonExclusive( true );
00047 grp->layout();
00048 lay1->addWidget(grp);
00049 m_normal = new QRadioButton( i18n( "Normal" ), grp );
00050 m_stacked = new QRadioButton( i18n( "Stacked" ), grp );
00051 m_percent = new QRadioButton( i18n( "Percent" ), grp );
00052
00053 QHBox *hbox = new QHBox( this );
00054 new QLabel( i18n( "Number of lines: "), hbox );
00055 m_numLines = new QSpinBox( hbox );
00056
00057 if( ( m_chart->chartType() == KChartParams::Bar &&
00058 m_chart->params()->barChartSubType() == KDChartParams::BarNormal )
00059 || ( m_chart->chartType() == KChartParams::Line &&
00060 m_chart->params()->lineChartSubType() == KDChartParams::LineNormal )
00061 || ( m_chart->chartType() == KChartParams::Polar &&
00062 m_chart->params()->polarChartSubType() == KDChartParams::PolarNormal )
00063 || ( m_chart->chartType() == KChartParams::Area &&
00064 m_chart->params()->areaChartSubType() == KDChartParams::AreaNormal ) )
00065 m_normal->setChecked( true );
00066 else if( ( m_chart->params()->chartType() == KChartParams::Bar &&
00067 m_chart->params()->barChartSubType() == KDChartParams::BarStacked ) ||
00068 ( m_chart->params()->chartType() == KChartParams::Line &&
00069 m_chart->params()->lineChartSubType() == KDChartParams::LineStacked ) ||
00070 ( m_chart->params()->chartType() == KChartParams::Polar &&
00071 m_chart->params()->polarChartSubType() == KDChartParams::PolarStacked ) ||
00072 ( m_chart->params()->chartType() == KChartParams::Area &&
00073 m_chart->params()->areaChartSubType() == KDChartParams::AreaStacked ) )
00074 m_stacked->setChecked( true );
00075 else if( ( m_chart->params()->chartType() == KChartParams::Bar &&
00076 m_chart->params()->barChartSubType() == KDChartParams::BarPercent ) ||
00077 ( m_chart->params()->chartType() == KChartParams::Line &&
00078 m_chart->params()->lineChartSubType() == KDChartParams::LinePercent ) ||
00079 ( m_chart->params()->chartType() == KChartParams::Polar &&
00080 m_chart->params()->polarChartSubType() == KDChartParams::PolarPercent ) ||
00081 ( m_chart->params()->chartType() == KChartParams::Area &&
00082 m_chart->params()->areaChartSubType() == KDChartParams::AreaPercent ) )
00083 m_percent->setChecked( true );
00084 else {
00085 kdDebug(35001)<<"Error in chart_type\n";
00086 }
00087
00088 m_numLines->setValue( m_chart->params()->barNumLines() );
00089
00090 if( m_chart->params()->chartType() == KChartParams::HiLo)
00091 {
00092 if( m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoNormal)
00093 m_normal->setChecked( true );
00094 else if(m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoClose)
00095 m_stacked->setChecked(true);
00096 else if(m_chart->params()->hiLoChartSubType()==KDChartParams::HiLoOpenClose)
00097 m_percent->setChecked(true);
00098 }
00099
00100 changeSubTypeName( m_chart->chartType());
00101 if(!chartSubType)
00102 grp->setEnabled(false);
00103
00104 grid1->addWidget(grp, 0, 0);
00105 grid1->addWidget(hbox, 1, 0);
00106 }
00107
00108
00109
00110 void KChartWizardSelectChartSubTypePage::apply()
00111 {
00112 if (chartSubType) {
00113 if( m_normal->isChecked() )
00114 switch( m_chart->params()->chartType() ) {
00115 case KChartParams::Bar:
00116 m_chart->params()->setBarChartSubType( KDChartParams::BarNormal );
00117
00118 m_chart->params()->setBarNumLines( m_numLines->value() );
00119 break;
00120 case KChartParams::Line:
00121 m_chart->params()->setLineChartSubType( KDChartParams::LineNormal );
00122 break;
00123 case KChartParams::Area:
00124 m_chart->params()->setAreaChartSubType( KDChartParams::AreaNormal );
00125 break;
00126 case KChartParams::HiLo:
00127 m_chart->params()->setHiLoChartSubType(KDChartParams::HiLoNormal);
00128 break;
00129 case KChartParams::Polar:
00130 m_chart->params()->setPolarChartSubType( KDChartParams::PolarNormal );
00131 default:
00132 kdDebug( 35001 ) << "Error in group button\n";
00133 }
00134 else if ( m_stacked->isChecked() )
00135 switch( m_chart->params()->chartType() ) {
00136 case KChartParams::Bar:
00137 m_chart->params()->setBarChartSubType( KDChartParams::BarStacked );
00138 break;
00139 case KChartParams::Line:
00140 m_chart->params()->setLineChartSubType( KDChartParams::LineStacked );
00141 break;
00142 case KChartParams::Area:
00143 m_chart->params()->setAreaChartSubType( KDChartParams::AreaStacked );
00144 break;
00145 case KChartParams::HiLo:
00146 m_chart->params()->setHiLoChartSubType( KDChartParams::HiLoClose);
00147 break;
00148 case KChartParams::Polar:
00149 m_chart->params()->setPolarChartSubType( KDChartParams::PolarStacked );
00150 break;
00151 default:
00152 kdDebug( 35001 ) << "Error in group button\n";
00153 }
00154 else if( m_percent->isChecked() )
00155 switch( m_chart->params()->chartType() ) {
00156 case KChartParams::Bar:
00157 m_chart->params()->setBarChartSubType( KDChartParams::BarPercent );
00158 break;
00159 case KChartParams::Line:
00160 m_chart->params()->setLineChartSubType( KDChartParams::LinePercent );
00161 break;
00162 case KChartParams::Area:
00163 m_chart->params()->setAreaChartSubType( KDChartParams::AreaPercent );
00164 break;
00165 case KChartParams::HiLo:
00166 m_chart->params()->setHiLoChartSubType( KDChartParams::HiLoOpenClose);
00167 break;
00168 case KChartParams::Polar:
00169 m_chart->params()->setPolarChartSubType( KDChartParams::PolarPercent );
00170 break;
00171 default:
00172 kdDebug( 35001 ) << "Error in group button\n";
00173 }
00174 else
00175 kdDebug(35001)<<"Error in groupbutton\n";
00176 }
00177 }
00178
00179 void KChartWizardSelectChartSubTypePage::changeSubTypeName( KChartParams::ChartType _type)
00180 {
00181 if (_type==KChartParams::HiLo)
00182 {
00183 m_stacked->setText( i18n("HiLoClose") );
00184 m_percent->setText( i18n("HiLoOpenClose") );
00185 }
00186 else
00187 {
00188 m_stacked->setText( i18n( "Stacked" ) );
00189 m_percent->setText( i18n( "Percent" ) );
00190 }
00191 }
00192
00193 }
00194
00195 #include "kchartWizardSelectChartSubTypePage.moc"
|