def __init__(self, parent, **params): get_or_put(params, 'layout', QVBoxLayout()) get_or_put(params, 'i18n_def', 'Miscellaneous') super(MiscellaneousWidget, self).__init__(parent, **params) LabelWidget(self, i18n_def='Data window shift: 1') self.params = Params(**params) self.params.data_accessor.addListener( self, __MiscellaneousVectorListener__(self)) self.__window_size__ = __DataWindowSizeWidget__( self, self.params.data_accessor) self.__unitsWidget__ = TimeUnitsWidget( self, i18n_def='Units', default_unit=self.params.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) self.__use_parameters__ = CompositeWidget(self, layout=QHBoxLayout()) self.__use_buffer__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use buffer', checked=True) self.__use_identity_line__ = CheckBoxWidget( self.__use_parameters__, i18n_def='Use identity line', checked=True) self.__sample_step__ = __SampleStepWidget__(self, self.params.data_accessor) self.__stepper_size__ = __StepperSizeWidget__( self, self.params.data_accessor)
def __init__(self, parent, data_accessor): super(__StepperSizeWidget__, self).__init__(parent, layout=QVBoxLayout()) self.data_accessor = data_accessor info_group = CompositeWidget(self, layout=QHBoxLayout()) LabelWidget(info_group, i18n_def='Stepper size:') self.__size_value__ = LabelWidget(info_group, i18n_def='<value>') self.__unit_value__ = LabelWidget(info_group, i18n_def='') self.__size_slider__ = SliderWidget( self, orientation=Qt.Horizontal, sizePolicy=QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed), value_changed_handler=self.__value_changed__) self.__size_slider__.setTickPosition(QSlider.TicksBelow) self.setValueInUnit(self.data_accessor.signal_x_unit) self.setUnit(self.data_accessor.signal_x_unit) self.__unitsWidget__ = TimeUnitsWidget( self, i18n_def='Units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit)
class __StepperSizeWidget__(CompositeWidget): """ widget used to change stepper size """ def __init__(self, parent, data_accessor): super(__StepperSizeWidget__, self).__init__(parent, layout=QVBoxLayout()) self.data_accessor = data_accessor info_group = CompositeWidget(self, layout=QHBoxLayout()) LabelWidget(info_group, i18n_def='Stepper size:') self.__size_value__ = LabelWidget(info_group, i18n_def='<value>') self.__unit_value__ = LabelWidget(info_group, i18n_def='') self.__size_slider__ = SliderWidget(self, orientation=Qt.Horizontal, sizePolicy=QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed), value_changed_handler=self.__value_changed__) self.__size_slider__.setTickPosition(QSlider.TicksBelow) self.setValueInUnit(self.data_accessor.signal_x_unit) self.setUnit(self.data_accessor.signal_x_unit) self.__unitsWidget__ = TimeUnitsWidget(self, i18n_def='Units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) def __value_changed__(self, _value): self.__size_value__.setText(str(_value)) def setValueInUnit(self, _unit): signal = self.data_accessor.signal_in_unit(_unit) self.__size_slider__.setMaximum(int(pl.amax(signal))) self.__size_slider__.setValue(0) self.__size_slider__.setTickInterval(self.__size_slider__.maximum() / 10) # @IgnorePep8 def setUnit(self, _unit): self.__unit_value__.setText(_unit.name) @property def size(self): value = self.__size_slider__.value() return None if value == 0 else value def setSize(self, _size): self.__size_slider__.setValue(int(_size)) def changeUnit(self, _unit): if not _unit == None: self.setValueInUnit(_unit) self.setUnit(_unit) self.__unitsWidget__.setUnit(_unit) @property def unit(self): return self.__unitsWidget__.getUnit()
def __createUnitsWidget__(self, layout): self.__unitsWidget__ = TimeUnitsWidget( self.__splitter__, i18n_def='X axis units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.__changeUnit__, layout=layout) self.__unitsWidget__.addUnit(OrderUnit) self.__splitter__.changeSplitterHandleColor(0, Qt.red)
def __init__(self, parent, **params): get_or_put(params, 'layout', QVBoxLayout()) get_or_put(params, 'i18n_def', 'Miscellaneous') super(MiscellaneousWidget, self).__init__(parent, **params) LabelWidget(self, i18n_def='Data window shift: 1') self.params = Params(**params) self.params.data_accessor.addListener(self, __MiscellaneousVectorListener__(self)) self.__window_size__ = __DataWindowSizeWidget__(self, self.params.data_accessor) self.__unitsWidget__ = TimeUnitsWidget(self, i18n_def='Units', default_unit=self.params.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) self.__use_parameters__ = CompositeWidget(self, layout=QHBoxLayout()) self.__use_buffer__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use buffer', checked=True) self.__use_identity_line__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use identity line', checked=True) self.__sample_step__ = __SampleStepWidget__(self, self.params.data_accessor) self.__stepper_size__ = __StepperSizeWidget__(self, self.params.data_accessor)
def __createUnitsWidget__(self, layout): self.__unitsWidget__ = TimeUnitsWidget(self.__splitter__, i18n_def='X axis units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.__changeUnit__, layout=layout) self.__unitsWidget__.addUnit(OrderUnit) self.__splitter__.changeSplitterHandleColor(0, Qt.red)
class TachogramPlotSettingsDockWidget(DockWidgetWidget): """ a dock widget for tachogram plot settings """ def __init__(self, parent, **params): self.params = Params(**params) self.data_accessor = self.params.data_accessor # alias super(TachogramPlotSettingsDockWidget, self).__init__(parent, title=params.get('title', 'Tachogram plot settings'), **params) self.__splitter__ = SplitterWidget(self.dockComposite, orientation=Qt.Vertical) self.__splitter__.setHandleWidth(5) self.__createUnitsWidget__(QHBoxLayout()) self.__createFiltersWidget__(QVBoxLayout()) parent.addDockWidget(Qt.BottomDockWidgetArea, self) def __changeUnit__(self, unit): if not self.data_accessor == None: self.data_accessor.changeXSignalUnit(self, unit) def __createUnitsWidget__(self, layout): self.__unitsWidget__ = TimeUnitsWidget( self.__splitter__, i18n_def='X axis units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.__changeUnit__, layout=layout) self.__unitsWidget__.addUnit(OrderUnit) self.__splitter__.changeSplitterHandleColor(0, Qt.red) def __createFiltersWidget__(self, layout): self.__filtersWidget__ = FiltersWidget( self.__splitter__, layout=layout, data_accessor=self.data_accessor, annotation_widget_class=MasterAnnotationFilterWidget, use_apply_button=True, restore_button=True) self.__splitter__.changeSplitterHandleColor(1, Qt.blue)
class TachogramPlotSettingsDockWidget(DockWidgetWidget): """ a dock widget for tachogram plot settings """ def __init__(self, parent, **params): self.params = Params(**params) self.data_accessor = self.params.data_accessor # alias super(TachogramPlotSettingsDockWidget, self).__init__(parent, title=params.get('title', 'Tachogram plot settings'), **params) self.__splitter__ = SplitterWidget(self.dockComposite, orientation=Qt.Vertical) self.__splitter__.setHandleWidth(5) self.__createUnitsWidget__(QHBoxLayout()) self.__createFiltersWidget__(QVBoxLayout()) parent.addDockWidget(Qt.BottomDockWidgetArea, self) def __changeUnit__(self, unit): if not self.data_accessor == None: self.data_accessor.changeXSignalUnit(self, unit) def __createUnitsWidget__(self, layout): self.__unitsWidget__ = TimeUnitsWidget(self.__splitter__, i18n_def='X axis units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.__changeUnit__, layout=layout) self.__unitsWidget__.addUnit(OrderUnit) self.__splitter__.changeSplitterHandleColor(0, Qt.red) def __createFiltersWidget__(self, layout): self.__filtersWidget__ = FiltersWidget(self.__splitter__, layout=layout, data_accessor=self.data_accessor, annotation_widget_class=MasterAnnotationFilterWidget, use_apply_button=True, restore_button=True) self.__splitter__.changeSplitterHandleColor(1, Qt.blue)
def __init__(self, parent, data_accessor): super(__StepperSizeWidget__, self).__init__(parent, layout=QVBoxLayout()) self.data_accessor = data_accessor info_group = CompositeWidget(self, layout=QHBoxLayout()) LabelWidget(info_group, i18n_def='Stepper size:') self.__size_value__ = LabelWidget(info_group, i18n_def='<value>') self.__unit_value__ = LabelWidget(info_group, i18n_def='') self.__size_slider__ = SliderWidget(self, orientation=Qt.Horizontal, sizePolicy=QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed), value_changed_handler=self.__value_changed__) self.__size_slider__.setTickPosition(QSlider.TicksBelow) self.setValueInUnit(self.data_accessor.signal_x_unit) self.setUnit(self.data_accessor.signal_x_unit) self.__unitsWidget__ = TimeUnitsWidget(self, i18n_def='Units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit)
def __createTimeUnitsGroup__(self): return TimeUnitsWidget(self.tableViewComposite, i18n_def='Signal time unit')
class MiscellaneousWidget(GroupBoxWidget): """ widget used to set up some specific properties like: window size, using of internal buffer, use line of identity """ @temporarySettingsDecorator() def __init__(self, parent, **params): get_or_put(params, 'layout', QVBoxLayout()) get_or_put(params, 'i18n_def', 'Miscellaneous') super(MiscellaneousWidget, self).__init__(parent, **params) LabelWidget(self, i18n_def='Data window shift: 1') self.params = Params(**params) self.params.data_accessor.addListener(self, __MiscellaneousVectorListener__(self)) self.__window_size__ = __DataWindowSizeWidget__(self, self.params.data_accessor) self.__unitsWidget__ = TimeUnitsWidget(self, i18n_def='Units', default_unit=self.params.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) self.__use_parameters__ = CompositeWidget(self, layout=QHBoxLayout()) self.__use_buffer__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use buffer', checked=True) self.__use_identity_line__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use identity line', checked=True) self.__sample_step__ = __SampleStepWidget__(self, self.params.data_accessor) self.__stepper_size__ = __StepperSizeWidget__(self, self.params.data_accessor) def getUseBuffer(self): return self.__use_buffer__.isChecked() @temporarySetterDecorator(name='use_buffer', _conv=QVariant.toBool, _getter_handler=getUseBuffer) def setUseBuffer(self, use_buffer): return self.__use_buffer__.setChecked(use_buffer) def getUseIdentityLine(self): return self.__use_identity_line__.isChecked() @temporarySetterDecorator(name='use_identity_line', _conv=QVariant.toBool, _getter_handler=getUseIdentityLine) def setUseIdentityLine(self, use_identity_line): self.__use_identity_line__.setChecked(use_identity_line) def getWindowSize(self): return self.__window_size__.size @temporarySetterDecorator(name='window_size', _conv=QVariant.toInt, _getter_handler=getWindowSize) def setWindowSize(self, size): self.__window_size__.setSize(size) def changeUnit(self, _unit): self.__window_size__.setUnit(_unit) self.__window_size__.setValueInUnit(_unit) def getUnit(self): return self.__unitsWidget__.getUnit() @temporarySetterDecorator(name='window_size_unit', _conv=QVariant.toPyObject, _getter_handler=getUnit) def setUnit(self, unit): self.changeUnit(unit) self.__unitsWidget__.setUnit(unit) def getSampleStep(self): return self.__sample_step__.step @temporarySetterDecorator(name='sample_step', _conv=QVariant.toInt, _getter_handler=getSampleStep) def setSampleStep(self, step): self.__sample_step__.setStep(step) def getStepperSize(self): return self.__stepper_size__.size @temporarySetterDecorator(name='stepper_size', _conv=QVariant.toInt, _getter_handler=getStepperSize) def setStepperSize(self, size): self.__stepper_size__.setSize(size) def getStepperUnit(self): return self.__stepper_size__.unit @temporarySetterDecorator(name='stepper_unit', _conv=QVariant.toPyObject, _getter_handler=getStepperUnit, before_name='stepper_size') def setStepperUnit(self, unit): self.__stepper_size__.changeUnit(unit)
class MiscellaneousWidget(GroupBoxWidget): """ widget used to set up some specific properties like: window size, using of internal buffer, use line of identity """ @temporarySettingsDecorator() def __init__(self, parent, **params): get_or_put(params, 'layout', QVBoxLayout()) get_or_put(params, 'i18n_def', 'Miscellaneous') super(MiscellaneousWidget, self).__init__(parent, **params) LabelWidget(self, i18n_def='Data window shift: 1') self.params = Params(**params) self.params.data_accessor.addListener( self, __MiscellaneousVectorListener__(self)) self.__window_size__ = __DataWindowSizeWidget__( self, self.params.data_accessor) self.__unitsWidget__ = TimeUnitsWidget( self, i18n_def='Units', default_unit=self.params.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) self.__use_parameters__ = CompositeWidget(self, layout=QHBoxLayout()) self.__use_buffer__ = CheckBoxWidget(self.__use_parameters__, i18n_def='Use buffer', checked=True) self.__use_identity_line__ = CheckBoxWidget( self.__use_parameters__, i18n_def='Use identity line', checked=True) self.__sample_step__ = __SampleStepWidget__(self, self.params.data_accessor) self.__stepper_size__ = __StepperSizeWidget__( self, self.params.data_accessor) def getUseBuffer(self): return self.__use_buffer__.isChecked() @temporarySetterDecorator(name='use_buffer', _conv=QVariant.toBool, _getter_handler=getUseBuffer) def setUseBuffer(self, use_buffer): return self.__use_buffer__.setChecked(use_buffer) def getUseIdentityLine(self): return self.__use_identity_line__.isChecked() @temporarySetterDecorator(name='use_identity_line', _conv=QVariant.toBool, _getter_handler=getUseIdentityLine) def setUseIdentityLine(self, use_identity_line): self.__use_identity_line__.setChecked(use_identity_line) def getWindowSize(self): return self.__window_size__.size @temporarySetterDecorator(name='window_size', _conv=QVariant.toInt, _getter_handler=getWindowSize) def setWindowSize(self, size): self.__window_size__.setSize(size) def changeUnit(self, _unit): self.__window_size__.setUnit(_unit) self.__window_size__.setValueInUnit(_unit) def getUnit(self): return self.__unitsWidget__.getUnit() @temporarySetterDecorator(name='window_size_unit', _conv=QVariant.toPyObject, _getter_handler=getUnit) def setUnit(self, unit): self.changeUnit(unit) self.__unitsWidget__.setUnit(unit) def getSampleStep(self): return self.__sample_step__.step @temporarySetterDecorator(name='sample_step', _conv=QVariant.toInt, _getter_handler=getSampleStep) def setSampleStep(self, step): self.__sample_step__.setStep(step) def getStepperSize(self): return self.__stepper_size__.size @temporarySetterDecorator(name='stepper_size', _conv=QVariant.toInt, _getter_handler=getStepperSize) def setStepperSize(self, size): self.__stepper_size__.setSize(size) def getStepperUnit(self): return self.__stepper_size__.unit @temporarySetterDecorator(name='stepper_unit', _conv=QVariant.toPyObject, _getter_handler=getStepperUnit, before_name='stepper_size') def setStepperUnit(self, unit): self.__stepper_size__.changeUnit(unit)
class __StepperSizeWidget__(CompositeWidget): """ widget used to change stepper size """ def __init__(self, parent, data_accessor): super(__StepperSizeWidget__, self).__init__(parent, layout=QVBoxLayout()) self.data_accessor = data_accessor info_group = CompositeWidget(self, layout=QHBoxLayout()) LabelWidget(info_group, i18n_def='Stepper size:') self.__size_value__ = LabelWidget(info_group, i18n_def='<value>') self.__unit_value__ = LabelWidget(info_group, i18n_def='') self.__size_slider__ = SliderWidget( self, orientation=Qt.Horizontal, sizePolicy=QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Fixed), value_changed_handler=self.__value_changed__) self.__size_slider__.setTickPosition(QSlider.TicksBelow) self.setValueInUnit(self.data_accessor.signal_x_unit) self.setUnit(self.data_accessor.signal_x_unit) self.__unitsWidget__ = TimeUnitsWidget( self, i18n_def='Units', default_unit=self.data_accessor.signal_x_unit, change_unit_handler=self.changeUnit, layout=QHBoxLayout()) self.__unitsWidget__.addUnit(OrderUnit) def __value_changed__(self, _value): self.__size_value__.setText(str(_value)) def setValueInUnit(self, _unit): signal = self.data_accessor.signal_in_unit(_unit) self.__size_slider__.setMaximum(int(pl.amax(signal))) self.__size_slider__.setValue(0) self.__size_slider__.setTickInterval(self.__size_slider__.maximum() / 10) # @IgnorePep8 def setUnit(self, _unit): self.__unit_value__.setText(_unit.name) @property def size(self): value = self.__size_slider__.value() return None if value == 0 else value def setSize(self, _size): self.__size_slider__.setValue(int(_size)) def changeUnit(self, _unit): if not _unit == None: self.setValueInUnit(_unit) self.setUnit(_unit) self.__unitsWidget__.setUnit(_unit) @property def unit(self): return self.__unitsWidget__.getUnit()