GSI Object Oriented Online Offline (Go4) GO4-6.4.5
Loading...
Searching...
No Matches
TGo4MainWindow.h
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#ifndef TGO4MAINWINDOW_H
15#define TGO4MAINWINDOW_H
16
17#include <QMainWindow>
18
19class QGo4Widget;
20class TGo4FitPanel;
21class TGo4ParaEdit;
25class TGo4EventInfo;
31
32class TGo4MdiArea;
33class TGo4ViewPanel;
34class TPad;
35class TGo4Slot;
37class TGo4Style;
40class TGo4WidgetProxy;
41class TGo4ServerProxy;
42
43class QAction;
44class QMenu;
45class QSpinBox;
46class QPushButton;
47class QCloseEvent;
48class QApplication;
49
54
55class TGo4MainWindow : public QMainWindow {
56 Q_OBJECT
57
58 public:
59 TGo4MainWindow(QApplication*);
60 virtual ~TGo4MainWindow();
61
62 void HotStart(const char *fname);
64 void StatusMessage(const QString& mess);
65 const char *LastTypedPassword() const;
66 TGo4ViewPanel *FindViewPanel(const char *name);
67 TGo4ViewPanel *DisplayBrowserItem(const char *itemname, TGo4ViewPanel *panel, TPad *pad, bool activate, int updatelevel, const char *drawopt);
68
69 TGo4ServerProxy *ConnectHttpServer(const char *addr = nullptr, const char *user = nullptr, const char *pass = nullptr, bool with_qt_process = false, bool get_analysis_config = false);
70 void ConnectServer(bool interactive = true, const char *password = "");
71 void PrepareForClientConnection(bool interactive = true);
72 void LaunchClient(bool interactive = true);
73 void DisconnectAnalysis(bool interactive = true);
74 void ShutdownAnalysis(bool interactive = true);
75
76 TGo4AnalysisWindow* EstablishAnalysisWindow(bool needoutput, bool withkillbnt = false, bool force_recreate = false);
80
81 // starting editors
84 TGo4ParaEdit* StartParaEdit(const char *itemname = nullptr);
90
91 void CreateNewHist(int isremote = -1);
92 void CreateNewCondition(bool forothereditor = false);
93 void CreateNewDynEntry(bool forothereditor = false);
94
97
98 public slots:
99
100 void about();
101 void aboutQt();
102 void aboutROOT();
103 void aboutDABC();
116
119
128 void SetStyleSlot(const QString&);
130
138
140 void SuperimposeSlot(bool);
141 void CrosshairSlot(bool);
142 void EventStatusSlot(bool);
150
153
157
164
168
173
174 // modify default high-dpi scaling
176
177 // slots connected to editors
178 void editorServiceSlot(QGo4Widget* editor, int serviceid, const char *str, void *par);
179
185
186 protected:
187
188 void ShowAboudDialog(const QString &title, const QString &text, const QString &icon);
189
197
199
200 void closeEvent(QCloseEvent *ce) override;
201
203
204 void CascadeMdiPosition(QWidget *sub);
205
206 void WindowActivated(int id);
207
209
210 bool startUserGUI(const char *);
211 TGo4AnalysisProxy *AddAnalysisProxy(bool isserver, bool needoutput);
212 bool RemoveAnalysisProxy(int waittime = 30, bool servershutdown = false);
215
216 QGo4Widget *FindGo4Widget(const char *name, bool activate);
217 TGo4Slot *GetWidgetTopSlot(QGo4Widget *widget, bool force);
218
219 bool SaveBrowserItemToFile(const char *itemname, const char *subfolder);
220
222 void TerminateAnalysis(bool interactive = true);
223
224 void ToggleMbsMonitor(const char *nodename);
226
228
229 void HelpWindow(const char *filename, const char *msg = nullptr);
230
232
233 QApplication* fApp{nullptr};
234
235 QMenu* windowsMenu{nullptr};
236 TGo4MdiArea* fxMdiArea{nullptr};
237 TGo4Style* fxStyle{nullptr};
238 TGo4ObjectManager *fxOM{nullptr};
239 QString fOMDataPath;
240 QString fOMBrowserPath;
241 QString fOMEditorsPath;
242
243 QString fKillCommand;
244
245 int fNewWidgetX{0};
246 int fNewWidgetY{0};
247
248 int fCloseCounter{0};
249 int fConnectingCounter{0}; // counter to establish connection
250 bool fbGetAnalysisConfig{false}; // flag to decide if we want to have analysis config after connect
251 QString fConnectingHttp; // http address (set when doing connection to http)
252 QString fLastPassword;
253 QString fLastFileDir;
254
255 bool fbPanelTimerActive{false};
256 bool fbFullScreen{false};
257
258 QAction* faWebCanvas{nullptr};
259 QAction* faSuperimpose{nullptr};
260 QAction* faCrosshair{nullptr};
261 QAction* faEventstatus{nullptr};
262 QAction* faDrawTime{nullptr};
263 QAction* faDrawDate{nullptr};
264 QAction* faDrawItem{nullptr};
265
266 QAction* faLaunchAnal{nullptr};
267 QAction* faConnectAnal{nullptr};
268 QAction* faPrepareAnal{nullptr};
269 QAction* faDisconnectAnal{nullptr};
270 QAction* faShutdownAnal{nullptr};
271 QAction* faSumbStartAnal{nullptr};
272 QAction* faStartAnal{nullptr};
273 QAction* faStopAnal{nullptr};
274 QAction* faAnalConfig{nullptr};
275 QAction* faAnalTermin{nullptr};
276};
277
278#endif
This is the Go4 Main Window.
void AddAnalysisMenu()
void UpdateBrowser()
TGo4AnalysisWindow * EstablishAnalysisWindow(bool needoutput, bool withkillbnt=false, bool force_recreate=false)
QAction * faLaunchAnal
TGo4BrowserProxy * Browser()
void CheckConnectingCounterSlot()
TGo4AnalysisConfiguration * FindAnalysisConfiguration()
void CanvasColorSlot()
void HotStart(const char *fname)
void AddSettingMenu()
void SaveSettingsSlot()
bool RemoveAnalysisProxy(int waittime=30, bool servershutdown=false)
void SetStyleSlot(const QString &)
void AddAnalysisMacrosBar()
QAction * faConnectAnal
QAction * faAnalTermin
TGo4FitPanel * StartFitPanel()
void ChangeTerminalFontSlot()
void StatusMessage(const QString &mess)
void AddFileMenu()
TGo4Style * fxStyle
QAction * faDisconnectAnal
QAction * faWebCanvas
void ShowAboudDialog(const QString &title, const QString &text, const QString &icon)
QAction * faShutdownAnal
void ToggleFullScreenSlot()
void AddToolsMenu()
void PrepareForClientConnection(bool interactive=true)
void ChangeDrawItemFlagSlot(bool)
void ConnectHttpSlot()
void LoadLibrarySlot()
void ScaleFactorSlot()
void DrawFillStyleSlot()
TGo4EventInfo * StartEventInfo()
void ChangeNativeMenuBarSlot(bool)
QApplication * fApp
void LaunchClient(bool interactive=true)
void TerminateAnalysis(bool interactive=true)
void CreateNewHist(int isremote=-1)
TGo4EditDynEntry * StartEditDynEntry()
void ChangeCloneFlagSlot(bool)
QAction * faSuperimpose
void CloseAnalysisWindow()
QAction * faDrawTime
QAction * faDrawDate
void UserPanelSlot()
void CascadeSubWindows()
QAction * faAnalConfig
QGo4Widget * FindGo4Widget(const char *name, bool activate)
void AddToolsBar()
void SubmitStartAnalysisSlot()
TGo4ViewPanel * FindViewPanel(const char *name)
void FitHelpSlot()
void GStyleStatFormatSlot()
void MarkerSettingsSlot()
TGo4HistogramInfo * StartHistogramInfo()
void ChangeFontSlot()
void DisconnectAnalysis(bool interactive=true)
TGo4AnalysisConfiguration * EstablishAnalysisConfiguration(int level)
void StopGUIScriptSlot()
void EstablishAnalysisWindowForHttp()
void ChangeFetchWhenSaveSlot(bool)
void StartAnalysisSlot()
TGo4ParaEdit * StartParaEdit(const char *itemname=nullptr)
TGo4AnalysisStatusMonitor * EstablishRatemeter(int level)
void OptStatsSlot()
void CloseAllFilesSlot()
void windowsMenuAboutToShow()
void ChangeDrawDateFlagSlot(bool)
void ProcessQtEvents()
void ChangeWindowRubberBandSlot(bool)
void CreateGUIScriptSlot()
void CreateNewDynEntry(bool forothereditor=false)
const char * LastTypedPassword() const
void CascadeMdiPosition(QWidget *sub)
void ChangeSaveWhiteBackgroundSlot(bool)
TGo4ConditionEditor * StartConditionEditor()
void TGraphDrawOptSlot()
void ChangeDrawTimeFlagSlot(bool)
void CreateNewCondition(bool forothereditor=false)
void ConnectDabcSlot()
void OpenFileSlot()
void TH3DrawOptSlot()
void EventStatusSlot(bool)
void UpdateCaptionButtons()
QAction * faPrepareAnal
void ChangeDrawOnceSlot(bool)
QAction * faSumbStartAnal
void MinAllWindows()
void ConnectGo4Widget(QGo4Widget *editor)
TGo4ViewPanel * DisplayBrowserItem(const char *itemname, TGo4ViewPanel *panel, TPad *pad, bool activate, int updatelevel, const char *drawopt)
void ChangeFetchWhenCopySlot(bool)
void DrawLineWidthSlot()
void InputTerminalParametersSlot()
void AddAnalysisBar()
void DrawFillColorSlot()
bool startUserGUI(const char *)
void UpdateDockAnalysisWindow()
void HelpWindow(const char *filename, const char *msg=nullptr)
void SavePanelCanvas(TGo4ViewPanel *panel)
void OpenRemoteFileSlot()
TGo4Slot * GetWidgetTopSlot(QGo4Widget *widget, bool force)
TGo4ConditionInfo * StartConditionInfo()
void TH2DrawOptSlot()
void closeEvent(QCloseEvent *ce) override
void AddFileToolBar()
QAction * faCrosshair
void SuperimposeSlot(bool)
void ChangeTerminalTimeStampSlot(bool)
bool SubmitAnalysisSettings()
void checkPanelRepaintSlot()
TGo4ViewPanel * MakeNewPanel(int div=0)
TGo4MainWindow(QApplication *)
void WindowActivated(int id)
QAction * faStopAnal
void ConnectServer(bool interactive=true, const char *password="")
bool SaveBrowserItemToFile(const char *itemname, const char *subfolder)
void LogSettingsSlot()
void IntroHelpSlot()
QAction * faStartAnal
TGo4AnalysisProxy * AddAnalysisProxy(bool isserver, bool needoutput)
void ToggleMbsMonitor(const char *nodename)
QAction * faDrawItem
void ChangeTerminalTimeStampFormatSlot()
void ToggleAnalysisWindow()
TGo4MdiArea * fxMdiArea
void ImportObjectSlot()
TGo4ServerProxy * ConnectHttpServer(const char *addr=nullptr, const char *user=nullptr, const char *pass=nullptr, bool with_qt_process=false, bool get_analysis_config=false)
void ChangeFetchWhenDrawSlot(bool)
virtual ~TGo4MainWindow()
TGo4SetScaleValues * ToggleScaleValues()
void ProcessHotStart()
void ShutdownAnalysis(bool interactive=true)
void ConnectHServerSlot()
void StopAnalysisSlot()
void PaletteSettingsSlot()
void SaveFileSlot()
void RefHelpSlot()
TGo4ObjectManager * fxOM
void TH1DrawOptSlot()
void editorServiceSlot(QGo4Widget *editor, int serviceid, const char *str, void *par)
QString fConnectingHttp
void ForseCloseSlot()
TGo4ObjectManager * OM()
TGo4AnalysisWindow * FindAnalysisWindow()
void ChangeHideEventElement(bool)
void CrosshairSlot(bool)
void ToggleAnalysisConfiguration()
QAction * faEventstatus
special base class for remote data servers like DABC, HTTP, hist server