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