GSI Object Oriented Online Offline (Go4)  GO4-6.3.0
QFitWidget.cpp
Go to the documentation of this file.
1 // $Id$
2 //-----------------------------------------------------------------------
3 // The GSI Online Offline Object Oriented (Go4) Project
4 // Experiment Data Processing at EE department, GSI
5 //-----------------------------------------------------------------------
6 // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7 // Planckstr. 1, 64291 Darmstadt, Germany
8 // Contact: http://go4.gsi.de
9 //-----------------------------------------------------------------------
10 // This software can be used under the license agreements as stated
11 // in Go4License.txt file which is part of the distribution.
12 //-----------------------------------------------------------------------
13 
14 #include "QFitWidget.h"
15 
16 #include <QContextMenuEvent>
17 #include <QMenu>
18 
19 #include "QFitItem.h"
20 
21 #include "TGo4FitPanel.h"
22 
23 QFitWidget::QFitWidget( QWidget *parent, const char *name, Qt::WindowFlags fl ) :
24  QWidget( parent, fl )
25 {
26  setObjectName(name ? name : "QFitWidget");
27  resize( QSize(533, 405).expandedTo(minimumSizeHint()) );
28 
29  fxPanel = nullptr;
30  fxItem = nullptr;
31  fbFillWidget = false;
32 }
33 
35 {
36 }
37 
39 {
40  fxPanel = panel;
41  fxItem = item;
42  FillWidget();
43 }
44 
46 {
47  return fxItem;
48 }
49 
51 {
52  if(GetItem())
53  return GetItem()->Object();
54  return nullptr;
55 }
56 
58 {
59  return !fxPanel ? nullptr : fxPanel->GetFitter();
60 }
61 
63 {
64  fbFillWidget = true;
66  fbFillWidget = false;
67 }
68 
70 {
71 }
72 
73 void QFitWidget::contextMenuEvent(QContextMenuEvent* ev)
74 {
75  if (!GetItem() || !fxPanel) return;
76 
77  QMenu menu;
78 
79  if (fxPanel->FillPopupForItem(GetItem(), &menu)) {
81  menu.exec(ev->globalPos());
82  fxPanel->CurrFitItem = nullptr;
83  }
84 }
85 
87 {
88  if (fxPanel)
89  fxPanel->UpdateItem(GetItem(), trace);
90 }
91 
93 {
94  if (fxPanel)
95  fxPanel->SetItemText(GetItem(), trace);
96 }
97 
98 void QFitWidget::UpdateItemsOfType(int typ, bool allitems)
99 {
100  if (fxPanel)
101  fxPanel->UpdateItemsOfType(typ, allitems ? nullptr : GetItem());
102 }
QFitWidget(QWidget *parent=nullptr, const char *name=nullptr, Qt::WindowFlags fl=Qt::Widget)
Definition: QFitWidget.cpp:23
virtual void FillSpecificData()
Definition: QFitWidget.cpp:69
virtual void SetItem(TGo4FitPanel *panel, QFitItem *iItem)
Definition: QFitWidget.cpp:38
QFitItem * fxItem
Definition: QFitWidget.h:62
virtual void SetItemText(QFitItem *item, bool trace)
virtual TGo4Fitter * GetFitter()
void contextMenuEvent(QContextMenuEvent *e) override
Definition: QFitWidget.cpp:73
bool fbFillWidget
Definition: QFitWidget.h:63
virtual void SetWidgetItemText(bool trace)
Definition: QFitWidget.cpp:92
virtual void FillWidget()
Definition: QFitWidget.cpp:62
virtual void UpdateItem(QFitItem *item, bool trace)
virtual void UpdateItemsOfType(int typ, bool allitems=false)
Definition: QFitWidget.cpp:98
TObject * Object() const
Definition: QFitItem.h:27
virtual TObject * GetObject()
Definition: QFitWidget.cpp:50
QFitItem * CurrFitItem
Definition: TGo4FitPanel.h:286
virtual void UpdateItemsOfType(int typ, QFitItem *parent=nullptr)
virtual bool FillPopupForItem(QFitItem *item, QMenu *menu)
virtual QFitItem * GetItem()
Definition: QFitWidget.cpp:45
virtual TGo4Fitter * GetFitter()
Definition: QFitWidget.cpp:57
TGo4FitPanel * fxPanel
Definition: QFitWidget.h:61
virtual void UpdateWidgetItem(bool trace)
Definition: QFitWidget.cpp:86