Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "QFitRangeWidget.h"
00015
00016 #include "QFitItem.h"
00017 #include "TGo4FitComponent.h"
00018
00019 QFitRangeWidget::QFitRangeWidget(QWidget *parent, const char* name)
00020 : QFitWidget(parent, name)
00021 {
00022 setupUi(this);
00023 }
00024
00025 TGo4FitComponent* QFitRangeWidget::GetComp()
00026 {
00027 return dynamic_cast<TGo4FitComponent*> (GetObject());
00028 }
00029
00030 int QFitRangeWidget::GetNumRange()
00031 {
00032 return GetItem()->Tag();
00033 }
00034
00035 void QFitRangeWidget::FillSpecificData() {
00036 int num = GetNumRange();
00037 if ((num<0) || (GetComp()==0)) return;
00038
00039 Int_t typ, naxis;
00040 Double_t left, right;
00041 GetComp()->GetRangeCondition(num,typ,naxis,left,right);
00042
00043 RangeTypCmb->setCurrentIndex(typ);
00044 AxisNumSpin->setValue(naxis);
00045
00046 if (typ!=3) LeftEdt->setText(QString::number(left));
00047 if (typ!=2) RightEdt->setText(QString::number(right));
00048
00049 EnableEditsForRangeType(typ);
00050 }
00051
00052 void QFitRangeWidget::EnableEditsForRangeType( int num )
00053 {
00054 LeftEdt->setEnabled((num==0) || (num==1) || (num==2));
00055 RightEdt->setEnabled((num==0) || (num==1) || (num==3));
00056 }
00057
00058 void QFitRangeWidget::GetRangeData()
00059 {
00060 if (fbFillWidget || (GetComp()==0)) return;
00061
00062 int num = GetNumRange();
00063 if(num<0) return;
00064
00065 Int_t typ = RangeTypCmb->currentIndex();
00066 Int_t naxis = AxisNumSpin->value();
00067
00068 Double_t left=0., right=0.;
00069 bool isok1 = true, isok2 = true;
00070
00071 if (typ!=3) left = LeftEdt->text().toDouble(&isok1);
00072 if (typ!=2) right = RightEdt->text().toDouble(&isok2);
00073
00074 if (isok1 && isok2) {
00075 GetComp()->SetRangeCondition(num,typ,naxis,left,right);
00076 SetWidgetItemText(true);
00077 }
00078 }
00079
00080 void QFitRangeWidget::AxisNumSpin_valueChanged( int )
00081 {
00082 GetRangeData();
00083 }
00084
00085 void QFitRangeWidget::RangeTypCmb_activated( int num )
00086 {
00087 if (!fbFillWidget) {
00088 EnableEditsForRangeType(num);
00089 GetRangeData();
00090 }
00091 }
00092
00093 void QFitRangeWidget::LeftEdt_textChanged( const QString & )
00094 {
00095 GetRangeData();
00096 }
00097
00098 void QFitRangeWidget::RightEdt_textChanged( const QString & )
00099 {
00100 GetRangeData();
00101 }