GSI Object Oriented Online Offline (Go4)  GO4-6.1.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
TGo4EditDynEntry.cpp
Go to the documentation of this file.
1 // $Id: TGo4EditDynEntry.cpp 3123 2021-03-30 08:27:38Z linev $
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 "TGo4EditDynEntry.h"
15 
16 #include <QMessageBox>
17 #include <QToolTip>
18 
19 #include "TClass.h"
20 #include "TH1.h"
21 #include "TTree.h"
22 
23 #include "TGo4TreeHistogramEntry.h"
24 #include "TGo4HistogramEntry.h"
25 #include "TGo4Condition.h"
26 #include "TGo4Slot.h"
27 #include "TGo4BrowserProxy.h"
28 #include "TGo4AnalysisProxy.h"
29 
30 TGo4EditDynEntry::TGo4EditDynEntry(QWidget *parent, const char* name)
31  : QGo4Widget(parent, name)
32 {
33  setupUi(this);
34 
35  QObject::connect(ApplyButton, SIGNAL(clicked()), this, SLOT(ApplyClicked()));
36  QObject::connect(ClearButton, SIGNAL(clicked()), this, SLOT(ClearHistogramClicked()));
37  QObject::connect(PrintListButton, SIGNAL(clicked()), this, SLOT(PrintDynList()));
38  QObject::connect(RefreshButton, SIGNAL(clicked()), this, SLOT(RefreshClicked()));
39  QObject::connect(SaveEntry, SIGNAL(clicked()), this, SLOT(SaveEntrySlot()));
40  QObject::connect(CancelButton, SIGNAL(clicked()), this, SLOT(CloseMDIParentSlot()));
41  QObject::connect(EvXnameEdit, SIGNAL(textDropped()), this, SLOT(EvXnameEdit_dropped()));
42  QObject::connect(EvYnameEdit, SIGNAL(textDropped()), this, SLOT(EvYnameEdit_dropped()));
43  QObject::connect(EvZnameEdit, SIGNAL(textDropped()), this, SLOT(EvZnameEdit_dropped()));
44  QObject::connect(ConXnameEdit, SIGNAL(textDropped()), this, SLOT(ConXnameEdit_dropped()));
45  QObject::connect(ConYnameEdit, SIGNAL(textDropped()), this, SLOT(ConYnameEdit_dropped()));
46  QObject::connect(DrawExprEdit, SIGNAL(textDropped()), this, SLOT(DrawExprEdit_dropped()));
47  QObject::connect(CutExprEdit, SIGNAL(textDropped()), this, SLOT(CutExprEdit_dropped()));
48  QObject::connect(HisCreateButton, SIGNAL(clicked()), this, SLOT(HisCreateButton_clicked()));
49  QObject::connect(HisInfoButton, SIGNAL(clicked()), this, SLOT(HisInfoButton_clicked()));
50  QObject::connect(ConNewButton, SIGNAL(clicked()), this, SLOT(ConNewButton_clicked()));
51  QObject::connect(ConInfoButton, SIGNAL(clicked()), this, SLOT(ConInfoButton_clicked()));
52  QObject::connect(EntryEnabledButton, SIGNAL(toggled(bool)), this, SLOT(EntryEnabledButton_toggled(bool)));
53  QObject::connect(EvXnameEdit, SIGNAL(textChanged(QString)), this, SLOT(EvXnameEdit_textChanged(QString)));
54  QObject::connect(EvYnameEdit, SIGNAL(textChanged(QString)), this, SLOT(EvYnameEdit_textChanged(QString)));
55  QObject::connect(EvZnameEdit, SIGNAL(textChanged(QString)), this, SLOT(EvZnameEdit_textChanged(QString)));
56  QObject::connect(ConXnameEdit, SIGNAL(textChanged(QString)), this, SLOT(ConXnameEdit_textChanged(QString)));
57  QObject::connect(ConYnameEdit, SIGNAL(textChanged(QString)), this, SLOT(ConYnameEdit_textChanged(QString)));
58  QObject::connect(DrawExprEdit, SIGNAL(textChanged(QString)), this, SLOT(DrawExprEdit_textChanged(QString)));
59  QObject::connect(CutExprEdit, SIGNAL(textChanged(QString)), this, SLOT(CutExprEdit_textChanged(QString)));
60  QObject::connect(DynIntervalSpin, SIGNAL(valueChanged(int)), this, SLOT(DynIntervalSpin_valueChanged(int)));
61  QObject::connect(DrawButton, SIGNAL(clicked()), this, SLOT(DrawButton_clicked()));
62  QObject::connect(ConRemoveButton, SIGNAL(clicked()), this, SLOT(ConRemoveButton_clicked()));
63 
64  fbTypingMode = true;
66  ResetWidget();
67 }
68 
69 bool TGo4EditDynEntry::IsAcceptDrag(const char* itemname, TClass* cl, int kind)
70 {
71  if (cl==0) return false;
72 
73  return cl->InheritsFrom(TGo4DynamicEntry::Class()) ||
74  cl->InheritsFrom(TH1::Class()) ||
75  cl->InheritsFrom(TTree::Class()) ||
76  cl->InheritsFrom(TGo4Condition::Class());
77 }
78 
79 void TGo4EditDynEntry::DropItem(const char* itemname, TClass* cl, int kind)
80 {
81  if (cl==0) return;
82 
83  if (cl->InheritsFrom(TGo4DynamicEntry::Class()))
84  WorkWithEntry(itemname);
85  else
86  if (cl->InheritsFrom(TH1::Class()))
87  DropHistogram(itemname);
88  else
89  if (cl->InheritsFrom(TGo4Condition::Class()))
90  DropCondition(itemname);
91  else
92  if (cl->InheritsFrom(TTree::Class()))
93  DropTree(itemname);
94 }
95 
96 void TGo4EditDynEntry::linkedObjectUpdated(const char* linkname, TObject* obj)
97 {
98  if (strcmp(linkname, "Entry")==0)
99  SetPleaseUpdate(false);
100 
101  RefreshWidget();
102 }
103 
105 {
106  TGo4DynamicEntry* entry =
107  dynamic_cast<TGo4DynamicEntry*>(GetLinked("Entry", 0));
108 
109  TGo4BrowserProxy* br = Browser();
110 
111  if ((entry==0) || (br==0)) return;
112 
114 
115  fbTypingMode = false;
116 
117  EntryBox->setTitle(QString("Entry: ") + entry->ClassName());
118  EntryEnabledButton->setChecked(entry->IsEnabledProcessing());
119 
120  EntryBox->setEnabled(true);
121  HistogramBox->setEnabled(true);
122  EntryTabs->setEnabled(true);
123 
124  TGo4HistogramEntry* hentry = dynamic_cast<TGo4HistogramEntry*> (entry);
125  TGo4TreeHistogramEntry* tentry = dynamic_cast<TGo4TreeHistogramEntry*> (entry);
126 
127  const char* entryitem = GetLinkedName("Entry");
128 
129  if (hentry!=0) {
131 
132  EntryTabs->setTabEnabled(EntryTabs->indexOf(EventTab), true);
133  EntryTabs->setTabEnabled(EntryTabs->indexOf(ConditionTab), true);
134  EntryTabs->setTabEnabled(EntryTabs->indexOf(TreeTab), false);
135  EntryTabs->setCurrentIndex(EntryTabs->indexOf(EventTab));
136 
137  TString hitemname;
138  if (!br->DefineRelatedObject(entryitem,
139  hentry->GetHistogramName(), hitemname))
140  hitemname = hentry->GetHistogramName();
141  HistoNameLbl->setText(hitemname.Data());
142  DrawButton->setVisible(hitemname.Length()>0);
143  ClearButton->setVisible(hitemname.Length()>0);
144 
145  QString fname = hentry->GetHistEventName(0);
146  if (fname.length()>0) fname += "/";
147  fname += hentry->GetHistVarName(0);
148  EvXnameEdit->setText(fname);
149 
150  fname = hentry->GetHistEventName(1);
151  if (fname.length()>0) fname += "/";
152  fname += hentry->GetHistVarName(1);
153  EvYnameEdit->setText(fname);
154 
155  fname = hentry->GetHistEventName(2);
156  if (fname.length()>0) fname += "/";
157  fname += hentry->GetHistVarName(2);
158  EvZnameEdit->setText(fname);
159 
160  TString citemname;
161  if (!br->DefineRelatedObject(entryitem,
162  hentry->GetConditionName(), citemname))
163  citemname = hentry->GetConditionName();
164  CondNameLbl->setText(citemname.Data());
165 
166  fname = hentry->GetConEventName(0);
167  if (fname.length()>0) fname += "/";
168  fname += hentry->GetConVarName(0);
169  ConXnameEdit->setText(fname);
170 
171  fname = hentry->GetConEventName(1);
172  if (fname.length()>0) fname += "/";
173  fname += hentry->GetConVarName(1);
174  ConYnameEdit->setText(fname);
175  } else
176  if (tentry!=0) {
178 
179  EntryTabs->setTabEnabled(EntryTabs->indexOf(EventTab), false);
180  EntryTabs->setTabEnabled(EntryTabs->indexOf(ConditionTab), false);
181  EntryTabs->setTabEnabled(EntryTabs->indexOf(TreeTab), true);
182  EntryTabs->setCurrentIndex(EntryTabs->indexOf(TreeTab));
183 
184  TString hitemname;
185  if (!br->DefineRelatedObject(entryitem,
186  tentry->GetHistogramName(), hitemname))
187  hitemname = tentry->GetHistogramName();
188  HistoNameLbl->setText(hitemname.Data());
189  DrawButton->setVisible(hitemname.Length()>0);
190  ClearButton->setVisible(hitemname.Length()>0);
191 
192  TString titemname;
193  if (!br->DefineRelatedObject(entryitem,
194  tentry->GetTreeName(), titemname))
195  titemname = tentry->GetTreeName();
196  TreeNameLbl->setText(titemname.Data());
197 
198  DrawExprEdit->setText(tentry->GetVarExp());
199  CutExprEdit->setText(tentry->GetCutExp());
200  DynIntervalSpin->setValue(tentry->GetDynListInterval());
201  }
202 
203  fbTypingMode = true;
204 }
205 
206 QString TGo4EditDynEntry::GetEventName(const QString& itemname)
207 {
208  TString folder, name;
209  TGo4Slot::ProduceFolderAndName(itemname.toLatin1().constData(), folder, name);
210 // SL 2.12.2011 Disable this code while it was used to remove parent class names from event name
211 // now parent class names could remain while in case of composite event it may be important information
212 // int pos = folder.Index("/");
213 // if (pos>0) folder.Resize(pos);
214  return QString(folder.Data());
215 }
216 
217 QString TGo4EditDynEntry::GetEventMember(const QString& itemname)
218 {
219  TString folder, name;
220  TGo4Slot::ProduceFolderAndName(itemname.toLatin1().constData(), folder, name);
221  return QString(name.Data());
222 }
223 
224 void TGo4EditDynEntry::WorkWithEntry(const char* itemname)
225 {
226  TGo4DynamicEntry* entry =
227  dynamic_cast<TGo4DynamicEntry*>(GetLinked("Entry", 0));
228  const char* oldname = GetLinkedName("Entry");
229 
230  if ((entry!=0) && (oldname!=0) && PleaseUpdateLabel->isVisible()) {
231 
232  int res = QMessageBox::warning(this, "Dynamic list entry editor",
233  QString("Current entry ")+oldname+" is modified!\n New entry" +
234  itemname+ " selected.",
235  QString("Continue with current"),
236  QString("Start with new"), QString(), 0);
237 // (BrowserItemRemote(oldname) ? QString("Update current in analysis and work with new") : QString()), 0);
238  if (res==0) return;
239 // if (res==2) UpdateItemInAnalysis(oldname);
240  }
241 
242  ResetWidget();
243 
244  AddLink(itemname, "Entry");
245 
246  EntryNameLbl->setText(itemname);
247 
248  QString iconname = ":/icons/right.png";
249  QString tooltip = "Refresh dynamic entry from analysis";
250  if (!BrowserItemRemote(itemname)) {
251  iconname = ":/icons/refresh.png";
252  tooltip = "Refresh dynamic entry from source";
253  }
254  RefreshButton->setIcon( QIcon(iconname) );
255  RefreshButton->setToolTip(tooltip);
256 
257  GetLinked("Entry", 2);
258  RefreshWidget();
259 
260  SetPleaseUpdate(false);
261  parentWidget()->adjustSize();
262  parentWidget()->setFocus();
263 }
264 
265 void TGo4EditDynEntry::DropHistogram(const char * itemname)
266 {
267  if (itemname==0) return;
268 
270 
271  HistoNameLbl->setText(itemname);
272  DrawButton->setVisible(true);
273  ClearButton->setVisible(true);
274 
275  TGo4DynamicEntry* entry =
276  dynamic_cast<TGo4DynamicEntry*>(GetLinked("Entry", 0));
277 
278  TGo4HistogramEntry* hentry = dynamic_cast<TGo4HistogramEntry*> (entry);
279  TGo4TreeHistogramEntry* tentry = dynamic_cast<TGo4TreeHistogramEntry*> (entry);
280  if (hentry!=0)
281  hentry->SetHistogramName(itemname);
282  if (tentry!=0)
283  tentry->SetHistogramName(itemname);
284 }
285 
286 void TGo4EditDynEntry::DropCondition( const char * itemname )
287 {
288  if (fiSelectedType != entry_Histogram) return;
289 
291 
292  CondNameLbl->setText(itemname);
293 
294  EntryTabs->setCurrentIndex(EntryTabs->indexOf(ConditionTab));
295  TGo4HistogramEntry* hentry =
296  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
297  if (hentry!=0)
298  hentry->SetConditionName(itemname);
299 }
300 
301 void TGo4EditDynEntry::DropTree( const char * itemname )
302 {
303  if (fiSelectedType != entry_Tree) return;
304 
306 
307  TreeNameLbl->setText(itemname);
308 
309  TGo4TreeHistogramEntry* tentry =
310  dynamic_cast<TGo4TreeHistogramEntry*> (GetLinked("Entry", 0));
311  if (tentry!=0)
312  tentry->SetTreeName(itemname);
313 }
314 
316 {
318 
320 
321  EntryNameLbl->setText("");
322  EntryBox->setTitle(QString("Entry: "));
323 
324  EntryBox->setEnabled(false);
325  HistogramBox->setEnabled(false);
326  EntryTabs->setEnabled(false);
327 
328  DrawButton->setVisible(false);
329 
330  RefreshButton->setIcon( QIcon(":/icons/right.png" ) );
331 
332  SetPleaseUpdate(false);
333 }
334 
336 {
337  GetLinked("Entry", 2);
338  RefreshWidget();
339 }
340 
342 {
343  if (!PrepareEntryForAnalysis()) return;
344 
345  if (UpdateItemInAnalysis(GetLinkedName("Entry"))) {
346  SetPleaseUpdate(false);
347  RefreshWidget();
348  }
349 }
350 
352 {
353  PleaseUpdateLabel->setVisible(on);
354  ensurePolished();
355  update();
356  show();
357 }
358 
360 {
361  if(!PleaseUpdateLabel->isVisible())
362  SetPleaseUpdate(true);
363 }
364 
366 {
367  if (!PrepareEntryForAnalysis()) return;
368 
369  if (SaveItemToFile(GetLinkedName("Entry"), "DynamicLists"))
370  SetPleaseUpdate(false);
371 }
372 
374 {
375  ProcessDropEvent(EvXnameEdit);
376 }
377 
379 {
380  ProcessDropEvent(EvYnameEdit);
381 }
382 
384 {
385  ProcessDropEvent(EvZnameEdit);
386 }
387 
389 {
390  ProcessDropEvent(ConXnameEdit);
391 }
392 
394 {
395  ProcessDropEvent(ConYnameEdit);
396 }
397 
399 {
400  ProcessTreeDropEvent(DrawExprEdit);
401 }
402 
404 {
405  ProcessTreeDropEvent(CutExprEdit);
406 }
407 
409 {
410  if ((edt==0) || (Browser()==0)) return;
411 
412  QString value = edt->text();
413 
415 
416  Int_t kind = Browser()->ItemKind(value.toLatin1().constData());
417  if (kind!=TGo4Access::kndDataMember) {
418  edt->setText("");
419  return;
420  }
421 
422  QString serachfor("EventObjects/Events/");
423  int pos = value.indexOf(serachfor);
424  if (pos<0) {
425  edt->setText("");
426  return;
427  }
428 
429  value.remove(0, pos+serachfor.length());
430 
431  edt->setText(value);
432 }
433 
435 {
436  if ((edt==0) || (Browser()==0)) return;
437 
438  QString value = edt->text();
439 
440  TGo4BrowserProxy* br = Browser();
441 
443 
444  int kind = br->ItemKind(value.toLatin1().constData());
445  if (kind!=TGo4Access::kndTreeLeaf) {
446  edt->setText("");
447  return;
448  }
449 
450  TString treename;
451  if (br->DefineTreeName(value.toLatin1().constData(), treename))
452  DropTree(treename.Data());
453 
454  TString lfolder, lname;
455  TGo4Slot::ProduceFolderAndName(value.toLatin1().constData(), lfolder, lname);
456  edt->setText(lname.Data());
457 }
458 
459 
461 {
462  AskToCreateObject(TH1::Class(), 1);
463 }
464 
465 
467 {
468  ShowItemInfo(HistoNameLbl->text());
469 }
470 
472 {
473  AskToCreateObject(TGo4Condition::Class(), 1);
474 }
475 
477 {
478  EditItem(CondNameLbl->text());
479 }
480 
481 void TGo4EditDynEntry::requestedObjectCreated(const char* itemname, TClass* cl)
482 {
483  if ((cl==0) || (fiSelectedType==entry_None)) return;
484  if (cl->InheritsFrom(TH1::Class()))
485  DropHistogram(itemname);
486  else
487  if (cl->InheritsFrom(TGo4Condition::Class()))
488  DropCondition(itemname);
489 }
490 
492 {
493  TGo4DynamicEntry* entry =
494  dynamic_cast<TGo4DynamicEntry*>(GetLinked("Entry", 0));
495 
496  if (entry==0) return false;
497 
498  TGo4HistogramEntry* hentry = dynamic_cast<TGo4HistogramEntry*> (entry);
499  TGo4TreeHistogramEntry* tentry = dynamic_cast<TGo4TreeHistogramEntry*> (entry);
500 
501  if (hentry!=0) {
502  TString folder, name;
503 
504  TGo4Slot::ProduceFolderAndName(hentry->GetHistogramName(), folder, name);
505  hentry->SetHistogramName(name.Data());
506 
507  TGo4Slot::ProduceFolderAndName(hentry->GetConditionName(), folder, name);
508  hentry->SetConditionName(name.Data());
509 
510  return true;
511  }
512 
513  if (tentry!=0) {
514  TString folder, name;
515 
516  TGo4Slot::ProduceFolderAndName(tentry->GetHistogramName(), folder, name);
517  tentry->SetHistogramName(name.Data());
518 
519  TGo4Slot::ProduceFolderAndName(tentry->GetTreeName(), folder, name);
520  tentry->SetTreeName(name.Data());
521  return true;
522  }
523 
524  return false;
525 }
526 
527 
529 {
530  TGo4DynamicEntry* entry =
531  dynamic_cast<TGo4DynamicEntry*>(GetLinked("Entry", 0));
532  if ((entry==0) || !fbTypingMode) return;
533  entry->EnableProcessing(on);
535 }
536 
537 
538 void TGo4EditDynEntry::EvXnameEdit_textChanged( const QString & xname)
539 {
540  TGo4HistogramEntry* hentry =
541  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
542  if ((hentry==0) || !fbTypingMode) return;
543 
544  hentry->SetHisEventName(0, GetEventName(xname).toLatin1().constData());
545  hentry->SetHisVarName(0, GetEventMember(xname).toLatin1().constData());
546 }
547 
548 
549 void TGo4EditDynEntry::EvYnameEdit_textChanged( const QString & yname)
550 {
551  TGo4HistogramEntry* hentry =
552  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
553  if ((hentry==0) || !fbTypingMode) return;
554 
555  hentry->SetHisEventName(1, GetEventName(yname).toLatin1().constData());
556  hentry->SetHisVarName(1, GetEventMember(yname).toLatin1().constData());
557 }
558 
559 
560 void TGo4EditDynEntry::EvZnameEdit_textChanged( const QString & zname)
561 {
562  TGo4HistogramEntry* hentry =
563  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
564  if ((hentry==0) || !fbTypingMode) return;
565 
566  hentry->SetHisEventName(2, GetEventName(zname).toLatin1().constData());
567  hentry->SetHisVarName(2, GetEventMember(zname).toLatin1().constData());
568 }
569 
570 
571 void TGo4EditDynEntry::ConXnameEdit_textChanged( const QString & xname)
572 {
573  TGo4HistogramEntry* hentry =
574  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
575  if ((hentry==0) || !fbTypingMode) return;
576 
577  hentry->SetConEventName(0, GetEventName(xname).toLatin1().constData());
578  hentry->SetConVarName(0, GetEventMember(xname).toLatin1().constData());
579 }
580 
581 
582 void TGo4EditDynEntry::ConYnameEdit_textChanged( const QString & yname)
583 {
584  TGo4HistogramEntry* hentry =
585  dynamic_cast<TGo4HistogramEntry*> (GetLinked("Entry", 0));
586  if ((hentry==0) || !fbTypingMode) return;
587 
588  hentry->SetConEventName(1, GetEventName(yname).toLatin1().constData());
589  hentry->SetConVarName(1, GetEventMember(yname).toLatin1().constData());
590 }
591 
592 
593 void TGo4EditDynEntry::DrawExprEdit_textChanged( const QString & value)
594 {
595  TGo4TreeHistogramEntry* tentry =
596  dynamic_cast<TGo4TreeHistogramEntry*> (GetLinked("Entry", 0));
597  if ((tentry==0) || !fbTypingMode) return;
598  tentry->SetVarExp(value.toLatin1().constData());
599 }
600 
601 void TGo4EditDynEntry::CutExprEdit_textChanged( const QString & value)
602 {
603  TGo4TreeHistogramEntry* tentry =
604  dynamic_cast<TGo4TreeHistogramEntry*> (GetLinked("Entry", 0));
605  if ((tentry==0) || !fbTypingMode) return;
606  tentry->SetCutExp(value.toLatin1().constData());
607 }
608 
610 {
611  TGo4TreeHistogramEntry* tentry =
612  dynamic_cast<TGo4TreeHistogramEntry*> (GetLinked("Entry", 0));
613  if ((tentry==0) || !fbTypingMode) return;
614  tentry->SetDynListInterval(value);
615 }
616 
617 
619 {
620  DrawItem(HistoNameLbl->text());
621 }
622 
624 {
625  TString objname;
626  TGo4ServerProxy* an = Browser()->DefineAnalysisObject(HistoNameLbl->text().toLatin1().constData(), objname);
627  if (an!=0) {
628  an->ClearAnalysisObject(objname.Data());
629  if (dynamic_cast<TGo4TreeHistogramEntry*>(GetLinked("Entry",0))!=0)
630  an->ExecuteLine("@ResetBackStores();");
631  Browser()->GetBrowserObject(HistoNameLbl->text().toLatin1().constData(), 2);
632  }
633 }
634 
636 {
637  TString objname;
638  TGo4ServerProxy* an = Browser()->DefineAnalysisObject(GetLinkedName("Entry"), objname);
639 
640  if (an!=0)
641  an->PrintDynListEntry(objname.Data());
642 }
643 
645 {
646  DropCondition("");
647 }
virtual void ResetWidget()
Definition: QGo4Widget.cpp:52
virtual void EvXnameEdit_textChanged(const QString &xname)
virtual QString GetEventName(const QString &itemname)
virtual void PrintDynList()
virtual void ResetWidget()
bool UpdateItemInAnalysis(const char *itemname, TObject *obj=0)
Definition: QGo4Widget.cpp:386
virtual void WorkWithEntry(const char *itemname)
virtual void ConInfoButton_clicked()
TObject * GetBrowserObject(const char *name, Int_t update=0)
virtual void requestedObjectCreated(const char *itemname, TClass *cl)
virtual void EvZnameEdit_textChanged(const QString &zname)
Int_t ItemKind(const char *name)
void SetCutExp(const char *cut)
virtual void DropItem(const char *itemname, TClass *cl, int kind)
void SetConditionName(const char *name)
void SetDynListInterval(Int_t value)
virtual void DynIntervalSpin_valueChanged(int value)
void SetTreeName(const char *name)
TObject * GetLinked(const char *linkname, int updatelevel)
Definition: QGo4Widget.cpp:177
virtual void EvZnameEdit_dropped()
void SetConEventName(Int_t ix, const char *name)
const char * GetConVarName(Int_t ix) const
virtual bool PrepareEntryForAnalysis()
void SetHistogramName(const char *name)
const char * GetLinkedName(const char *linkname)
Definition: QGo4Widget.cpp:158
virtual void DrawExprEdit_textChanged(const QString &value)
virtual void ProcessTreeDropEvent(QGo4LineEdit *edt)
TGo4BrowserProxy * Browser()
Definition: QGo4Widget.cpp:224
void EditItem(const QString &itemname)
Definition: QGo4Widget.cpp:352
virtual void CutExprEdit_dropped()
virtual void ClearAnalysisObject(const char *fullpath)
const char * GetHistogramName() const
virtual void RefreshClicked()
virtual void SetPleaseUpdate(bool on)
virtual void ApplyClicked()
bool BrowserItemRemote(const char *itemname)
Definition: QGo4Widget.cpp:217
virtual void EvXnameEdit_dropped()
virtual void PrintDynListEntry(const char *fullpath)
void ShowItemInfo(const QString &itemname)
Definition: QGo4Widget.cpp:299
virtual void ExecuteLine(const char *line)
virtual void DropTree(const char *itemname)
virtual void HisCreateButton_clicked()
virtual void ConYnameEdit_textChanged(const QString &yname)
TGo4ViewPanel * DrawItem(const QString &itemname, TGo4ViewPanel *panel=0, TPad *pad=0, bool activate=true, int updatelevel=-1)
Definition: QGo4Widget.cpp:312
virtual void EvYnameEdit_textChanged(const QString &yname)
virtual void SaveEntrySlot()
virtual void DropHistogram(const char *itemname)
void SetHistogramName(const char *name)
virtual void DropCondition(const char *itemname)
const char * GetHistVarName(Int_t ix) const
const char * GetCutExp() const
TGo4EditDynEntry(QWidget *parent=0, const char *name=0)
void SetHisEventName(Int_t ix, const char *name)
Bool_t IsEnabledProcessing() const
virtual bool IsAcceptDrag(const char *itemname, TClass *cl, int kind)
Bool_t DefineRelatedObject(const char *itemname, const char *objectname, TString &objectitem, Int_t mask=3)
virtual void ProcessDropEvent(QGo4LineEdit *edt)
virtual void EntryEnabledButton_toggled(bool on)
const char * GetTreeName() const
const char * GetHistogramName() const
virtual void linkedObjectUpdated(const char *linkname, TObject *obj)
virtual void ConRemoveButton_clicked()
Bool_t DefineTreeName(const char *itemname, TString &treename)
virtual void ConNewButton_clicked()
virtual void ConXnameEdit_dropped()
static void ProduceFolderAndName(const char *fullname, TString &foldername, TString &objectname)
Definition: TGo4Slot.cxx:664
void AskToCreateObject(TClass *cl, int isremote)
Definition: QGo4Widget.cpp:282
void EnableProcessing(Bool_t on=kTRUE)
virtual void ClearHistogramClicked()
const char * GetVarExp() const
const char * GetConditionName() const
void SetConVarName(Int_t ix, const char *name)
virtual void RefreshWidget()
virtual void EvYnameEdit_dropped()
virtual QString GetEventMember(const QString &itemname)
const char * GetConEventName(Int_t ix) const
TGo4ServerProxy * DefineAnalysisObject(const char *itemname, TString &analysisname)
bool SaveItemToFile(const char *itemname, const char *subfolder=0)
Definition: QGo4Widget.cpp:375
void AddLink(const char *itemname, const char *linkname)
Definition: QGo4Widget.cpp:122
virtual void DrawButton_clicked()
const char * GetHistEventName(Int_t ix) const
virtual void HisInfoButton_clicked()
virtual void DrawExprEdit_dropped()
void SetVarExp(const char *exp)
virtual void ConXnameEdit_textChanged(const QString &xname)
virtual void ConYnameEdit_dropped()
virtual void CutExprEdit_textChanged(const QString &value)
void CloseMDIParentSlot()
Definition: QGo4Widget.cpp:79
void SetHisVarName(Int_t ix, const char *name)
virtual void EntryChangedSlot()