ATLAS Offline Software
VP1AvailableToolsHelper.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class VP1AvailableToolsHelper //
9 // //
10 // Description: For monitoring the available tools of given //
11 // tool types, and for automatically taking //
12 // care of the state of associated gui elements //
13 // //
14 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
15 // Initial version: February 2008 //
16 // //
18 
19 #ifndef VP1AVAILABLETOOLSHELPER_H
20 #define VP1AVAILABLETOOLSHELPER_H
21 
23 #include <QObject>
24 #include <QStringList>
25 class IToolSvc;
26 class IVP1System;
27 class QComboBox;
28 class QWidget;
29 
30 class VP1AvailableToolsHelper : public QObject, public VP1HelperClassBase {
31 
32  Q_OBJECT
33 
34 public:
35 
36  VP1AvailableToolsHelper(IToolSvc*, QObject * parent = 0);//Use this to get error messages output to stdout.
37  VP1AvailableToolsHelper(IVP1System*, QObject * parent = 0);//Use this to also get error messages output in VP1 message area.
38  virtual ~VP1AvailableToolsHelper();
39 
41  // Change the currently monitored tool-types: //
43 
44  void addMonitoredType(const QString&, const QStringList& ignoreList = QStringList());//List of (wildcarded) expressions of tool names to ignore (i.e. "*Fatras*")
45  void addMonitoredTypes(const QStringList&, const QStringList& ignoreList = QStringList());
46  void removeMonitoredType(const QString&);
47  void removeMonitoredTypes(const QStringList&);
48  void clearMonitoredTypes(const QString&);
49  QStringList monitoredTypes() const;
50 
52  // Get list of available tools (calls update behind the scenes): //
54 
55  QStringList availableTools() const;
56 
57  //Convenience methods:
58  void setComboBoxData(QComboBox*);//Will be filled with a list of available tools (disabled if none are available);
59  void disableIfNoTools(QWidget*);//widget will be disabled (enabled) if the list of available tools is empty (not empty).
60  void handleComboBox(QComboBox*);//Calls setComboBoxData on the combobox whenever the list changes.
61  void handleEnabledState(QWidget*);//Calls disableIfNoTools on the widget whenever the list changes.
62 
63  void scheduleImmediateUpdate() const;//Updates immediately after event queue clears (NB: Not necessary in future Gaudi versions).
64 
65 signals:
66  void availableToolsChanged(const QStringList&) const;
67 
68 protected:
69  void timerEvent ( QTimerEvent * event );
70 private:
71  class Imp;
72  Imp * m_d;
75 
76 private Q_SLOTS:
77  void widgetDeleted(QObject*);//To automatically remove deleted widgets from internal lists.
78  void update() const;//Called internally every 2 seconds. In future gaudi versions we can instead register callbacks to the toolSvc.
79 };
80 
81 #endif
VP1AvailableToolsHelper::removeMonitoredTypes
void removeMonitoredTypes(const QStringList &)
Definition: VP1AvailableToolsHelper.cxx:137
VP1AvailableToolsHelper::monitoredTypes
QStringList monitoredTypes() const
Definition: VP1AvailableToolsHelper.cxx:162
VP1AvailableToolsHelper::operator=
VP1AvailableToolsHelper & operator=(const VP1AvailableToolsHelper &)
VP1AvailableToolsHelper::addMonitoredType
void addMonitoredType(const QString &, const QStringList &ignoreList=QStringList())
Definition: VP1AvailableToolsHelper.cxx:102
VP1AvailableToolsHelper::m_d
Imp * m_d
Definition: VP1AvailableToolsHelper.h:71
VP1AvailableToolsHelper::update
void update() const
Definition: VP1AvailableToolsHelper.cxx:210
VP1AvailableToolsHelper::VP1AvailableToolsHelper
VP1AvailableToolsHelper(const VP1AvailableToolsHelper &)
VP1AvailableToolsHelper::handleComboBox
void handleComboBox(QComboBox *)
Definition: VP1AvailableToolsHelper.cxx:269
VP1AvailableToolsHelper::VP1AvailableToolsHelper
VP1AvailableToolsHelper(IToolSvc *, QObject *parent=0)
Definition: VP1AvailableToolsHelper.cxx:65
VP1AvailableToolsHelper::scheduleImmediateUpdate
void scheduleImmediateUpdate() const
Definition: VP1AvailableToolsHelper.cxx:96
IVP1System
Definition: IVP1System.h:36
VP1AvailableToolsHelper::~VP1AvailableToolsHelper
virtual ~VP1AvailableToolsHelper()
Definition: VP1AvailableToolsHelper.cxx:90
event
POOL::TEvent event(POOL::TEvent::kClassAccess)
VP1AvailableToolsHelper::handleEnabledState
void handleEnabledState(QWidget *)
Definition: VP1AvailableToolsHelper.cxx:284
VP1AvailableToolsHelper::addMonitoredTypes
void addMonitoredTypes(const QStringList &, const QStringList &ignoreList=QStringList())
Definition: VP1AvailableToolsHelper.cxx:112
test_pyathena.parent
parent
Definition: test_pyathena.py:15
VP1AvailableToolsHelper::removeMonitoredType
void removeMonitoredType(const QString &)
Definition: VP1AvailableToolsHelper.cxx:127
VP1AvailableToolsHelper::Imp
Definition: VP1AvailableToolsHelper.cxx:25
python.L1.Config.LegacyTopoMergerMap.signals
signals
Definition: LegacyTopoMergerMap.py:13
VP1HelperClassBase
Definition: VP1HelperClassBase.h:28
VP1AvailableToolsHelper::setComboBoxData
void setComboBoxData(QComboBox *)
Definition: VP1AvailableToolsHelper.cxx:246
VP1AvailableToolsHelper::timerEvent
void timerEvent(QTimerEvent *event)
Definition: VP1AvailableToolsHelper.cxx:308
VP1HelperClassBase.h
VP1AvailableToolsHelper::disableIfNoTools
void disableIfNoTools(QWidget *)
Definition: VP1AvailableToolsHelper.cxx:258
VP1AvailableToolsHelper::widgetDeleted
void widgetDeleted(QObject *)
Definition: VP1AvailableToolsHelper.cxx:299
VP1AvailableToolsHelper::availableToolsChanged
void availableToolsChanged(const QStringList &) const
VP1AvailableToolsHelper::clearMonitoredTypes
void clearMonitoredTypes(const QString &)
Definition: VP1AvailableToolsHelper.cxx:152
VP1AvailableToolsHelper::availableTools
QStringList availableTools() const
Definition: VP1AvailableToolsHelper.cxx:239
VP1AvailableToolsHelper
Definition: VP1AvailableToolsHelper.h:30