Ejemplo n.º 1
0
  def __init__(self, parent):
    QWidget.__init__(self, parent)

    self.ui = Ui_OptionsWidget()
    self.ui.setupUi(self)

    for check in [self.ui.colorByPerson, self.ui.colorByHypothesis, self.ui.colorByStep, self.ui.showJudgment, self.ui.coloredStepsCheck, self.ui.transitionsRadioButton, self.ui.overlapRadioButton, self.ui.showGridLines, self.ui.colorOnlyCone, self.ui.colorGrayscale]:
      check.toggled.connect(self.optionsChanged)
    
    for slider in [self.ui.cycleRadiusSlider, self.ui.thicknessSlider, self.ui.stepSizeSlider, self.ui.arrowPositionSlider, self.ui.xScaleSlider, self.ui.yScaleSlider, self.ui.arrowPointSlider, self.ui.arrowSizeSlider, self.ui.numberOfParts]:
      slider.valueChanged.connect(self.optionsChanged)
      
    self.ui.splitMinutes.valueChanged.connect(self.optionsChanged)
    
    self.ui.tabWidget.currentChanged.connect(self.optionsChanged)
    
    self.optionsChanged.connect(self.saveOptions)
    self.loadOptions()
Ejemplo n.º 2
0
class OptionsWidget(QWidget):

  optionsChanged = pyqtSignal()

  def __init__(self, parent):
    QWidget.__init__(self, parent)

    self.ui = Ui_OptionsWidget()
    self.ui.setupUi(self)

    for check in [self.ui.colorByPerson, self.ui.colorByHypothesis, self.ui.colorByStep, self.ui.showJudgment, self.ui.coloredStepsCheck, self.ui.transitionsRadioButton, self.ui.overlapRadioButton, self.ui.showGridLines, self.ui.colorOnlyCone, self.ui.colorGrayscale]:
      check.toggled.connect(self.optionsChanged)
    
    for slider in [self.ui.cycleRadiusSlider, self.ui.thicknessSlider, self.ui.stepSizeSlider, self.ui.arrowPositionSlider, self.ui.xScaleSlider, self.ui.yScaleSlider, self.ui.arrowPointSlider, self.ui.arrowSizeSlider, self.ui.numberOfParts]:
      slider.valueChanged.connect(self.optionsChanged)
      
    self.ui.splitMinutes.valueChanged.connect(self.optionsChanged)
    
    self.ui.tabWidget.currentChanged.connect(self.optionsChanged)
    
    self.optionsChanged.connect(self.saveOptions)
    self.loadOptions()

  def colorOption(self):
    if self.ui.colorByPerson.isChecked():
      return COLOR_PERSON_GRAYSCALE if self.ui.colorGrayscale.isChecked() else COLOR_PERSON
    elif self.ui.colorByHypothesis.isChecked():
      return COLOR_HYPOTHESIS_CONE if self.ui.colorOnlyCone.isChecked() else COLOR_HYPOTHESIS
    else:
      return COLOR_STEP
    
  def showJudgment(self):
    return self.ui.showJudgment.isChecked()
  
  def showGridLines(self):
    return self.ui.showGridLines.isChecked()
  
  def loadOptions(self):
    block = self.blockSignals(True)
    
    s = QSettings()
    s.beginGroup("Options")
    
    t = s.value("Tab", "Timeline", str)
    if t in TABS:
      self.ui.tabWidget.setCurrentIndex(TABS.index(t))
      
    s.beginGroup("Timeline")
    c = s.value("Color", "Hypothesis")
    if c == "Hypothesis":
      self.ui.colorByHypothesis.setChecked(True)
      self.ui.colorByPerson.setChecked(True)
    else:
      self.ui.colorByStep.setChecked(True)
      
    self.ui.colorOnlyCone.setChecked(s.value("ColorOnlyCone", True, bool))
    self.ui.colorOnlyCone.setEnabled(self.ui.colorByHypothesis.isChecked())

    self.ui.showJudgment.setChecked(s.value("JudgmentMarkers", True, bool))
    self.ui.showGridLines.setChecked(s.value("GridLines", True, bool))
    self.ui.xScaleSlider.setValue(s.value("ScaleX", 40, int))
    self.ui.yScaleSlider.setValue(s.value("ScaleY", 40, int))
    self.ui.splitMinutes.setValue(s.value("SplitMinutes", 35, int))
    s.endGroup()
    
    s.beginGroup("Cycle")
    self.ui.coloredStepsCheck.setChecked(s.value("Color", True, bool))
    if s.value("Connections") == "Overlap":
      self.ui.overlapRadioButton.setChecked(True)
    else:
      self.ui.transitionsRadioButton.setChecked(True)
    self.ui.cycleRadiusSlider.setValue(s.value("CycleRadius", 200, int))
    self.ui.stepSizeSlider.setValue(s.value("CircleSize", 15, int))
    self.ui.thicknessSlider.setValue(s.value("Thickness", 50, int))
    self.ui.arrowPositionSlider.setValue(s.value("ArrowPosition", 70, int))
    self.ui.arrowPointSlider.setValue(s.value("ArrowPoint", 5, int))
    self.ui.arrowSizeSlider.setValue(s.value("ArrowSize", 50, int))
    s.endGroup()
    
    s.beginGroup("Expertivity")
    self.ui.numberOfParts.setValue(s.value("NumberOfParts", 10, int))
    s.endGroup()
    
    self.blockSignals(block)
    self.optionsChanged.emit()
  
  def saveOptions(self):
    s = QSettings()
    s.beginGroup("Options")
    s.setValue("Tab", TABS[self.ui.tabWidget.currentIndex()])
    
    s.beginGroup("Timeline")
    if self.ui.colorByHypothesis.isChecked():
      s.setValue("Color", "Hypothesis")
    elif self.ui.colorByPerson.isChecked():
      s.setValue("Color", "Person")
    else:
      s.setValue("Color", "Step")
    s.setValue("ColorOnlyCone", self.ui.colorOnlyCone.isChecked())
    s.setValue("ScaleX", self.ui.xScaleSlider.value())
    s.setValue("ScaleY", self.ui.yScaleSlider.value())
    s.setValue("JudgmentMarkers", self.ui.showJudgment.isChecked())
    s.setValue("GridLines", self.ui.showGridLines.isChecked())
    s.setValue("SplitMinutes", self.ui.splitMinutes.value())
    s.endGroup()
    
    s.beginGroup("Cycle")
    s.setValue("Color", self.ui.coloredStepsCheck.isChecked())
    s.setValue("Connections", "Transitions" if self.ui.transitionsRadioButton.isChecked() else "Overlap")
    s.setValue("CycleRadius", self.ui.cycleRadiusSlider.value())
    s.setValue("CircleSize", self.ui.stepSizeSlider.value())
    s.setValue("Thickness", self.ui.thicknessSlider.value())
    s.setValue("ArrowPosition", self.ui.arrowPositionSlider.value())
    s.setValue("ArrowPoint", self.ui.arrowPointSlider.value())
    s.setValue("ArrowSize", self.ui.arrowSizeSlider.value())
    s.endGroup()
    
    s.beginGroup("Expertivity")
    s.setValue("NumberOfParts", self.ui.numberOfParts.value())
    s.endGroup()
    
    s.endGroup()
    s.sync()