Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include "QFitWidget.h"
00015
00016 #include <QContextMenuEvent>
00017 #include <QCloseEvent>
00018 #include <QtCore/QSignalMapper>
00019 #include <QMenu>
00020
00021 #include "QFitItem.h"
00022
00023 #include "TObject.h"
00024 #include "TGo4FitPanel.h"
00025
00026 QFitWidget::QFitWidget( QWidget* parent, const char* name, Qt::WindowFlags fl ) :
00027 QWidget( parent, fl )
00028 {
00029 setObjectName(name ? name : "QFitWidget");
00030 resize( QSize(533, 405).expandedTo(minimumSizeHint()) );
00031
00032 fxPanel = 0;
00033 fxItem = 0;
00034 fbFillWidget = false;
00035 }
00036
00037 QFitWidget::~QFitWidget()
00038 {
00039 }
00040
00041 void QFitWidget::SetItem(TGo4FitPanel* panel, QFitItem * item)
00042 {
00043 fxPanel = panel;
00044 fxItem = item;
00045 FillWidget();
00046 }
00047
00048 QFitItem* QFitWidget::GetItem()
00049 {
00050 return fxItem;
00051 }
00052
00053 TObject * QFitWidget::GetObject()
00054 {
00055 if(GetItem()) return GetItem()->Object();
00056 else return 0;
00057 }
00058
00059 TGo4Fitter* QFitWidget::GetFitter()
00060 {
00061 return fxPanel==0 ? 0 : fxPanel->GetFitter();
00062 }
00063
00064 void QFitWidget::FillWidget()
00065 {
00066 fbFillWidget = true;
00067 FillSpecificData();
00068 fbFillWidget = false;
00069 }
00070
00071 void QFitWidget::FillSpecificData()
00072 {
00073 }
00074
00075 void QFitWidget::contextMenuEvent(QContextMenuEvent* ev)
00076 {
00077 if ((GetItem()==0) || (fxPanel==0)) return;
00078
00079 QSignalMapper map(this);
00080 connect(&map, SIGNAL(mapped(int)), fxPanel, SLOT(ItemMenuItemSelected(int)));
00081
00082 QMenu menu(this);
00083
00084 if (fxPanel->FillPopupForItem(GetItem(),&menu, &map)) {
00085 fxPanel->CurrFitItem = GetItem();
00086 menu.exec(ev->globalPos());
00087 fxPanel->CurrFitItem = 0;
00088 }
00089 }
00090
00091 void QFitWidget::UpdateWidgetItem(bool trace)
00092 {
00093 if (fxPanel!=0)
00094 fxPanel->UpdateItem(GetItem(), trace);
00095 }
00096
00097 void QFitWidget::SetWidgetItemText(bool trace)
00098 {
00099 if (fxPanel!=0)
00100 fxPanel->SetItemText(GetItem(), trace);
00101 }
00102
00103 void QFitWidget::UpdateItemsOfType(int typ, bool allitems)
00104 {
00105 if (fxPanel!=0)
00106 fxPanel->UpdateItemsOfType(typ, allitems ? 0 : GetItem());
00107 }