diff options
Diffstat (limited to 'kchart/kchartPieConfigPage.cc')
-rw-r--r-- | kchart/kchartPieConfigPage.cc | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/kchart/kchartPieConfigPage.cc b/kchart/kchartPieConfigPage.cc new file mode 100644 index 00000000..14e1348d --- /dev/null +++ b/kchart/kchartPieConfigPage.cc @@ -0,0 +1,196 @@ +/* This file is part of the KDE project + Copyright (C) 2000,2001,2002,2003,2004 Laurent Montel <montel@kde.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#include "kchartPieConfigPage.h" +#include "kchartPieConfigPage.moc" + +#include <kapplication.h> +#include <klocale.h> +#include <qlayout.h> +#include <qlabel.h> +#include <kfontdialog.h> + +#include <qcheckbox.h> +#include <qlineedit.h> +#include <qradiobutton.h> +#include <qpushbutton.h> +#include <qfont.h> +#include <qspinbox.h> + +#include "kchart_params.h" + + +namespace KChart +{ + +KChartPieConfigPage::KChartPieConfigPage( KChartParams* params, + QWidget* parent, + KDChartTableData* data) : + QWidget( parent ),_params( params ) +{ + // col=_params->colPie; + pos=-1; + QGridLayout *grid = new QGridLayout(this,10,4,KDialog::marginHint(), + KDialog::spacingHint()); + // The listview + list = new QListView( this ); + list->resize( list->sizeHint() ); + grid->addMultiCellWidget(list,0,9,0,0); + list->addColumn( i18n("Hide Piece") ); + list->setRootIsDecorated( TRUE ); + + QLabel* label = new QLabel( i18n( "Column active:" ), this ); + label->resize( label->sizeHint() ); + grid->addWidget( label,0,1); + + column = new QSpinBox(1, data->cols(), 1, this); + column->resize(100, column->sizeHint().height() ); + grid->addWidget( column,1,1); + + column->setValue(col+1); + + label = new QLabel( i18n( "Move piece to:" ), this ); + label->resize( label->sizeHint() ); + grid->addWidget( label,2,1); + + dist = new QSpinBox(0, 400, 1, this); + dist->resize(100, dist->sizeHint().height() ); + grid->addWidget( dist,3,1); + + label = new QLabel( i18n( "Explode factor (%):" ), this ); + label->resize( label->sizeHint() ); + grid->addWidget( label,4,1); + + explose = new QSpinBox(0, 100, 1, this); + explose->resize(100, explose->sizeHint().height() ); + grid->addWidget( explose,5,1); + + grid->addColSpacing(0,list->width()); + grid->addColSpacing(2,list->width()); + grid->addColSpacing(3,list->width()); + + + initList(); + dist->setEnabled(false); + + connect(column,SIGNAL(valueChanged(int)),this,SLOT(changeValue(int))); + + connect( list, SIGNAL( selectionChanged(QListViewItem *) ), this, SLOT( slotselected(QListViewItem *) ) ); +} + + +void KChartPieConfigPage::initList() +{ + //int index; + // PENDING(kalle) Put back in + // for( QStringList::Iterator it = _params->legend.begin(); it != _params->legend.end(); ++it ) { +// (void)new QCheckListItem( list, (*it),QCheckListItem::CheckBox ) ; + +// } + QListViewItemIterator it( list ); + //Select or not CheckBox + // PENDING(kalle) Put back in + // for( ; it.current(); ++it ) { +// index = _params->legend.findIndex(((QCheckListItem*)it.current())->text()); +// ((QCheckListItem*)it.current())->setOn(_params->missing[_params->legend.count()*col+index]) ; +// } +// value.duplicate(_params->explode); +} + + +void KChartPieConfigPage::slotselected(QListViewItem */*it*/) +{ + //column : 0 + //cout <<"Select :"<<(it)->text(0).ascii()<<endl; + // PENDING(kalle) Put back in + // int index = _params->legend.findIndex((it)->text(0)); + if(pos==-1) + dist->setEnabled(true); + else + value[pos]=dist->value(); + + // PENDING(kalle) Put back in + // pos=_params->legend.count()*col+index; + dist->setValue(value[pos]); +} + + +void KChartPieConfigPage::changeValue(int val) +{ + col=val-1; + QListViewItemIterator it( list ); + //Select or not CheckBox + ; + //int index=0; + for( ; it.current(); ++it ) { + // PENDING(kalle) Put back in + // index = _params->legend.findIndex(((QCheckListItem*)it.current())->text()); +// ((QCheckListItem*)it.current())->setOn(_params->missing[_params->legend.count()*col+index]) ; + } + + if(pos!=-1) { + value[pos]=dist->value(); + // PENDING(kalle) Put back in + // pos=_params->legend.count()*col+index; + dist->setValue(value[pos]); + } +} + + +void KChartPieConfigPage::init() +{ + QListViewItemIterator it( list ); + //Select or not CheckBox + + //int index = 0; + for( ; it.current(); ++it ) { + // PENDING(kalle) Put back in + // index = _params->legend.findIndex(((QCheckListItem*)it.current())->text()); + // ((QCheckListItem*)it.current())->setOn(_params->missing[_params->legend.count()*col+index]) ; + } + + // PENDING(kalle) Put back in +// value.duplicate(_params->explode); +// if(pos!=-1) { +// pos=_params->legend.count()*col; +// dist->setValue( value[pos]); +// } + explose->setValue((int)(_params->explodeFactor()*100)); +} + + +void KChartPieConfigPage::apply() +{ + QListViewItemIterator it( list ); + //Select or not CheckBox + //int index = 0; + for( ; it.current(); ++it ) { + // PENDING(kalle) Put back in + // index = _params->legend.findIndex(((QCheckListItem*)it.current())->text()); +// _params->missing[_params->legend.count()*col+index]=((QCheckListItem*)it.current())->isOn() ; + } + // _params->colPie=col; + + // PENDING(kalle) Put back in + // value[pos]=dist->value(); +// _params->explode.duplicate(value); + _params->setExplodeFactor(((double)(explose->value()))/100); +} + +} //KChart namespace |