CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
Vispa.Gui.ToolBoxContainer.ToolBoxContainer Class Reference
Inheritance diagram for Vispa.Gui.ToolBoxContainer.ToolBoxContainer:

Public Member Functions

def __init__
 
def addWidget
 
def hideWidget
 
def setHideLastToggleButton
 
def setType
 
def showWidget
 
def splitter
 
def toggleButtonPressed
 
def toggleButtons
 
def updateToggleButtonVisiblity
 
def visibleToggleButtonsIdices
 
def visibleToolBoxIdices
 

Static Public Attributes

 HIDE_LAST_TOGGLE_BUTTON = True
 
int TYPE_SPLITTER = 0
 
int TYPE_WIDGETS = 2
 

Private Member Functions

def _visibleIndices
 

Private Attributes

 _buttonLayout
 
 _containerType
 
 _hideLastToggleButton
 
 _splitter
 
 _toggleButtons
 
 _toolboxList
 

Detailed Description

Container for widgets which can be shown or hidden by a row of toggle buttons at the bottom of the container

The container uses a vertical QSplitter object to show added widgets.

Definition at line 6 of file ToolBoxContainer.py.

Constructor & Destructor Documentation

def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.__init__ (   self,
  parent = None,
  containerType = None 
)
Constructor.

Definition at line 17 of file ToolBoxContainer.py.

17 
18  def __init__(self, parent=None, containerType=None):
19  """ Constructor.
20  """
21  logging.debug(__name__ +": __init__()")
22  QWidget.__init__(self, parent)
23  self._hideLastToggleButton = False
24  self._containerType = self.TYPE_SPLITTER
26  self._toolboxList = []
27  self._toggleButtons = []
28  self._splitter = None
29  if containerType:
30  self.setType(containerType)
31 
32  # initialize layout
33  self.setLayout(QVBoxLayout())
34  self.layout().setSpacing(0)
35  self.layout().setContentsMargins(0, 0, 0, 0)
36  if self._containerType == self.TYPE_SPLITTER:
37  self._splitter = QSplitter(Qt.Vertical)
38  self.layout().addWidget(self._splitter, 3)
39 
40  self._buttonLayout = QHBoxLayout()
41  self._buttonLayout.addStretch(2) # push buttons completely to the right
42  self._buttonLayout.setSpacing(0)
43 
44  self.layout().addStretch(0.5) # keep buttons at the bottom even if all tool boxes are invisible
45  self.layout().addLayout(self._buttonLayout)

Member Function Documentation

def Vispa.Gui.ToolBoxContainer.ToolBoxContainer._visibleIndices (   self,
  list 
)
private
Returns list of indices of entries in given list which are visible.

It is assumed list entries have boolean function isVisible() (e.g. QWidget).

Definition at line 118 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToggleButtonsIdices(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToolBoxIdices().

119  def _visibleIndices(self, list):
120  """ Returns list of indices of entries in given list which are visible.
121 
122  It is assumed list entries have boolean function isVisible() (e.g. QWidget).
123  """
124  indices = []
125  for i in range(len(list)):
126  if list[i].isVisible():
127  indices.append(i)
128  return indices
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget (   self,
  widget,
  stretch = 0 
)
Adds widget to tool box.

Definition at line 66 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._containerType, Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toolboxList, ConnectionManager.connect(), RPCDBCom.connect(), options.ConnectionL1TMenu.connect, TestBase.connect(), HCALConfigDB.connect(), l1t::DataManager.connect(), ReadBase.connect(), DTDQMHarvesting.DTDQMHarvesting.connect, cond::Logger.connect(), DTVDriftMeanTimerCalibration.DTVDriftMeanTimerCalibration.connect, DTVDriftSegmentCalibration.DTVDriftSegmentCalibration.connect, DTAnalysisResiduals.DTAnalysisResiduals.connect, DTDQMValidation.DTDQMValidation.connect, DTNoiseCalibration.DTNoiseCalibration.connect, DTResidualCalibration.DTResidualCalibration.connect, DTTTrigProd.DTTTrigProd.connect, DTTTrigValid.DTTTrigValid.connect, DTTTrigResidualCorr.DTTTrigResidualCorr.connect, ShallowTree::BranchConnector.connect(), ora::ConnectionPool.connect(), dqmservices::DQMMonitoringService.connect(), ShallowTree::TypedBranchConnector< T >.connect(), ora::DatabaseSession.connect(), SimActivityRegistry.connect(), sim_act::Signaler< EndOfRun >.connect(), sim_act::Signaler< G4Step >.connect(), sim_act::Signaler< EndOfEvent >.connect(), sim_act::Signaler< BeginOfRun >.connect(), sim_act::Signaler< BeginOfEvent >.connect(), sim_act::Signaler< BeginOfTrack >.connect(), sim_act::Signaler< BeginOfJob >.connect(), sim_act::Signaler< EndOfTrack >.connect(), sim_act::Signaler< T >.connect(), sim_act::Signaler< DDDWorld >.connect(), ora::Database.connect(), edm::ServiceToken.connect(), edm::signalslot::Signal< void(GlobalContext const &)>.connect(), edm::signalslot::Signal< void(edm::BranchDescription const &)>.connect(), edm::signalslot::Signal< T >.connect(), edm::signalslot::Signal< void(std::string const &, bool)>.connect(), edm::signalslot::Signal< void()>.connect(), edm::signalslot::Signal< void(edm::StreamContext const &, edm::ModuleCallingContext const &)>.connect(), edm::signalslot::Signal< void(unsigned int, unsigned int)>.connect(), edm::signalslot::Signal< void(TerminationOrigin)>.connect(), edm::signalslot::Signal< void(const std::string &, const edmplugin::PluginInfo &)>.connect(), edm::signalslot::Signal< void(StreamContext const &)>.connect(), edm::signalslot::Signal< void(StreamID)>.connect(), edm::signalslot::Signal< void(PathsAndConsumesOfModulesBase const &, ProcessContext const &)>.connect(), edm::signalslot::Signal< void(service::SystemBounds const &)>.connect(), edm::signalslot::Signal< void(const edmplugin::SharedLibrary &)>.connect(), edm::signalslot::Signal< void(const edmplugin::PluginFactoryBase *)>.connect(), edm::signalslot::Signal< void(GlobalContext const &, ModuleCallingContext const &)>.connect(), edm::signalslot::Signal< void(const std::string &, const std::string &)>.connect(), edm::signalslot::Signal< void(ModuleDescription const &)>.connect(), edm::signalslot::Signal< void(StreamContext const &, TerminationOrigin)>.connect(), edm::signalslot::Signal< void(StreamContext const &, ModuleCallingContext const &)>.connect(), edm::signalslot::Signal< void(StreamContext const &, PathContext const &)>.connect(), edm::signalslot::Signal< void(StreamContext const &, PathContext const &, HLTPathStatus const &)>.connect(), edm::signalslot::Signal< void(const boost::filesystem::path &)>.connect(), edm::signalslot::Signal< void(GlobalContext const &, TerminationOrigin)>.connect(), L1TOMDSHelper.connect(), PFCandConnector.connect(), confdbOfflineConverter.OfflineConverter.connect, DDTOBRodAlgo.connect, GlobalTag.GlobalTag.connect(), edm::signalslot::ObsoleteSignal< void(LuminosityBlockID const &, Timestamp const &)>.connect(), edm::signalslot::ObsoleteSignal< T >.connect(), edm::signalslot::ObsoleteSignal< void(EventID const &, Timestamp const &)>.connect(), edm::signalslot::ObsoleteSignal< void(std::string const &)>.connect(), edm::signalslot::ObsoleteSignal< void(ModuleDescription const &)>.connect(), edm::signalslot::ObsoleteSignal< void(LuminosityBlock const &, EventSetup const &)>.connect(), edm::signalslot::ObsoleteSignal< void(RunID const &, Timestamp const &)>.connect(), edm::signalslot::ObsoleteSignal< void(std::string const &, HLTPathStatus const &)>.connect(), edm::signalslot::ObsoleteSignal< void(Run const &, EventSetup const &)>.connect(), edm::signalslot::ObsoleteSignal< void(Event const &, EventSetup const &)>.connect(), edm::serviceregistry::ServicesManager.connect(), cond::service::PoolDBOutputService.connect(), l1t::OMDSReader.connect(), edm::ActivityRegistry.connect(), PhysicsTools::MLP.layout, DDPixBarStackLayerAlgo.layout, DDPixBarTPGStackLayerAlgo.layout, ProcMLP.layout, Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtonPressed(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.TYPE_SPLITTER, and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity().

Referenced by Vispa.Main.SplitterTab.SplitterToolBar.addSection(), and Vispa.Views.BoxDecayView.BoxDecayView.createBoxesRecursive().

66 
67  def addWidget(self, widget, stretch=0):
68  """ Adds widget to tool box.
69  """
70  if self._containerType == self.TYPE_SPLITTER:
71  self._splitter.addWidget(widget)
72  else:
73  self.layout().insertWidget(len(self._toolboxList), widget, stretch)
74  self._toolboxList.append(widget)
75  toggleButton = QToolButton()
76  toggleButton.setCheckable(True)
77  toggleButton.setChecked(True)
78  toggleButton.setText("v")
79  toggleButton.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
80  self.connect(toggleButton, SIGNAL('clicked(bool)'), self.toggleButtonPressed)
81  self._buttonLayout.addWidget(toggleButton, 0, Qt.AlignRight)
82  self._toggleButtons.append(toggleButton)
83 
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.hideWidget (   self,
  widget 
)

Definition at line 105 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer.showWidget().

106  def hideWidget(self, widget):
107  self.showWidget(widget, False)
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.setHideLastToggleButton (   self,
  hide 
)
Influences visibility of last visible toggle button.

If hide is True toggle buttons are only shown if there is more than one widget selectable.
In this case the ToolBoxContainer behaves like a normal widget. 
If hide if False the toggle button is also show if there is only one widget selectable.

Definition at line 49 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._hideLastToggleButton.

49 
50  def setHideLastToggleButton(self, hide):
51  """ Influences visibility of last visible toggle button.
52 
53  If hide is True toggle buttons are only shown if there is more than one widget selectable.
54  In this case the ToolBoxContainer behaves like a normal widget.
55  If hide if False the toggle button is also show if there is only one widget selectable.
56  """
57  self._hideLastToggleButton = hide
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.setType (   self,
  containerType 
)

Definition at line 46 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._containerType.

46 
47  def setType(self, containerType):
48  self._containerType = containerType
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.showWidget (   self,
  widget,
  show = True 
)

Definition at line 85 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons, Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toolboxList, and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity().

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.hideWidget().

85 
86  def showWidget(self, widget, show=True):
87  if widget in self._toolboxList:
88  widget.setVisible(show)
89  self._toggleButtons[self._toolboxList.index(widget)].setVisible(show)
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.splitter (   self)
Returns splitter containing widgets.

Definition at line 58 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._splitter.

58 
59  def splitter(self):
60  """ Returns splitter containing widgets.
61  """
62  return self._splitter
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtonPressed (   self)
Slot for showing and hinding widgets when toggle buttons are pressed.

Definition at line 129 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons, and Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toolboxList.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget().

130  def toggleButtonPressed(self):
131  """ Slot for showing and hinding widgets when toggle buttons are pressed.
132  """
133  if self.sender() in self._toggleButtons:
134  index = self._toggleButtons.index(self.sender())
135 
136  if self._toolboxList[index].isVisible():
137  self._toolboxList[index].hide()
138  self.sender().setText("^")
139  else:
140  self._toolboxList[index].show()
141  self.sender().setText("v")
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtons (   self)

Definition at line 63 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons.

63 
64  def toggleButtons(self):
65  return self._toggleButtons
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity (   self)

Definition at line 91 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._hideLastToggleButton, Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons, Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToggleButtonsIdices(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToolBoxIdices().

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.showWidget().

91 
93  if self._hideLastToggleButton:
94  indices = self.visibleToggleButtonsIdices()
95  if len(indices) == 1:
96  self._toggleButtons[indices[0]].hide()
97 
98  # make sure toggle buttons are shown if there are more than one widget selectable
99  # or if hideLastToggleButton was changed in the meantime
100  indices = self.visibleToolBoxIdices()
101  if len(indices) > 1 or not self._hideLastToggleButton:
102  for i in indices:
103  if not self._toggleButtons[i].isVisible():
104  self._toggleButtons[i].show()
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToggleButtonsIdices (   self)
Returns list of indices of toggle buttons which are visible.

Definition at line 108 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons, and Vispa.Gui.ToolBoxContainer.ToolBoxContainer._visibleIndices().

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity().

109  def visibleToggleButtonsIdices(self):
110  """ Returns list of indices of toggle buttons which are visible.
111  """
112  return self._visibleIndices(self._toggleButtons)
def Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToolBoxIdices (   self)
Returns list of indices of tool box widgets which are visible.

Definition at line 113 of file ToolBoxContainer.py.

References Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toolboxList, and Vispa.Gui.ToolBoxContainer.ToolBoxContainer._visibleIndices().

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity().

114  def visibleToolBoxIdices(self):
115  """ Returns list of indices of tool box widgets which are visible.
116  """
117  return self._visibleIndices(self._toolboxList)

Member Data Documentation

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._buttonLayout
private

Definition at line 39 of file ToolBoxContainer.py.

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._containerType
private

Definition at line 23 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.setType().

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._hideLastToggleButton
private

Definition at line 22 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.setHideLastToggleButton(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity().

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._splitter
private

Definition at line 27 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.splitter().

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toggleButtons
private

Definition at line 26 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.showWidget(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtonPressed(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtons(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.updateToggleButtonVisiblity(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToggleButtonsIdices().

Vispa.Gui.ToolBoxContainer.ToolBoxContainer._toolboxList
private

Definition at line 25 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.showWidget(), Vispa.Gui.ToolBoxContainer.ToolBoxContainer.toggleButtonPressed(), and Vispa.Gui.ToolBoxContainer.ToolBoxContainer.visibleToolBoxIdices().

Vispa.Gui.ToolBoxContainer.ToolBoxContainer.HIDE_LAST_TOGGLE_BUTTON = True
static

Definition at line 12 of file ToolBoxContainer.py.

int Vispa.Gui.ToolBoxContainer.ToolBoxContainer.TYPE_SPLITTER = 0
static

Definition at line 14 of file ToolBoxContainer.py.

Referenced by Vispa.Gui.ToolBoxContainer.ToolBoxContainer.addWidget().

int Vispa.Gui.ToolBoxContainer.ToolBoxContainer.TYPE_WIDGETS = 2
static

Definition at line 15 of file ToolBoxContainer.py.