ATLAS Offline Software
Loading...
Searching...
No Matches
VP1MainWindow.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// //
7// Header file for class VP1MainWindow //
8// //
9// Author: Thomas Kittelmann <Thomas.Kittelmann@cern.ch> //
10// //
11// Initial version: April 2007 //
12// //
14
15#ifndef VP1MainWindow_H
16#define VP1MainWindow_H
17
18// include the related GUI
19#include "../src/ui_vp1mainwindow.h"
20
21// include VP1
22#include "VP1Gui/VP1TcpServer.h"
24
25// include Qt
26#include <QQueue>
27#include <QStringList>
28#include <QMap>
29
31class VP1TabManager;
32class QStringList;
34//class VP1ConfigForm;
36class VP1AvailEvents;
38class VP1PluginDialog;
39class QProgressBar;
40class QLabel;
41class QComboBox;
43class QMutex;
44
45//#include <QtGlobal>
46//#if QT_VERSION > QT_VERSION_CHECK(5, 5, 0)
47// class QWebEngineView; // Qt 5.6
48//#else
49// class QWebView;
50//#endif
51
52
54{
56 : inputDir()
57 , dirStatus()
58 , enabled(true)
59 , bold(false)
60 {};
61
62 VP1DirStatusData(QString the_inputDir
63 , QString the_dirStatus
64 , bool the_enabled
65 , bool the_bold)
66 : inputDir(the_inputDir)
67 , dirStatus(the_dirStatus)
68 , enabled(the_enabled)
69 , bold(the_bold)
70 {};
71
72 QString inputDir;
73 QString dirStatus;
74 bool enabled;
75 bool bold;
76};
77
78typedef QMap<QAction*,VP1DirStatusData> VP1DirStatuses;
79
80
81class VP1MainWindow : public QMainWindow, public Ui::VP1MainWindow
82{
83 Q_OBJECT
84
85public:
86 VP1MainWindow(VP1ExecutionScheduler*,VP1AvailEvents * availEvents,QWidget *parent = 0);
88
89 bool okToProceedToNextEvent() const;
90
91 // Set next event to the execution scheduler and updates event controls
92 // We needed to separate this method from goToNextEvent() in order to be able
93 // to skip the bootstrap event in the https mode
94 void nextEvent();
95
96 QStringList userRequestedFiles();
97
98public Q_SLOTS:
99 void loadPluginFile(const QString& filename);
100
101 #ifdef BUILDVP1LIGHT
102 void request_expertSettings();
103 #endif
104 void request_addEmptyTab();
107 QString request_saveChannelSnapshot(QString xLabel="");
110 void request_saveConfig();
111 void request_loadConfig();
112 void request_loadPlugin();
114 void pluginDialogClosed();
117 void getAllChannelsIntoSnapshots(QList<QPixmap>& list, QStringList& listNames);
119 QPixmap getSingleChannelCustomSnapshot(const QString& tabName, int width = 0);
120
121 void tabListChanged(const QStringList&);
122
124
125 void loadConfigurationFromFile(const QString& file);
126 void replaceConfigurationFile(const QString& file);
127
128 void addToMessageBox( const QString&, const QString& extrastyleopts = "",
129 const QString& title = "", const QString& titleextrastyleopts = "" );
130 void systemAddToMessageBox( const QString& );
131 void channelAddToMessageBox( const QString& );
132 void helperAddToMessageBox( const QString& );
133 void changeFontSize(int);
134
135 //For use when going to a new event (this updates system lists and quit()'s the app):
136 void goToNextEvent();
137 #if defined BUILDVP1LIGHT
138 void goToPreviousEvent();
139 void chooseEvent();
140 #endif
141public:
142 void setRunEvtNumber(const int& runnumber, const unsigned long long& eventnumber, const unsigned& triggerType = 0, const unsigned& time = 0, const bool& printmessage = true );
143 bool mustQuit() const;
144
147
149
150 int getRunNumber() { return m_runnumber; }
151 unsigned long long getEventNumber() { return m_eventnumber; }
153
154protected:
159 unsigned long long m_eventnumber;
160 unsigned m_timestamp;
162
163 void closeEvent(QCloseEvent *event);
165
169
171 void listenOnTcp();
172
174 QQueue<VP1ExternalRequest> m_requestqueue;
177 QList<VP1ExternalRequest> m_messages_blockedexactmessages;
178
179 void addChannelIconsToComboBox(QComboBox* cb, const bool& isbasenames);
180
183
184 void setupStatusBar();
186
187 QMap<QString,QString> availablePluginFiles() const;
188 QMap<QString,QString> availableFiles(const QString& extension,
189 const QString& pathvar,
190 const QString& instareasubdir,
191 const QString& extradirenvvar,
192 bool currentdir = false) const;
193
194public:
195 QProgressBar*progressbar;
196protected Q_SLOTS:
200 void updateTcpIcon();
201 void postInitUpdates();
202 void showMenu_loadPlugin();
209 void quickSetupTriggered();
210 void updateEventControls();
211 void addEventFile();
212 void help_openUserGuide();
214 void help_openVP1WebSite();
215 void help_openAbout();
216
219
221
222
223protected:
237
238 QList<QAction*> m_inputdiractions;
243
244 //Fontsize:
248 const QString m_settingsfile;
249
251
253
255 QMutex* m_mutex;
256
257// // Web broser instance to show VP1 documentation
258// #if QT_VERSION > QT_VERSION_CHECK(5, 5, 0)
259// QWebEngineView *m_view; // Qt 5
260// #else
261// QWebView *m_view;
262// #endif
263
264 // Event display editor
266};
267
268
269#endif
270
const double width
QMap< QAction *, VP1DirStatusData > VP1DirStatuses
void finishedIncomingDialog()
void request_loadPlugin()
void helperAddToMessageBox(const QString &)
void setRunEvtNumber(const int &runnumber, const unsigned long long &eventnumber, const unsigned &triggerType=0, const unsigned &time=0, const bool &printmessage=true)
void changeFontSize(int)
QQueue< VP1ExternalRequest > m_requestqueue
void updateCentralStackWidget()
void help_openUserSupport()
int m_defaultfont_pixelsize
QMenu * m_menu_changeFontSize
VP1EventDisplayEditor * m_edEditor
VP1AvailEvents * m_availEvents
void systemAddToMessageBox(const QString &)
void receivedExternalRequest(VP1ExternalRequest)
QLabel * m_statusbarlabel
void saveAllCurrentChannels()
QString m_currentconfigfile
double m_defaultfont_pointsize
void showMenu_loadConfFileItemSelected()
QString request_saveChannelSnapshot(QString xLabel="")
int getEventTimestamp()
VP1ChannelManager * m_channelmanager
VP1TabManager * m_tabmanager
QString m_currentsaveimagepath
QString m_currentloadpluginpath
QMap< QString, QString > availablePluginFiles() const
VP1MainWindow(VP1ExecutionScheduler *, VP1AvailEvents *availEvents, QWidget *parent=0)
VP1TabManager * tabManager() const
VP1IncomingMessageDialog * m_currentincomingdialog
QStringList userRequestedFiles()
void request_saveasConfig()
void addChannelIconsToComboBox(QComboBox *cb, const bool &isbasenames)
QAction * m_action_openUsersSupport
QMenu * m_menu_loadPlugin
void request_cruisemodechange()
QWidget * m_dummyemptycontroller
const QString m_settingsfile
QAction * m_actionSave_current_tabs
QList< VP1ExternalRequest > m_messages_blockedexactmessages
void addToMessageBox(const QString &, const QString &extrastyleopts="", const QString &title="", const QString &titleextrastyleopts="")
void replaceConfigurationFile(const QString &file)
QProgressBar * progressbar
QAction * m_action_openUsersGuide
void processEnqueuedRequests()
bool mustQuit() const
QStringList m_userRequestedFiles
void changeStyleActionTriggered()
QMenu * m_menu_loadConfFile
void unloadPlugin_continue()
QString m_currentStream
unsigned long long m_eventnumber
void help_openUserGuide()
QMap< QString, QString > availableFiles(const QString &extension, const QString &pathvar, const QString &instareasubdir, const QString &extradirenvvar, bool currentdir=false) const
bool okToProceedToNextEvent() const
unsigned m_timestamp
QAction * m_action_openVP1Site
void request_loadConfig()
QAction * m_actionAdd_empty_tab
unsigned long long getEventNumber()
VP1ChannelManager * channelManager() const
void getAllChannelsIntoSnapshots(QList< QPixmap > &list, QStringList &listNames)
void inputDirectoryActionTriggered()
void loadConfigurationFromFile(const QString &file)
VP1PluginDialog * m_plugindialog
void closeEvent(QCloseEvent *event)
void channelAddToMessageBox(const QString &)
VP1DirStatuses m_inputdirstatuses
void request_printChannel()
VP1TcpServer m_tcpserver
QList< QAction * > m_inputdiractions
QAction * m_actionEnableExpertSettings
QStringList m_currentunloadpluginfiles
void loadPluginFile(const QString &filename)
VP1StreamMenuUpdater * m_streamMenuUpdater
void request_channelInformation()
VP1ExecutionScheduler * m_scheduler
void pluginDialogClosed()
void makeAllChannelsEventDisplay()
QAction * m_action_addEventFile
void changeFontSizeActionTriggered()
void selectedChannelChanged(IVP1ChannelWidget *)
void request_addEmptyTab()
void tabListChanged(const QStringList &)
QAction * m_action_openAbout
QAction * m_action_infoAboutLoadedPlugins
void launch3DstereoEditor()
void updateInputDirectoriesStatus()
void request_saveConfig()
void showMenu_loadConfFile()
void help_openVP1WebSite()
QList< QString > m_messages_blockedsenders
bool userRequestedExit()
void showMenu_loadPluginItemSelected()
QMenu * m_menu_changeStyle
QPixmap getSingleChannelCustomSnapshot(IVP1ChannelWidget *tab, int width=0)
static std::vector< uint32_t > runnumber
Definition iLumiCalc.h:37
VP1DirStatusData(QString the_inputDir, QString the_dirStatus, bool the_enabled, bool the_bold)
TFile * file