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 "eventDispenser.h"
14
15// gboard
16#include "gui_session.h"
17
18class GTree;
19
37class GemcGUI : public QWidget
38{
39 // metaobject required for non-qt slots
40 Q_OBJECT
41
42public:
58 GemcGUI(std::shared_ptr<GOptions> gopts,
59 std::shared_ptr<EventDispenser> ed,
61 bool viewerAlreadyInitialized = false,
62 QWidget* parent = nullptr);
63
70 ~GemcGUI() override;
71
72private:
79 GQTButtonsWidget* leftButtons; // left bar buttons
80
87 QStackedWidget* rightContent; // pages controlled by left bar buttons
88
98 QLineEdit* nEvents;
99
108 QLabel* eventNumberLabel;
109
116 QTimer* gtimer; // for cycling events
117
126 std::shared_ptr<EventDispenser> eventDispenser;
127
134 std::unique_ptr<GUI_Session> guiSession;
135
136 std::shared_ptr<GOptions> guiOptions;
137 GDetectorConstruction* detectorConstruction = nullptr;
138 GTree* geometryTree = nullptr;
139 bool geometryReloadedSinceRun = false;
140 bool viewerInitialized = false;
141 bool visualizationNeedsRunRestore = false;
142
143private:
149 void createLeftButtons();
150
160 void createRightContent(std::shared_ptr<GOptions> gopts,
162 GBoard* gb);
163
169 void createTopButtons(QHBoxLayout* topLayout);
170
177 void refreshGeometryTree();
178
185 void resetVisualizationBeforeGeometryReload();
186
193 void refreshVisualizationFromOptions();
194
203 void prepareGeometryForBeamOn();
204
211 void updateGui();
212
213private slots:
220 void neventsChanged();
221
228 void beamOn();
229
236 void cycleBeamOn();
237
241 void stopCycleBeamOn();
242
248 void gquit();
249
259 void change_page(QListWidgetItem* current, QListWidgetItem* previous);
260};
Main GEMC Qt widget that assembles the GUI layout and connects user actions to event processing.
Definition gui.h:38
GemcGUI(std::shared_ptr< GOptions > gopts, std::shared_ptr< EventDispenser > ed, GDetectorConstruction *dc, bool viewerAlreadyInitialized=false, QWidget *parent=nullptr)
Construct the main GUI widget.
Definition gui.cc:73
~GemcGUI() override
Destroy the GUI widget and release explicitly owned resources.
Definition gui.cc:230