kchart

kchartWizardSelectChartSubTypePage.cc

00001 
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     // FIXME: Use KChartPart::chartType() instead, when implemented.
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     /*QLabel  *lbl  =*/ 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         // FIXME: Error controls.
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 }  //KChart namespace
00194 
00195 #include "kchartWizardSelectChartSubTypePage.moc"
KDE Home | KDE Accessibility Home | Description of Access Keys