16 #include "Riostream.h"
19 #include <QFileDialog>
35 QFileDialog fd(
this,
"Select ROOT macro to execute in GUI", QString(),
36 "ROOT macro (*.C *.c);;Go4 hotstart script (*.hotstart);;Python script(*.py)");
37 fd.setFileMode( QFileDialog::ExistingFile);
39 if (fd.exec() != QDialog::Accepted)
return;
41 QStringList flst = fd.selectedFiles();
42 if (flst.isEmpty())
return;
43 bool iscint = fd.selectedNameFilter().contains(
".C") || fd.selectedNameFilter().contains(
".c");
44 bool ishot = fd.selectedNameFilter().contains(
".hotstart");
45 bool ispyth = fd.selectedNameFilter().contains(
".py");
50 cmd = QString(
".x ") + flst[0];
54 cmd = QString(
"$") + flst[0];
62 std::cout <<
"TGo4CommandLine NEVER COME HERE - unknown file type!\n-" << std::endl;
66 int index=InputLine->findText(cmd);
69 InputLine->insertItem(-1,cmd);
70 index=InputLine->findText(cmd);
73 InputLine->setCurrentIndex(index);
85 const char pyprompt =
'$';
86 QString pyinitfile=
"python/go4init.py";
87 QString str = InputLine->currentText();
88 if (str.length() == 0)
91 if (str.contains(
"help") || str.contains(
".go4h"))
95 else if (str.contains(
".hotstart") && !str.contains(
".x"))
103 if (str.contains(pyprompt))
106 str.remove(0, str.indexOf(pyprompt) + 1);
108 str =
"TPython::LoadMacro(\"" + str +
"\")";
112 str.prepend(
"TPython::LoadMacro(\"" + go4sys + pyinitfile +
"\");");
113 str.prepend(
"TPython::Bind(TGo4AbstractInterface::Instance(), \"go4\");");
122 gROOT->ProcessLineSync(str.toLatin1().constData());
131 InputLine->addItems(histlist);
133 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/corrhistos.C").Data()));
134 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/hishisto.C").Data()));
135 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/addhistos.C").Data()));
136 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/divhistos.C").Data()));
137 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/profileX.C").Data()));
138 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/profileY.C").Data()));
139 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/projectionX.C").Data()));
140 gROOT->ProcessLineSync(Form(
".L %s",
TGo4Log::subGO4SYS(
"macros/projectionY.C").Data()));
151 if (md.exec() != QDialog::Accepted)
return;
153 InputLine->setCurrentIndex(0);
159 std::cout <<
"\n--- Go4 GUI command line short help --- " << std::endl;
160 std::cout <<
"- execute any command by pressing RETURN (Enter key)" << std::endl;
161 std::cout <<
"--" << std::endl;
162 std::cout <<
"- use '.h' for help concerning ROOT commands" << std::endl;
163 std::cout <<
"--" << std::endl;
164 std::cout <<
"- use 'go4->...' to access TGo4AbstractInterface for gui commands" << std::endl;
165 std::cout <<
"--" << std::endl;
166 std::cout <<
"- Some useful Go4 GUI command functions:" << std::endl;
168 std::cout <<
"\t- TObject* go4->GetObject(const char* itemname);"<< std::endl;
169 std::cout <<
"\t\t: get browser object by full pathname. " << std::endl;
170 std::cout <<
"\t- TString go4->FindItem(const char* name); " << std::endl;
171 std::cout <<
"\t\t: get full pathname of browser object by name " << std::endl;
172 std::cout <<
"\t- TString go4->SaveToMemory(const char* path, TObject* obj, Bool_t ownership = kFALSE);"<< std::endl;
173 std::cout <<
"\t\t: Put object obj into workspace memory under subfolder path. Returns full item pathname. " << std::endl;
174 std::cout <<
"\t- ViewPanelHandle go4->StartViewPanel()"<< std::endl;
175 std::cout <<
"\t\t: Open new Go4 viewpanel with default size. Returns handle of new panel." << std::endl;
176 std::cout <<
"\t- Bool_t go4->DrawItem(const char* itemname, ViewPanelHandle panel = 0, const char* drawopt = 0);"<< std::endl;
177 std::cout <<
"\t\t: Draw object of full name itemname onto viewpanel panel. Will open new viewpanel if panel not specified. \n\t ROOT drawoption may be set. " << std::endl;
178 std::cout <<
"\t- go4->OpenFile(const char* fname)" << std::endl;
179 std::cout <<
"\t\t: open ROOT file of fname in Go4 browser " << std::endl;
180 std::cout <<
"\t- go4->LaunchAnalysis()" << std::endl;
181 std::cout <<
"\t\t: Start Go4 analysis process with previous set up " << std::endl;
182 std::cout <<
"--" << std::endl;
183 std::cout <<
"---- Please: note the Go4 helpwindow with TGo4AbstractInterface full method documentation!" << std::endl;
184 std::cout <<
"---- see example scripts at $GO4SYS/macros !" << std::endl;
185 std::cout <<
"---- visit our website at: \t http://go4.gsi.de !" << std::endl;
186 std::cout <<
"------ " << std::endl;
187 HelpWindow(
"docs/Go4Reference.pdf",
"Show Go4 Reference manual...");
TGo4CommandLine(QWidget *parent=0, const char *name=0)
virtual void ExecuteSlot()
virtual void LoadHistory()
virtual void FileSearchDialog()
const QString & getCommand()
virtual void PredefinedDialog()
virtual void enterPressedSlot()
QStringList getCommandsHistoryGUI()
static TString subGO4SYS(const char *subdir)
static const char * GO4SYS()
void setCommandsHistoryGUI(const QStringList &commands)