gui
Loading...
Searching...
No Matches
gui.h
Go to the documentation of this file.
1#pragma once
2
3// qt
4#include <QStackedWidget> // rightContent
5#include <QLineEdit> // nEvents
6#include <QLabel> // eventNumberLabel
7#include <QTimer> // gtimer
8#include <QHBoxLayout> // createTopButtons
9
10// gemc
11#include "gQtButtonsWidget.h"
12#include "gAnalysisAccumulator.h"
13#include "eventDispenser.h"
15
16// gboard
17#include "gui_session.h"
18
19class GTree;
20class GAnalysisView;
21
39class GemcGUI : public QWidget
40{
41 // metaobject required for non-qt slots
42 Q_OBJECT
43
44public:
62 GemcGUI(std::shared_ptr<GOptions> gopts,
63 std::shared_ptr<EventDispenser> ed,
65 std::shared_ptr<GAnalysisAccumulator> analysisAccumulator,
66 bool viewerAlreadyInitialized = false,
67 QWidget* parent = nullptr);
68
75 ~GemcGUI() override;
76
77private:
84 GQTButtonsWidget* leftButtons; // left bar buttons
85
92 QStackedWidget* rightContent; // pages controlled by left bar buttons
93
103 QLineEdit* nEvents;
104
113 QLabel* eventNumberLabel;
114
121 QTimer* gtimer; // for cycling events
122
131 std::shared_ptr<EventDispenser> eventDispenser;
132
134 std::shared_ptr<GAnalysisAccumulator> analysisAccumulator;
135
142 std::unique_ptr<GUI_Session> guiSession;
143
144 std::shared_ptr<GOptions> guiOptions;
145 GDetectorConstruction* detectorConstruction = nullptr;
146 GTree* geometryTree = nullptr;
147 GAnalysisView* analysisView = nullptr;
148 bool geometryReloadedSinceRun = false;
149 bool viewerInitialized = false;
150 bool visualizationNeedsRunRestore = false;
151
152private:
158 void createLeftButtons();
159
169 void createRightContent(std::shared_ptr<GOptions> gopts,
171 GBoard* gb);
172
178 void createTopButtons(QHBoxLayout* topLayout);
179
186 void refreshGeometryTree();
187
194 void resetVisualizationBeforeGeometryReload();
195
202 void refreshVisualizationFromOptions();
203
212 void prepareGeometryForBeamOn();
213
220 void updateGui();
221
222private slots:
229 void neventsChanged();
230
237 void beamOn();
238
245 void cycleBeamOn();
246
250 void stopCycleBeamOn();
251
257 void gquit();
258
268 void change_page(QListWidgetItem* current, QListWidgetItem* previous);
269};
GemcGUI(std::shared_ptr< GOptions > gopts, std::shared_ptr< EventDispenser > ed, GDetectorConstruction *dc, std::shared_ptr< GAnalysisAccumulator > analysisAccumulator, bool viewerAlreadyInitialized=false, QWidget *parent=nullptr)
Construct the main GUI widget.
Definition gui.cc:75
~GemcGUI() override
Destroy the GUI widget and release explicitly owned resources.
Definition gui.cc:236