00001 // $Id: QFitModelGaussNWidget.cpp 1134 2014-01-22 14:53:40Z linev $ 00002 //----------------------------------------------------------------------- 00003 // The GSI Online Offline Object Oriented (Go4) Project 00004 // Experiment Data Processing at EE department, GSI 00005 //----------------------------------------------------------------------- 00006 // Copyright (C) 2000- GSI Helmholtzzentrum für Schwerionenforschung GmbH 00007 // Planckstr. 1, 64291 Darmstadt, Germany 00008 // Contact: http://go4.gsi.de 00009 //----------------------------------------------------------------------- 00010 // This software can be used under the license agreements as stated 00011 // in Go4License.txt file which is part of the distribution. 00012 //----------------------------------------------------------------------- 00013 00014 #include "QFitModelGaussNWidget.h" 00015 00016 #include "TGo4FitModelGaussN.h" 00017 #include "TGo4FitGuiTypes.h" 00018 00019 QFitModelGaussNWidget::QFitModelGaussNWidget(QWidget *parent, const char* name) 00020 : QFitModelWidget(parent, name) 00021 { 00022 setupUi(this); 00023 } 00024 00025 TGo4FitModelGaussN * QFitModelGaussNWidget::GetGaussN() 00026 { 00027 return dynamic_cast<TGo4FitModelGaussN*> (GetObject()); 00028 } 00029 00030 void QFitModelGaussNWidget::FillSpecificData() 00031 { 00032 QFitNamedWidget::FillSpecificData(); 00033 if (GetGaussN()) { 00034 AxisNumberSpin->setValue(GetGaussN()->GetAxisNumbers()); 00035 SetAxisTable(); 00036 } 00037 } 00038 00039 void QFitModelGaussNWidget::SetAxisTable() 00040 { 00041 if (GetGaussN()==0) return; 00042 int num = GetGaussN()->GetAxisNumbers(); 00043 AxisTable->setRowCount(num); 00044 for(int n=0;n<num;n++) 00045 AxisTable->setItem(n,0, 00046 new QTableWidgetItem(QString::number(GetGaussN()->GetAxisForIndex(n)))); 00047 } 00048 00049 void QFitModelGaussNWidget::AxisNumberSpin_valueChanged( int num) 00050 { 00051 if(!fbFillWidget && GetGaussN()) 00052 if (GetGaussN()->SetAxisNumbers(num)) { 00053 SetAxisTable(); 00054 UpdateItemsOfType(FitGui::ot_parslist, false); 00055 } 00056 } 00057 00058 void QFitModelGaussNWidget::AxisTable_valueChanged( int nrow, int ncol) 00059 { 00060 if(!fbFillWidget && GetGaussN()) { 00061 bool ok = false; 00062 int value = AxisTable->item(nrow,ncol)->text().toInt(&ok); 00063 if(ok) { 00064 GetGaussN()->SetAxisForIndex(nrow,value); 00065 if (GetGaussN()->ResortIndexes(nrow)) SetAxisTable(); 00066 } 00067 } 00068 }