summaryrefslogtreecommitdiff
path: root/silx/gui/plot3d/tools/GroupPropertiesWidget.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/gui/plot3d/tools/GroupPropertiesWidget.py')
-rw-r--r--silx/gui/plot3d/tools/GroupPropertiesWidget.py202
1 files changed, 0 insertions, 202 deletions
diff --git a/silx/gui/plot3d/tools/GroupPropertiesWidget.py b/silx/gui/plot3d/tools/GroupPropertiesWidget.py
deleted file mode 100644
index ec995a3..0000000
--- a/silx/gui/plot3d/tools/GroupPropertiesWidget.py
+++ /dev/null
@@ -1,202 +0,0 @@
-# coding: utf-8
-# /*##########################################################################
-#
-# Copyright (c) 2018-2020 European Synchrotron Radiation Facility
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-# ###########################################################################*/
-""":class:`GroupPropertiesWidget` allows to reset properties in a GroupItem."""
-
-from __future__ import absolute_import
-
-__authors__ = ["T. Vincent"]
-__license__ = "MIT"
-__date__ = "24/04/2018"
-
-from ....gui import qt
-from ....gui.colors import Colormap
-from ....gui.dialog.ColormapDialog import ColormapDialog
-
-from ..items import SymbolMixIn, ColormapMixIn
-
-
-class GroupPropertiesWidget(qt.QWidget):
- """Set properties of all items in a :class:`GroupItem`
-
- :param QWidget parent:
- """
-
- MAX_MARKER_SIZE = 20
- """Maximum value for marker size"""
-
- MAX_LINE_WIDTH = 10
- """Maximum value for line width"""
-
- def __init__(self, parent=None):
- super(GroupPropertiesWidget, self).__init__(parent)
- self._group = None
- self.setEnabled(False)
-
- # Set widgets
- layout = qt.QFormLayout(self)
- self.setLayout(layout)
-
- # Colormap
- colormapButton = qt.QPushButton('Set...')
- colormapButton.setToolTip("Set colormap for all items")
- colormapButton.clicked.connect(self._colormapButtonClicked)
- layout.addRow('Colormap', colormapButton)
-
- self._markerComboBox = qt.QComboBox(self)
- self._markerComboBox.addItems(SymbolMixIn.getSupportedSymbolNames())
-
- # Marker
- markerButton = qt.QPushButton('Set')
- markerButton.setToolTip("Set marker for all items")
- markerButton.clicked.connect(self._markerButtonClicked)
-
- markerLayout = qt.QHBoxLayout()
- markerLayout.setContentsMargins(0, 0, 0, 0)
- markerLayout.addWidget(self._markerComboBox, 1)
- markerLayout.addWidget(markerButton, 0)
-
- layout.addRow('Marker', markerLayout)
-
- # Marker size
- self._markerSizeSlider = qt.QSlider()
- self._markerSizeSlider.setOrientation(qt.Qt.Horizontal)
- self._markerSizeSlider.setSingleStep(1)
- self._markerSizeSlider.setRange(1, self.MAX_MARKER_SIZE)
- self._markerSizeSlider.setValue(1)
-
- markerSizeButton = qt.QPushButton('Set')
- markerSizeButton.setToolTip("Set marker size for all items")
- markerSizeButton.clicked.connect(self._markerSizeButtonClicked)
-
- markerSizeLayout = qt.QHBoxLayout()
- markerSizeLayout.setContentsMargins(0, 0, 0, 0)
- markerSizeLayout.addWidget(qt.QLabel('1'))
- markerSizeLayout.addWidget(self._markerSizeSlider, 1)
- markerSizeLayout.addWidget(qt.QLabel(str(self.MAX_MARKER_SIZE)))
- markerSizeLayout.addWidget(markerSizeButton, 0)
-
- layout.addRow('Marker Size', markerSizeLayout)
-
- # Line width
- self._lineWidthSlider = qt.QSlider()
- self._lineWidthSlider.setOrientation(qt.Qt.Horizontal)
- self._lineWidthSlider.setSingleStep(1)
- self._lineWidthSlider.setRange(1, self.MAX_LINE_WIDTH)
- self._lineWidthSlider.setValue(1)
-
- lineWidthButton = qt.QPushButton('Set')
- lineWidthButton.setToolTip("Set line width for all items")
- lineWidthButton.clicked.connect(self._lineWidthButtonClicked)
-
- lineWidthLayout = qt.QHBoxLayout()
- lineWidthLayout.setContentsMargins(0, 0, 0, 0)
- lineWidthLayout.addWidget(qt.QLabel('1'))
- lineWidthLayout.addWidget(self._lineWidthSlider, 1)
- lineWidthLayout.addWidget(qt.QLabel(str(self.MAX_LINE_WIDTH)))
- lineWidthLayout.addWidget(lineWidthButton, 0)
-
- layout.addRow('Line Width', lineWidthLayout)
-
- self._colormapDialog = None # To store dialog
- self._colormap = Colormap()
-
- def getGroup(self):
- """Returns the :class:`GroupItem` this widget is attached to.
-
- :rtype: Union[GroupItem, None]
- """
- return self._group
-
- def setGroup(self, group):
- """Set the :class:`GroupItem` this widget is attached to.
-
- :param GroupItem group: GroupItem to control (or None)
- """
- self._group = group
- if group is not None:
- self.setEnabled(True)
-
- def _colormapButtonClicked(self, checked=False):
- """Handle colormap button clicked"""
- group = self.getGroup()
- if group is None:
- return
-
- if self._colormapDialog is None:
- self._colormapDialog = ColormapDialog(self)
- self._colormapDialog.setColormap(self._colormap)
-
- previousColormap = self._colormapDialog.getColormap()
- if self._colormapDialog.exec_():
- colormap = self._colormapDialog.getColormap()
-
- for item in group.visit():
- if isinstance(item, ColormapMixIn):
- itemCmap = item.getColormap()
- cmapName = colormap.getName()
- if cmapName is not None:
- itemCmap.setName(colormap.getName())
- else:
- itemCmap.setColormapLUT(colormap.getColormapLUT())
- itemCmap.setNormalization(colormap.getNormalization())
- itemCmap.setGammaNormalizationParameter(
- colormap.getGammaNormalizationParameter())
- itemCmap.setVRange(colormap.getVMin(), colormap.getVMax())
- else:
- # Reset colormap
- self._colormapDialog.setColormap(previousColormap)
-
- def _markerButtonClicked(self, checked=False):
- """Handle marker set button clicked"""
- group = self.getGroup()
- if group is None:
- return
-
- marker = self._markerComboBox.currentText()
- for item in group.visit():
- if isinstance(item, SymbolMixIn):
- item.setSymbol(marker)
-
- def _markerSizeButtonClicked(self, checked=False):
- """Handle marker size set button clicked"""
- group = self.getGroup()
- if group is None:
- return
-
- markerSize = self._markerSizeSlider.value()
- for item in group.visit():
- if isinstance(item, SymbolMixIn):
- item.setSymbolSize(markerSize)
-
- def _lineWidthButtonClicked(self, checked=False):
- """Handle line width set button clicked"""
- group = self.getGroup()
- if group is None:
- return
-
- lineWidth = self._lineWidthSlider.value()
- for item in group.visit():
- if hasattr(item, 'setLineWidth'):
- item.setLineWidth(lineWidth)