Ejemplo n.º 1
0
 def reset(self, _):
     if len(self.aw.qmc.timex) > 1:
         self.xlimitEdit.setText(stringfromseconds(self.aw.qmc.timex[-1]))
     else:
         self.xlimitEdit.setText(
             stringfromseconds(self.aw.qmc.endofx_default))
     self.xlimitEdit_min.setText(
         stringfromseconds(self.aw.qmc.startofx_default))
     try:
         self.xaxislencombobox.setCurrentIndex(
             self.timeconversion.index(self.aw.qmc.xgrid_default))
     except Exception:
         self.xaxislencombobox.setCurrentIndex(1)
     if self.aw.qmc.mode == "F":
         self.ygridSpinBox.setValue(self.aw.qmc.ygrid_F_default)
         self.ylimitEdit.setText(str(self.aw.qmc.ylimit_F_default))
         self.ylimitEdit_min.setText(str(self.aw.qmc.ylimit_min_F_default))
         self.zlimitEdit.setText(str(self.aw.qmc.zlimit_F_default))
         self.zlimitEdit_min.setText(str(self.aw.qmc.zlimit_min_F_default))
         self.zgridSpinBox.setValue(self.aw.qmc.zgrid_F_default)
     else:
         self.ygridSpinBox.setValue(self.aw.qmc.ygrid_C_default)
         self.ylimitEdit.setText(str(self.aw.qmc.ylimit_C_default))
         self.ylimitEdit_min.setText(str(self.aw.qmc.ylimit_min_C_default))
         self.zlimitEdit.setText(str(self.aw.qmc.zlimit_C_default))
         self.zlimitEdit_min.setText(str(self.aw.qmc.zlimit_min_C_default))
         self.zgridSpinBox.setValue(self.aw.qmc.zgrid_C_default)
Ejemplo n.º 2
0
 def calcEventRC(self,_):
     nevents = len(self.aw.qmc.specialevents)
     Aevent = int(self.eventAComboBox.currentIndex())
     Bevent = int(self.eventBComboBox.currentIndex())
     if Aevent <= nevents and Bevent <= nevents and Aevent and Bevent:
         if self.aw.qmc.timeindex[0] != -1:
             start = self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
         else:
             start = 0
         self.startEdit.setText(stringfromseconds(self.aw.qmc.timex[self.aw.qmc.specialevents[Aevent-1]] - start))
         self.endEdit.setText(stringfromseconds(self.aw.qmc.timex[self.aw.qmc.specialevents[Bevent-1]] - start))
         self.calculateRC()
Ejemplo n.º 3
0
 def calculateRC(self):
     if len(self.aw.qmc.timex) > 2:
         if not len(self.startEdit.text()) or not len(self.endEdit.text()):
             #empty field
             return
         starttime = stringtoseconds(str(self.startEdit.text()))
         endtime = stringtoseconds(str(self.endEdit.text()))
         if starttime == -1 or endtime == -1:
             self.result1.setText(
                 QApplication.translate(
                     "Label", "Time syntax error. Time not valid", None))
             self.result2.setText("")
             return
         if endtime > self.aw.qmc.timex[-1] or endtime < starttime:
             self.result1.setText(
                 QApplication.translate(
                     "Label", "Error: End time smaller than Start time",
                     None))
             self.result2.setText("")
             return
         if self.aw.qmc.timeindex[0] != -1:
             start = self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
         else:
             start = 0
         startindex = self.aw.qmc.time2index(starttime + start)
         endindex = self.aw.qmc.time2index(endtime + start)
         #delta
         deltatime = self.aw.qmc.timex[endindex] - self.aw.qmc.timex[
             startindex]
         deltatemperature = self.aw.qmc.temp2[endindex] - self.aw.qmc.temp2[
             startindex]
         if deltatime == 0:
             deltaseconds = 0
         else:
             deltaseconds = deltatemperature / deltatime
         deltaminutes = deltaseconds * 60.
         string1 = QApplication.translate(
             "Label", "Best approximation was made from {0} to {1}",
             None).format(
                 stringfromseconds(self.aw.qmc.timex[startindex] - start),
                 stringfromseconds(self.aw.qmc.timex[endindex] - start))
         string2 = QApplication.translate(
             "Label", "<b>{0}</b> {1}/sec, <b>{2}</b> {3}/min",
             None).format("%.2f" % (deltaseconds), self.aw.qmc.mode,
                          "%.2f" % (deltaminutes), self.aw.qmc.mode)
         self.result1.setText(string1)
         self.result2.setText(string2)
     else:
         self.result1.setText(
             QApplication.translate("Label", "No profile found", None))
         self.result2.setText("")
Ejemplo n.º 4
0
    def __init__(self, parent=None, aw=None, values=[0, 0]):
        super(pointDlg, self).__init__(parent, aw)
        self.values = values
        self.setWindowTitle(
            QApplication.translate("Form Caption", "Add Point", None))
        self.tempEdit = QLineEdit(str(int(round(self.values[1]))))
        self.tempEdit.setValidator(QIntValidator(0, 999, self.tempEdit))
        self.tempEdit.setFocus()
        self.tempEdit.setAlignment(Qt.AlignRight)
        templabel = QLabel(QApplication.translate("Label", "temp", None))
        regextime = QRegExp(r"^-?[0-9]?[0-9]?[0-9]:[0-5][0-9]$")
        self.timeEdit = QLineEdit(
            stringfromseconds(self.values[0], leadingzero=False))
        self.timeEdit.setAlignment(Qt.AlignRight)
        self.timeEdit.setValidator(QRegExpValidator(regextime, self))
        timelabel = QLabel(QApplication.translate("Label", "time", None))

        # connect the ArtisanDialog standard OK/Cancel buttons
        self.dialogbuttons.accepted.connect(self.return_values)
        self.dialogbuttons.rejected.connect(self.reject)

        buttonLayout = QHBoxLayout()
        buttonLayout.addStretch()
        buttonLayout.addWidget(self.dialogbuttons)
        grid = QGridLayout()
        grid.addWidget(timelabel, 0, 0)
        grid.addWidget(self.timeEdit, 0, 1)
        grid.addWidget(templabel, 1, 0)
        grid.addWidget(self.tempEdit, 1, 1)
        mainLayout = QVBoxLayout()
        mainLayout.addLayout(grid)
        mainLayout.addStretch()
        mainLayout.addLayout(buttonLayout)
        self.setLayout(mainLayout)
        self.dialogbuttons.button(QDialogButtonBox.Ok).setFocus()
Ejemplo n.º 5
0
 def reset(self,_):
     self.dryend.setChecked(True)
     self.fcs.setChecked(True)
     self.fce.setChecked(True)
     self.scs.setChecked(True)
     self.sce.setChecked(True)
     #reset designer
     self.aw.qmc.reset_designer()
     #update editboxes
     self.Edit0.setText(stringfromseconds(0))
     self.Edit1.setText(stringfromseconds(self.aw.qmc.designertimeinit[1]))
     self.Edit2.setText(stringfromseconds(self.aw.qmc.designertimeinit[2]))
     self.Edit3.setText(stringfromseconds(self.aw.qmc.designertimeinit[3]))
     self.Edit4.setText(stringfromseconds(self.aw.qmc.designertimeinit[4]))
     self.Edit5.setText(stringfromseconds(self.aw.qmc.designertimeinit[5]))
     self.Edit6.setText(stringfromseconds(self.aw.qmc.designertimeinit[6]))
     self.Edit0bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[0]])
     self.Edit1bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[1]])
     self.Edit2bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[2]])
     self.Edit3bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[3]])
     self.Edit4bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[4]])
     self.Edit5bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[5]])
     self.Edit6bt.setText("%.1f"%self.aw.qmc.temp2[self.aw.qmc.timeindex[6]])
     self.Edit0et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[0]])
     self.Edit1et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[1]])
     self.Edit2et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[2]])
     self.Edit3et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[3]])
     self.Edit4et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[4]])
     self.Edit5et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[5]])
     self.Edit6et.setText("%.1f"%self.aw.qmc.temp1[self.aw.qmc.timeindex[6]])
     self.aw.sendmessage(QApplication.translate("Message","Designer has been reset",None))
Ejemplo n.º 6
0
 def reset(self, _):
     if len(self.aw.qmc.timex) > 1:
         self.xlimitEdit.setText(stringfromseconds(self.aw.qmc.timex[-1]))
     else:
         self.xlimitEdit.setText(
             stringfromseconds(self.aw.qmc.endofx_default))
     self.xlimitEdit_min.setText(
         stringfromseconds(self.aw.qmc.startofx_default))
     if self.aw.qmc.mode == "F":
         self.ylimitEdit.setText(str(self.aw.qmc.ylimit_F_default))
         self.ylimitEdit_min.setText(str(self.aw.qmc.ylimit_min_F_default))
         self.zlimitEdit.setText(str(self.aw.qmc.zlimit_F_default))
         self.zlimitEdit_min.setText(str(self.aw.qmc.zlimit_min_F_default))
     else:
         self.ylimitEdit.setText(str(self.aw.qmc.ylimit_C_default))
         self.ylimitEdit_min.setText(str(self.aw.qmc.ylimit_min_C_default))
         self.zlimitEdit.setText(str(self.aw.qmc.zlimit_C_default))
         self.zlimitEdit_min.setText(str(self.aw.qmc.zlimit_min_C_default))
Ejemplo n.º 7
0
 def autoAxis(self, _=False):
     if self.aw.qmc.backgroundpath and not self.aw.curFile:
         t_min, t_max = self.aw.calcAutoAxisBackground()
     else:
         t_min, t_max = self.aw.calcAutoAxis()
         if self.aw.qmc.backgroundpath:
             _, t_max_b = self.aw.calcAutoAxisBackground()
             t_max = max(
                 t_max,
                 t_max_b - self.aw.qmc.timeB[self.aw.qmc.timeindexB[0]])
     if self.aw.qmc.timeindex[0] != -1:
         self.xlimitEdit_min.setText(
             stringfromseconds(t_min -
                               self.aw.qmc.timex[self.aw.qmc.timeindex[0]]))
         self.xlimitEdit.setText(
             stringfromseconds(t_max -
                               self.aw.qmc.timex[self.aw.qmc.timeindex[0]]))
     else:
         self.xlimitEdit_min.setText(stringfromseconds(t_min))
         self.xlimitEdit.setText(stringfromseconds(t_max))
     self.xlimitEdit_min.repaint()
     self.xlimitEdit.repaint()
Ejemplo n.º 8
0
    def __init__(self, parent=None, aw=None):
        super(WindowsDlg, self).__init__(parent, aw)
        self.setWindowTitle(
            QApplication.translate("Form Caption", "Axes", None))
        self.setModal(True)
        xlimitLabel = QLabel(QApplication.translate("Label", "Max", None))
        xlimitLabel_min = QLabel(QApplication.translate("Label", "Min", None))
        ylimitLabel = QLabel(QApplication.translate("Label", "Max", None))
        ylimitLabel_min = QLabel(QApplication.translate("Label", "Min", None))
        zlimitLabel = QLabel(QApplication.translate("Label", "Max", None))
        zlimitLabel_min = QLabel(QApplication.translate("Label", "Min", None))
        step100Label = QLabel(
            QApplication.translate("Label", "100% Event Step", None))
        self.step100Edit = QLineEdit()
        self.step100Edit.setMaximumWidth(55)
        self.step100Edit.setValidator(
            QIntValidator(self.aw.qmc.ylimit_min_max, 999999,
                          self.step100Edit))
        self.step100Edit.setAlignment(Qt.AlignRight)
        self.step100Edit.setToolTip(
            QApplication.translate(
                "Tooltip",
                "100% event values in step mode are aligned with the given y-axis value or the lowest phases limit if left empty",
                None))
        self.xlimitEdit = QLineEdit()
        self.xlimitEdit.setMaximumWidth(50)
        self.xlimitEdit.setMinimumWidth(50)
        self.xlimitEdit.setAlignment(Qt.AlignRight)
        self.xlimitEdit_min = QLineEdit()
        self.xlimitEdit_min.setMaximumWidth(55)
        self.xlimitEdit_min.setMinimumWidth(55)
        self.xlimitEdit_min.setAlignment(Qt.AlignRight)
        regextime = QRegularExpression(r"^-?[0-9]?[0-9]?[0-9]:[0-5][0-9]$")
        self.xlimitEdit.setValidator(
            QRegularExpressionValidator(regextime, self))
        self.xlimitEdit_min.setValidator(
            QRegularExpressionValidator(regextime, self))
        self.ylimitEdit = QLineEdit()
        self.ylimitEdit.setMaximumWidth(60)
        self.ylimitEdit_min = QLineEdit()
        self.ylimitEdit_min.setMaximumWidth(60)
        self.ylimitEdit.setValidator(
            QIntValidator(self.aw.qmc.ylimit_min_max, self.aw.qmc.ylimit_max,
                          self.ylimitEdit))
        self.ylimitEdit_min.setValidator(
            QIntValidator(self.aw.qmc.ylimit_min_max, self.aw.qmc.ylimit_max,
                          self.ylimitEdit_min))
        self.ylimitEdit.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                     | Qt.AlignVCenter)
        self.ylimitEdit_min.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                         | Qt.AlignVCenter)
        self.zlimitEdit = QLineEdit()
        self.zlimitEdit.setMaximumWidth(60)
        self.zlimitEdit_min = QLineEdit()
        self.zlimitEdit_min.setMaximumWidth(60)
        self.zlimitEdit.setValidator(
            QIntValidator(self.aw.qmc.zlimit_min_max, self.aw.qmc.zlimit_max,
                          self.zlimitEdit))
        self.zlimitEdit_min.setValidator(
            QIntValidator(self.aw.qmc.zlimit_min_max, self.aw.qmc.zlimit_max,
                          self.zlimitEdit_min))
        self.zlimitEdit.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                     | Qt.AlignVCenter)
        self.zlimitEdit_min.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                         | Qt.AlignVCenter)
        self.xlimitEdit.setText(stringfromseconds(self.aw.qmc.endofx))
        if self.aw.qmc.timeindex[0] != -1:
            self.xlimitEdit_min.setText(
                stringfromseconds(self.aw.qmc.startofx -
                                  self.aw.qmc.timex[self.aw.qmc.timeindex[0]]))
        else:
            self.xlimitEdit_min.setText(stringfromseconds(
                self.aw.qmc.startofx))
        self.ylimitEdit.setText(str(self.aw.qmc.ylimit))
        self.ylimitEdit_min.setText(str(self.aw.qmc.ylimit_min))
        if self.aw.qmc.step100temp is not None:
            self.step100Edit.setText(str(self.aw.qmc.step100temp))
        else:
            self.step100Edit.setText("")
        self.zlimitEdit.setText(str(self.aw.qmc.zlimit))
        self.zlimitEdit_min.setText(str(self.aw.qmc.zlimit_min))
        self.legendComboBox = QComboBox()
        self.legendComboBox.setMaximumWidth(160)
        legendlocs = [
            "",  #QApplication.translate("ComboBox", "none",None),
            QApplication.translate("ComboBox", "upper right", None),
            QApplication.translate("ComboBox", "upper left", None),
            QApplication.translate("ComboBox", "lower left", None),
            QApplication.translate("ComboBox", "lower right", None),
            QApplication.translate("ComboBox", "right", None),
            QApplication.translate("ComboBox", "center left", None),
            QApplication.translate("ComboBox", "center right", None),
            QApplication.translate("ComboBox", "lower center", None),
            QApplication.translate("ComboBox", "upper center", None),
            QApplication.translate("ComboBox", "center", None)
        ]
        self.legendComboBox.addItems(legendlocs)
        self.legendComboBox.setCurrentIndex(self.aw.qmc.legendloc)
        self.legendComboBox.currentIndexChanged.connect(self.changelegendloc)
        resettimelabel = QLabel(QApplication.translate("Label", "Max", None))
        self.resetEdit = QLineEdit()
        self.resetEdit.setMaximumWidth(50)
        self.resetEdit.setMinimumWidth(50)
        self.resetEdit.setAlignment(Qt.AlignRight)
        regextime = QRegularExpression(r"^-?[0-9]?[0-9]?[0-9]:[0-5][0-9]$")
        self.resetEdit.setValidator(
            QRegularExpressionValidator(regextime, self))
        self.resetEdit.setText(stringfromseconds(self.aw.qmc.resetmaxtime))
        self.resetEdit.setToolTip(
            QApplication.translate("Tooltip", "Time axis max on RESET", None))
        # CHARGE min
        chargeminlabel = QLabel(
            QApplication.translate("Label", "RESET", None) + " " +
            QApplication.translate("Label", "Min", None))
        self.chargeminEdit = QLineEdit()
        self.chargeminEdit.setMaximumWidth(50)
        self.chargeminEdit.setMinimumWidth(50)
        self.chargeminEdit.setAlignment(Qt.AlignRight)
        self.chargeminEdit.setValidator(
            QRegularExpressionValidator(regextime, self))
        self.chargeminEdit.setText(stringfromseconds(
            self.aw.qmc.chargemintime))
        self.chargeminEdit.setToolTip(
            QApplication.translate("Tooltip", "Time axis min on RESET", None))

        # fixmaxtime flag
        self.fixmaxtimeFlag = QCheckBox(
            QApplication.translate("CheckBox", "Expand", None))
        self.fixmaxtimeFlag.setChecked(not self.aw.qmc.fixmaxtime)
        self.fixmaxtimeFlag.setToolTip(
            QApplication.translate(
                "Tooltip",
                "Automatically extend the time axis by 3min on need", None))
        # locktimex flag
        self.locktimexFlag = QCheckBox(
            QApplication.translate("CheckBox", "Lock", None))
        self.locktimexFlag.setChecked(self.aw.qmc.locktimex)
        self.locktimexFlag.stateChanged.connect(self.lockTimexFlagChanged)
        self.locktimexFlag.setToolTip(
            QApplication.translate(
                "Tooltip",
                "Do not set time axis min and max from profile on load", None))
        # autotimex flag
        self.autotimexFlag = QCheckBox(
            QApplication.translate("CheckBox", "Auto", None))
        self.autotimexFlag.setChecked(self.aw.qmc.autotimex)
        self.autotimexFlag.stateChanged.connect(self.autoTimexFlagChanged)
        self.autotimexFlag.setToolTip(
            QApplication.translate(
                "Tooltip",
                "Automatically set time axis min and max from profile CHARGE/DROP events",
                None))
        autoButton = QPushButton(QApplication.translate(
            "Button", "Calc", None))
        autoButton.setFocusPolicy(Qt.NoFocus)
        autoButton.clicked.connect(self.autoAxis)
        # time axis steps
        timegridlabel = QLabel(QApplication.translate("Label", "Step", None))
        self.xaxislencombobox = QComboBox()
        timelocs = [
            #QApplication.translate("ComboBox", "30 seconds",None),
            QApplication.translate("ComboBox", "1 minute", None),
            QApplication.translate("ComboBox", "2 minutes", None),
            QApplication.translate("ComboBox", "3 minutes", None),
            QApplication.translate("ComboBox", "4 minutes", None),
            QApplication.translate("ComboBox", "5 minutes", None),
            QApplication.translate("ComboBox", "10 minutes", None),
            QApplication.translate("ComboBox", "30 minutes", None),
            QApplication.translate("ComboBox", "1 hour", None)
        ]
        self.xaxislencombobox.addItems(timelocs)

        self.xaxislencombobox.setMinimumContentsLength(6)
        width = self.xaxislencombobox.minimumSizeHint().width()
        self.xaxislencombobox.setMinimumWidth(width)
        if platform.system() == 'Darwin':
            self.xaxislencombobox.setMaximumWidth(width)
#        self.xaxislencombobox.setMaximumWidth(120)

        self.timeconversion = [60, 120, 180, 240, 300, 600, 1800, 3600]
        try:
            self.xaxislencombobox.setCurrentIndex(
                self.timeconversion.index(self.aw.qmc.xgrid))
        except Exception:
            self.xaxislencombobox.setCurrentIndex(0)
        self.xaxislencombobox.currentIndexChanged.connect(self.xaxislenloc)
        self.timeGridCheckBox = QCheckBox(
            QApplication.translate("CheckBox", "Time", None))
        self.timeGridCheckBox.setChecked(self.aw.qmc.time_grid)
        self.timeGridCheckBox.setToolTip(
            QApplication.translate("Tooltip", "Show time grid", None))
        self.timeGridCheckBox.setFocusPolicy(Qt.NoFocus)
        self.tempGridCheckBox = QCheckBox(
            QApplication.translate("CheckBox", "Temp", None))
        self.tempGridCheckBox.setToolTip(
            QApplication.translate("Tooltip", "Show temperature grid", None))
        self.tempGridCheckBox.setChecked(self.aw.qmc.temp_grid)
        self.tempGridCheckBox.setFocusPolicy(Qt.NoFocus)
        ygridlabel = QLabel(QApplication.translate("Label", "Step", None))
        self.ygridSpinBox = QSpinBox()
        self.ygridSpinBox.setRange(10, 500)
        self.ygridSpinBox.setSingleStep(5)
        self.ygridSpinBox.setValue(self.aw.qmc.ygrid)
        self.ygridSpinBox.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                       | Qt.AlignVCenter)
        self.ygridSpinBox.valueChanged.connect(self.changeygrid)
        self.ygridSpinBox.setMaximumWidth(60)
        zgridlabel = QLabel(QApplication.translate("Label", "Step", None))
        self.zgridSpinBox = QSpinBox()
        self.zgridSpinBox.setRange(1, 100)
        self.zgridSpinBox.setSingleStep(5)
        self.zgridSpinBox.setValue(self.aw.qmc.zgrid)
        self.zgridSpinBox.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                       | Qt.AlignVCenter)
        self.zgridSpinBox.valueChanged.connect(self.changezgrid)
        self.zgridSpinBox.setMaximumWidth(60)

        self.autodeltaxLabel = QLabel(
            QApplication.translate("CheckBox", "Auto", None))
        self.autodeltaxETFlag = QCheckBox(
            deltaLabelUTF8 + QApplication.translate("CheckBox", "ET", None))
        self.autodeltaxETFlag.setChecked(self.aw.qmc.autodeltaxET)
        self.autodeltaxBTFlag = QCheckBox(
            deltaLabelUTF8 + QApplication.translate("CheckBox", "BT", None))
        self.autodeltaxBTFlag.setChecked(self.aw.qmc.autodeltaxBT)
        self.autodeltaxETFlag.setToolTip(
            QApplication.translate(
                "Tooltip", "Automatically set delta axis max from DeltaET",
                None))
        self.autodeltaxBTFlag.setToolTip(
            QApplication.translate(
                "Tooltip", "Automatically set delta axis max from DeltaBT",
                None))
        autoDeltaButton = QPushButton(
            QApplication.translate("Button", "Calc", None))
        autoDeltaButton.setFocusPolicy(Qt.NoFocus)
        autoDeltaButton.clicked.connect(self.autoDeltaAxis)

        linestylegridlabel = QLabel(
            QApplication.translate("Label", "Style", None))
        self.gridstylecombobox = QComboBox()
        gridstyles = [
            QApplication.translate("ComboBox", "solid", None),
            QApplication.translate("ComboBox", "dashed", None),
            QApplication.translate("ComboBox", "dashed-dot", None),
            QApplication.translate("ComboBox", "dotted", None),
            QApplication.translate("ComboBox", "None", None)
        ]
        self.gridstylecombobox.addItems(gridstyles)
        self.gridstylecombobox.setCurrentIndex(self.aw.qmc.gridlinestyle)
        self.gridstylecombobox.currentIndexChanged.connect(
            self.changegridstyle)
        gridthicknesslabel = QLabel(
            QApplication.translate("Label", "Width", None))
        self.gridwidthSpinBox = QSpinBox()
        self.gridwidthSpinBox.setRange(1, 5)
        self.gridwidthSpinBox.setValue(self.aw.qmc.gridthickness)
        self.gridwidthSpinBox.valueChanged.connect(self.changegridwidth)
        self.gridwidthSpinBox.setMaximumWidth(40)
        self.gridwidthSpinBox.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                           | Qt.AlignVCenter)
        gridalphalabel = QLabel(
            QApplication.translate("Label", "Opaqueness", None))
        self.gridalphaSpinBox = QSpinBox()
        self.gridalphaSpinBox.setRange(1, 10)
        self.gridalphaSpinBox.setValue(int(self.aw.qmc.gridalpha * 10))
        self.gridalphaSpinBox.valueChanged.connect(self.changegridalpha)
        self.gridalphaSpinBox.setMaximumWidth(40)
        self.gridalphaSpinBox.setAlignment(Qt.AlignRight | Qt.AlignTrailing
                                           | Qt.AlignVCenter)

        # connect the ArtisanDialog standard OK/Cancel buttons
        self.dialogbuttons.accepted.connect(self.updatewindow)
        self.dialogbuttons.rejected.connect(self.close)

        resetButton = self.dialogbuttons.addButton(
            QDialogButtonBox.RestoreDefaults)
        resetButton.clicked.connect(self.reset)
        if self.aw.locale not in self.aw.qtbase_locales:
            resetButton.setText(
                QApplication.translate("Button", "Defaults", None))

        self.loadAxisFromProfile = QCheckBox(
            QApplication.translate("CheckBox", "Load from profile", None))
        self.loadAxisFromProfile.setChecked(self.aw.qmc.loadaxisfromprofile)

        hline = QFrame()
        hline.setFrameShape(QFrame.HLine)
        hline.setFrameShadow(QFrame.Sunken)

        hline2 = QFrame()
        hline2.setFrameShape(QFrame.HLine)
        hline2.setFrameShadow(QFrame.Sunken)

        xlayout1 = QHBoxLayout()
        xlayout1.addWidget(self.autotimexFlag)
        xlayout1.addWidget(autoButton)
        xlayout1.addStretch()
        xlayout1.addWidget(self.locktimexFlag)
        xlayout2 = QHBoxLayout()
        xlayout2.addWidget(xlimitLabel_min)
        xlayout2.addWidget(self.xlimitEdit_min)
        xlayout2.addSpacing(10)
        xlayout2.addWidget(xlimitLabel)
        xlayout2.addWidget(self.xlimitEdit)
        xlayout2.addStretch()
        xlayout2.addWidget(timegridlabel)
        xlayout2.addWidget(self.xaxislencombobox)
        xlayout3 = QHBoxLayout()
        xlayout3.addWidget(chargeminlabel)
        xlayout3.addWidget(self.chargeminEdit)
        xlayout3.addSpacing(7)
        xlayout3.addWidget(resettimelabel)
        xlayout3.addWidget(self.resetEdit)
        xlayout3.addSpacing(7)
        xlayout3.addStretch()
        xlayout3.addWidget(self.fixmaxtimeFlag)
        xlayout = QVBoxLayout()
        xlayout.addLayout(xlayout1)
        xlayout.addLayout(xlayout2)
        xlayout.addWidget(hline)
        xlayout.addLayout(xlayout3)
        ylayout = QGridLayout()
        ylayout.addWidget(ylimitLabel_min, 0, 0, Qt.AlignRight)
        ylayout.addWidget(self.ylimitEdit_min, 0, 1)
        ylayout.addWidget(ylimitLabel, 0, 3, Qt.AlignRight)
        ylayout.addWidget(self.ylimitEdit, 0, 4)
        ylayout.addWidget(ygridlabel, 0, 6, Qt.AlignRight)
        ylayout.addWidget(self.ygridSpinBox, 0, 7)
        ylayout.setColumnMinimumWidth(2, 10)
        ylayout.setColumnMinimumWidth(5, 10)
        ylayoutHbox = QHBoxLayout()
        ylayoutHbox.addStretch()
        ylayoutHbox.addLayout(ylayout)
        ylayoutHbox.addStretch()
        steplayoutHbox = QHBoxLayout()
        steplayoutHbox.addWidget(step100Label)
        steplayoutHbox.addWidget(self.step100Edit)
        steplayoutHbox.addStretch()
        ylayoutVbox = QVBoxLayout()
        ylayoutVbox.addLayout(ylayoutHbox)
        ylayoutVbox.addWidget(hline)
        ylayoutVbox.addLayout(steplayoutHbox)
        ylayoutVbox.addStretch()
        zlayout1 = QHBoxLayout()
        zlayout1.addWidget(self.autodeltaxLabel)
        zlayout1.addSpacing(5)
        zlayout1.addWidget(self.autodeltaxETFlag)
        zlayout1.addSpacing(5)
        zlayout1.addWidget(self.autodeltaxBTFlag)
        zlayout1.addSpacing(5)
        zlayout1.addWidget(autoDeltaButton)
        zlayout1.addStretch()
        zlayout = QGridLayout()
        zlayout.addWidget(zlimitLabel_min, 0, 0, Qt.AlignRight)
        zlayout.addWidget(self.zlimitEdit_min, 0, 1)
        zlayout.addWidget(zlimitLabel, 0, 3, Qt.AlignRight)
        zlayout.addWidget(self.zlimitEdit, 0, 4)
        zlayout.addWidget(zgridlabel, 0, 6, Qt.AlignRight)
        zlayout.addWidget(self.zgridSpinBox, 0, 7)
        zlayout.setColumnMinimumWidth(2, 10)
        zlayout.setColumnMinimumWidth(5, 10)
        zlayoutHbox = QHBoxLayout()
        zlayoutHbox.addStretch()
        zlayoutHbox.addLayout(zlayout)
        zlayoutHbox.addStretch()
        zlayoutVbox = QVBoxLayout()
        zlayoutVbox.addLayout(zlayout1)
        zlayoutVbox.addLayout(zlayoutHbox)
        zlayoutVbox.addStretch()

        legentlayout = QHBoxLayout()
        legentlayout.addStretch()
        legentlayout.addWidget(self.legendComboBox, 0, Qt.AlignLeft)
        legentlayout.addStretch()
        graphgridlayout = QGridLayout()
        graphgridlayout.addWidget(linestylegridlabel, 1, 0, Qt.AlignRight)
        graphgridlayout.addWidget(self.gridstylecombobox, 1, 1, Qt.AlignLeft)
        graphgridlayout.addWidget(gridthicknesslabel, 1, 2, Qt.AlignRight)
        graphgridlayout.addWidget(self.gridwidthSpinBox, 1, 3, Qt.AlignLeft)
        graphgridlayout.addWidget(self.timeGridCheckBox, 2, 0, Qt.AlignLeft)
        graphgridlayout.addWidget(self.tempGridCheckBox, 2, 1, Qt.AlignLeft)
        graphgridlayout.addWidget(gridalphalabel, 2, 2, Qt.AlignRight)
        graphgridlayout.addWidget(self.gridalphaSpinBox, 2, 3, Qt.AlignLeft)
        xGroupLayout = QGroupBox(
            QApplication.translate("GroupBox", "Time Axis", None))
        xGroupLayout.setLayout(xlayout)
        yGroupLayout = QGroupBox(
            QApplication.translate("GroupBox", "Temperature Axis", None))
        yGroupLayout.setLayout(ylayoutVbox)
        zGroupLayout = QGroupBox(
            deltaLabelUTF8 + " " +
            QApplication.translate("GroupBox", "Axis", None))
        zGroupLayout.setLayout(zlayoutVbox)
        legendLayout = QGroupBox(
            QApplication.translate("GroupBox", "Legend Location", None))
        legendLayout.setLayout(legentlayout)
        GridGroupLayout = QGroupBox(
            QApplication.translate("GroupBox", "Grid", None))
        GridGroupLayout.setLayout(graphgridlayout)
        buttonLayout = QHBoxLayout()
        buttonLayout.addWidget(self.loadAxisFromProfile)
        buttonLayout.addSpacing(10)
        buttonLayout.addWidget(self.dialogbuttons)
        mainLayout1 = QVBoxLayout()
        mainLayout1.addWidget(xGroupLayout)
        mainLayout1.addWidget(yGroupLayout)
        mainLayout1.addStretch()
        mainLayout2 = QVBoxLayout()
        mainLayout2.addWidget(legendLayout)
        mainLayout2.addWidget(GridGroupLayout)
        mainLayout2.addWidget(zGroupLayout)
        mainLayout2.addStretch()
        mainHLayout = QHBoxLayout()
        mainHLayout.addLayout(mainLayout1)
        mainHLayout.addLayout(mainLayout2)
        mainLayout = QVBoxLayout()
        mainLayout.addLayout(mainHLayout)
        mainLayout.addStretch()
        mainLayout.addLayout(buttonLayout)
        self.setLayout(mainLayout)
        self.dialogbuttons.button(QDialogButtonBox.Ok).setFocus()

        if self.aw.qmc.locktimex:
            self.disableXAxisControls()
        else:
            self.enableXAxisControls()

        settings = QSettings()
        if settings.contains("AxisPosition"):
            self.move(settings.value("AxisPosition"))

        mainLayout.setSizeConstraint(QLayout.SetFixedSize)
Ejemplo n.º 9
0
    def createDataTable(self):
        try:
            #### lock shared resources #####
            self.aw.qmc.samplingsemaphore.acquire(1)
            
            ndata = len(self.aw.qmc.timeB)
            
            self.datatable.clear() # this crashes Ubuntu 16.04
    #        if ndata != 0:
    #            self.datatable.clearContents() # this crashes Ubuntu 16.04 if device table is empty and also sometimes else
            self.datatable.clearSelection() # this seems to work also for Ubuntu 16.04
    
            if self.aw.qmc.timeindexB[0] != -1 and len(self.aw.qmc.timeB) > self.aw.qmc.timeindexB[0]:
                start = self.aw.qmc.timeB[self.aw.qmc.timeindexB[0]]
            else:
                start = 0
            self.datatable.setRowCount(ndata)
            headers = [QApplication.translate("Table","Time",None),
                                                      QApplication.translate("Table","ET",None),
                                                      QApplication.translate("Table","BT",None),
                                                      deltaLabelUTF8 + QApplication.translate("Table","ET",None),
                                                      deltaLabelUTF8 + QApplication.translate("Table","BT",None)]
            xtcurve = False # no XT curve
            if self.aw.qmc.xtcurveidx > 0: # 3rd background curve set?
                idx3 = self.aw.qmc.xtcurveidx - 1
                n3 = idx3 // 2
                if len(self.aw.qmc.temp1BX) > n3 and len(self.aw.qmc.extratimexB) > n3:
                    xtcurve = True
                    if self.aw.qmc.xtcurveidx % 2:
                        headers.append(self.aw.qmc.extraname1B[n3])
                    else:
                        headers.append(self.aw.qmc.extraname2B[n3])

            ytcurve = False # no YT curve
            if self.aw.qmc.ytcurveidx > 0: # 4th background curve set?
                idx4 = self.aw.qmc.ytcurveidx - 1
                n4 = idx4 // 2
                if len(self.aw.qmc.temp1BX) > n4 and len(self.aw.qmc.extratimexB) > n4:
                    ytcurve = True
                    if self.aw.qmc.ytcurveidx % 2:
                        headers.append(self.aw.qmc.extraname1B[n4])
                    else:
                        headers.append(self.aw.qmc.extraname2B[n4])
            
            headers.append("") # dummy column that stretches
            self.datatable.setColumnCount(len(headers))
            self.datatable.setHorizontalHeaderLabels(headers)
            self.datatable.setAlternatingRowColors(True)
            self.datatable.setEditTriggers(QTableWidget.NoEditTriggers)
            self.datatable.setSelectionBehavior(QTableWidget.SelectRows)
            self.datatable.setSelectionMode(QTableWidget.ExtendedSelection) # QTableWidget.SingleSelection, ContiguousSelection, MultiSelection
            self.datatable.setShowGrid(True)
            self.datatable.verticalHeader().setSectionResizeMode(2)
            for i in range(ndata):
                Rtime = QTableWidgetItem(stringfromseconds(self.aw.qmc.timeB[i]-start))
                Rtime.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                if self.aw.qmc.LCDdecimalplaces:
                    fmtstr = "%.1f"
                else:
                    fmtstr = "%.0f"
                ET = QTableWidgetItem(fmtstr%self.aw.qmc.temp1B[i])
                BT = QTableWidgetItem(fmtstr%self.aw.qmc.temp2B[i])
                ET.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                BT.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                if i:
                    d = (self.aw.qmc.timeB[i]-self.aw.qmc.timeB[i-1])
                    if d == 0:
                        dET = 0.
                        dBT = 0.
                    else:
                        dET = (60*(self.aw.qmc.temp1B[i]-self.aw.qmc.temp1B[i-1])/d)
                        dBT = (60*(self.aw.qmc.temp2B[i]-self.aw.qmc.temp2B[i-1])/d)
                    deltaET = QTableWidgetItem("%.1f"%dET)
                    deltaBT = QTableWidgetItem("%.1f"%dBT)
                else:
                    deltaET = QTableWidgetItem("--")
                    deltaBT = QTableWidgetItem("--")
                deltaET.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                deltaBT.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                self.datatable.setItem(i,0,Rtime)
                        
                if i:
                    #identify by color and add notation
                    if i == self.aw.qmc.timeindexB[0] != -1:
                        self.datatable.item(i,0).setBackground(QColor('#f07800'))
                        text = QApplication.translate("Table", "CHARGE",None)
                    elif i == self.aw.qmc.timeindexB[1]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "DRY END",None)
                    elif i == self.aw.qmc.timeindexB[2]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "FC START",None)
                    elif i == self.aw.qmc.timeindexB[3]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "FC END",None)
                    elif i == self.aw.qmc.timeindexB[4]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "SC START",None)
                    elif i == self.aw.qmc.timeindexB[5]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "SC END",None)
                    elif i == self.aw.qmc.timeindexB[6]:
                        self.datatable.item(i,0).setBackground(QColor('#f07800'))
                        text = QApplication.translate("Table", "DROP",None)
                    elif i == self.aw.qmc.timeindexB[7]:
                        self.datatable.item(i,0).setBackground(QColor('orange'))
                        text = QApplication.translate("Table", "COOL",None)
                    elif i in self.aw.qmc.backgroundEvents:
                        self.datatable.item(i,0).setBackground(QColor('yellow'))
                        index = self.aw.qmc.backgroundEvents.index(i)
                        text = QApplication.translate("Table", "#{0} {1}{2}",None).format(str(index+1),self.aw.qmc.Betypesf(self.aw.qmc.backgroundEtypes[index])[0],self.aw.qmc.eventsvalues(self.aw.qmc.backgroundEvalues[index]))
                    else:
                        text = ""
                    Rtime.setText(text + " " + Rtime.text())
                self.datatable.setItem(i,1,ET)
                self.datatable.setItem(i,2,BT)
                self.datatable.setItem(i,3,deltaET)
                self.datatable.setItem(i,4,deltaBT)
                
                if xtcurve and len(self.aw.qmc.temp1BX[n3]) > i: # an XT column is availble, fill it with data
                    if self.aw.qmc.xtcurveidx % 2:
                        XT = QTableWidgetItem("%.0f"%self.aw.qmc.temp1BX[n3][i])
                    else:
                        XT = QTableWidgetItem("%.0f"%self.aw.qmc.temp2BX[n3][i])
                    XT.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                    self.datatable.setItem(i,5,XT)
                
                if ytcurve and len(self.aw.qmc.temp1BX[n4]) > i: # an YT column is availble, fill it with data
                    if self.aw.qmc.ytcurveidx % 2:
                        YT = QTableWidgetItem("%.0f"%self.aw.qmc.temp1BX[n4][i])
                    else:
                        YT = QTableWidgetItem("%.0f"%self.aw.qmc.temp2BX[n4][i])
                    YT.setTextAlignment(Qt.AlignRight|Qt.AlignVCenter)
                    if xtcurve:
                        self.datatable.setItem(i,6,YT)
                    else:
                        self.datatable.setItem(i,5,YT)
                    
            header = self.datatable.horizontalHeader()
            header.setSectionResizeMode(0, QHeaderView.Fixed)
            header.setSectionResizeMode(1, QHeaderView.Fixed)
            header.setSectionResizeMode(2, QHeaderView.Fixed)
            header.setSectionResizeMode(3, QHeaderView.Fixed)
            header.setSectionResizeMode(4, QHeaderView.Fixed)
            if (xtcurve and not ytcurve) or (ytcurve and not xtcurve):
                header.setSectionResizeMode(5, QHeaderView.Fixed)
                header.setSectionResizeMode(6, QHeaderView.Stretch)
            elif xtcurve and ytcurve:
                header.setSectionResizeMode(5, QHeaderView.Fixed)
                header.setSectionResizeMode(6, QHeaderView.Fixed)
                header.setSectionResizeMode(7, QHeaderView.Stretch)
            else:
                header.setSectionResizeMode(5, QHeaderView.Stretch)
            self.datatable.resizeColumnsToContents()
        finally:
            if self.aw.qmc.samplingsemaphore.available() < 1:
                self.aw.qmc.samplingsemaphore.release(1)
Ejemplo n.º 10
0
    def createEventTable(self):
        ndata = len(self.aw.qmc.backgroundEvents)
        
        # self.eventtable.clear() # this crashes Ubuntu 16.04
#        if ndata != 0:
#            self.eventtable.clearContents() # this crashes Ubuntu 16.04 if device table is empty and also sometimes else
        self.eventtable.clearSelection() # this seems to work also for Ubuntu 16.04
        
        self.eventtable.setRowCount(ndata)
        self.eventtable.setColumnCount(6)
        self.eventtable.setHorizontalHeaderLabels([QApplication.translate("Table","Time",None),
                                                   QApplication.translate("Table", "ET", None),
                                                   QApplication.translate("Table", "BT", None),
                                                   QApplication.translate("Table","Description",None),
                                                   QApplication.translate("Table","Type",None),
                                                   QApplication.translate("Table","Value",None)])
        self.eventtable.setAlternatingRowColors(True)
        self.eventtable.setEditTriggers(QTableWidget.NoEditTriggers)
        self.eventtable.setSelectionBehavior(QTableWidget.SelectRows)
        self.eventtable.setSelectionMode(QTableWidget.ExtendedSelection)
        self.eventtable.setShowGrid(True)
        self.eventtable.verticalHeader().setSectionResizeMode(2)
        if self.aw.qmc.timeindex[0] != -1:
            start = self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
        else:
            start = 0
        for i in range(ndata):
            timez = QTableWidgetItem(stringfromseconds(self.aw.qmc.timeB[self.aw.qmc.backgroundEvents[i]]-start))
            timez.setTextAlignment(Qt.AlignRight + Qt.AlignVCenter)
    
            if self.aw.qmc.LCDdecimalplaces:
                fmtstr = "%.1f"
            else:
                fmtstr = "%.0f"
            
            etline = QTableWidgetItem(fmtstr%(self.aw.qmc.temp1B[self.aw.qmc.backgroundEvents[i]]) + self.aw.qmc.mode)
            etline.setTextAlignment(Qt.AlignRight + Qt.AlignVCenter)
            
            btline = QTableWidgetItem(fmtstr%(self.aw.qmc.temp2B[self.aw.qmc.backgroundEvents[i]]) + self.aw.qmc.mode)
            btline.setTextAlignment(Qt.AlignRight + Qt.AlignVCenter)
            
            description = QTableWidgetItem(self.aw.qmc.backgroundEStrings[i])
            etype = QTableWidgetItem(self.aw.qmc.Betypesf(self.aw.qmc.backgroundEtypes[i]))
            evalue = QTableWidgetItem(self.aw.qmc.eventsvalues(self.aw.qmc.backgroundEvalues[i]))
            evalue.setTextAlignment(Qt.AlignRight + Qt.AlignVCenter)
            #add widgets to the table
            self.eventtable.setItem(i,0,timez)
            self.eventtable.setItem(i,1,etline)
            self.eventtable.setItem(i,2,btline)
            self.eventtable.setItem(i,3,description)
            self.eventtable.setItem(i,4,etype)
            self.eventtable.setItem(i,5,evalue)
        # improve width of Time column
        self.eventtable.setColumnWidth(1,175)
        header = self.eventtable.horizontalHeader()
        header.setSectionResizeMode(0, QHeaderView.Fixed)
        header.setSectionResizeMode(1, QHeaderView.Fixed)
        header.setSectionResizeMode(2, QHeaderView.Fixed)
        header.setSectionResizeMode(3, QHeaderView.Stretch)
        header.setSectionResizeMode(4, QHeaderView.Fixed)
        header.setSectionResizeMode(5, QHeaderView.Fixed)
        self.eventtable.resizeColumnsToContents()
        self.eventtable.setColumnWidth(1,65)
        self.eventtable.setColumnWidth(2,65)
Ejemplo n.º 11
0
    def __init__(self, parent=None, aw=None):
        super(designerconfigDlg, self).__init__(parent, aw)
        self.setWindowTitle(
            QApplication.translate("Form Caption", "Designer Config", None))
        self.setModal(True)
        #landmarks
        charge = QLabel(QApplication.translate("Label", "CHARGE", None))
        charge.setAlignment(Qt.AlignRight)
        charge.setStyleSheet("background-color: #f07800")
        self.dryend = QCheckBox(
            QApplication.translate("CheckBox", "DRY END", None))
        self.dryend.setStyleSheet("background-color: orange")
        self.fcs = QCheckBox(
            QApplication.translate("CheckBox", "FC START", None))
        self.fcs.setStyleSheet("background-color: orange")
        self.fce = QCheckBox(QApplication.translate("CheckBox", "FC END",
                                                    None))
        self.fce.setStyleSheet("background-color: orange")
        self.scs = QCheckBox(
            QApplication.translate("CheckBox", "SC START", None))
        self.scs.setStyleSheet("background-color: orange")
        self.sce = QCheckBox(QApplication.translate("CheckBox", "SC END",
                                                    None))
        self.sce.setStyleSheet("background-color: orange")
        drop = QLabel(QApplication.translate("Label", "DROP", None))
        drop.setAlignment(Qt.AlignRight)
        drop.setStyleSheet("background-color: #f07800")
        self.loadconfigflags()
        self.dryend.clicked.connect(self.changeflags)
        self.fcs.clicked.connect(self.changeflags)
        self.fce.clicked.connect(self.changeflags)
        self.scs.clicked.connect(self.changeflags)
        self.sce.clicked.connect(self.changeflags)
        if self.aw.qmc.timeindex[0] != -1:
            start = self.aw.qmc.timex[self.aw.qmc.timeindex[0]]
        else:
            start = 0
        markersettinglabel = QLabel(
            QApplication.translate("Label", "Marker", None))
        markersettinglabel.setAlignment(Qt.AlignCenter)
        timesettinglabel = QLabel(QApplication.translate(
            "Label", "Time", None))
        timesettinglabel.setAlignment(Qt.AlignCenter)
        btsettinglabel = QLabel(QApplication.translate("Label", "BT", None))
        btsettinglabel.setAlignment(Qt.AlignCenter)
        etsettinglabel = QLabel(QApplication.translate("Label", "ET", None))
        etsettinglabel.setAlignment(Qt.AlignCenter)
        self.Edit0 = QLineEdit(stringfromseconds(0))
        self.Edit0.setEnabled(False)
        self.Edit0bt = QLineEdit("%.1f" %
                                 self.aw.qmc.temp2[self.aw.qmc.timeindex[0]])
        self.Edit0et = QLineEdit("%.1f" %
                                 self.aw.qmc.temp1[self.aw.qmc.timeindex[0]])
        self.Edit0.setAlignment(Qt.AlignRight)
        self.Edit0bt.setAlignment(Qt.AlignRight)
        self.Edit0et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[1]:
            self.Edit1 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[1]] -
                                  start))
            self.Edit1bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[1]])
            self.Edit1et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[1]])
        else:
            self.Edit1 = QLineEdit(stringfromseconds(0))
            self.Edit1bt = QLineEdit("0.0")
            self.Edit1et = QLineEdit("0.0")
        self.Edit1.setAlignment(Qt.AlignRight)
        self.Edit1bt.setAlignment(Qt.AlignRight)
        self.Edit1et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[2]:
            self.Edit2 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[2]] -
                                  start))
            self.Edit2bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[2]])
            self.Edit2et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[2]])
        else:
            self.Edit2 = QLineEdit(stringfromseconds(0))
            self.Edit2bt = QLineEdit("0.0")
            self.Edit2et = QLineEdit("0.0")
        self.Edit2.setAlignment(Qt.AlignRight)
        self.Edit2bt.setAlignment(Qt.AlignRight)
        self.Edit2et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[3]:
            self.Edit3 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[3]] -
                                  start))
            self.Edit3bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[3]])
            self.Edit3et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[3]])
        else:
            self.Edit3 = QLineEdit(stringfromseconds(0))
            self.Edit3bt = QLineEdit("0.0")
            self.Edit3et = QLineEdit("0.0")
        self.Edit3.setAlignment(Qt.AlignRight)
        self.Edit3bt.setAlignment(Qt.AlignRight)
        self.Edit3et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[4]:
            self.Edit4 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[4]] -
                                  start))
            self.Edit4bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[4]])
            self.Edit4et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[4]])
        else:
            self.Edit4 = QLineEdit(stringfromseconds(0))
            self.Edit4bt = QLineEdit("0.0")
            self.Edit4et = QLineEdit("0.0")
        self.Edit4.setAlignment(Qt.AlignRight)
        self.Edit4bt.setAlignment(Qt.AlignRight)
        self.Edit4et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[5]:
            self.Edit5 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[5]] -
                                  start))
            self.Edit5bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[5]])
            self.Edit5et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[5]])
        else:
            self.Edit5 = QLineEdit(stringfromseconds(0))
            self.Edit5bt = QLineEdit("0.0")
            self.Edit5et = QLineEdit("0.0")
        self.Edit5.setAlignment(Qt.AlignRight)
        self.Edit5bt.setAlignment(Qt.AlignRight)
        self.Edit5et.setAlignment(Qt.AlignRight)
        if self.aw.qmc.timeindex[6]:
            self.Edit6 = QLineEdit(
                stringfromseconds(self.aw.qmc.timex[self.aw.qmc.timeindex[6]] -
                                  start))
            self.Edit6bt = QLineEdit(
                "%.1f" % self.aw.qmc.temp2[self.aw.qmc.timeindex[6]])
            self.Edit6et = QLineEdit(
                "%.1f" % self.aw.qmc.temp1[self.aw.qmc.timeindex[6]])
        else:
            self.Edit6 = QLineEdit(stringfromseconds(0))
            self.Edit6bt = QLineEdit("0.0")
            self.Edit6et = QLineEdit("0.0")
        self.Edit6.setAlignment(Qt.AlignRight)
        self.Edit6bt.setAlignment(Qt.AlignRight)
        self.Edit6et.setAlignment(Qt.AlignRight)
        maxwidth = 70
        self.Edit0.setMaximumWidth(maxwidth)
        self.Edit1.setMaximumWidth(maxwidth)
        self.Edit2.setMaximumWidth(maxwidth)
        self.Edit3.setMaximumWidth(maxwidth)
        self.Edit4.setMaximumWidth(maxwidth)
        self.Edit5.setMaximumWidth(maxwidth)
        self.Edit6.setMaximumWidth(maxwidth)
        self.Edit0bt.setMaximumWidth(maxwidth)
        self.Edit1bt.setMaximumWidth(maxwidth)
        self.Edit2bt.setMaximumWidth(maxwidth)
        self.Edit3bt.setMaximumWidth(maxwidth)
        self.Edit4bt.setMaximumWidth(maxwidth)
        self.Edit5bt.setMaximumWidth(maxwidth)
        self.Edit6bt.setMaximumWidth(maxwidth)
        self.Edit0et.setMaximumWidth(maxwidth)
        self.Edit1et.setMaximumWidth(maxwidth)
        self.Edit2et.setMaximumWidth(maxwidth)
        self.Edit3et.setMaximumWidth(maxwidth)
        self.Edit4et.setMaximumWidth(maxwidth)
        self.Edit5et.setMaximumWidth(maxwidth)
        self.Edit6et.setMaximumWidth(maxwidth)
        self.Edit1copy = self.Edit1.text()
        self.Edit2copy = self.Edit2.text()
        self.Edit3copy = self.Edit3.text()
        self.Edit4copy = self.Edit4.text()
        self.Edit5copy = self.Edit5.text()
        self.Edit6copy = self.Edit6.text()
        self.Edit0btcopy = self.Edit0bt.text()
        self.Edit1btcopy = self.Edit1bt.text()
        self.Edit2btcopy = self.Edit2bt.text()
        self.Edit3btcopy = self.Edit3bt.text()
        self.Edit4btcopy = self.Edit4bt.text()
        self.Edit5btcopy = self.Edit5bt.text()
        self.Edit6btcopy = self.Edit6bt.text()
        self.Edit0etcopy = self.Edit0et.text()
        self.Edit1etcopy = self.Edit1et.text()
        self.Edit2etcopy = self.Edit2et.text()
        self.Edit3etcopy = self.Edit3et.text()
        self.Edit4etcopy = self.Edit4et.text()
        self.Edit5etcopy = self.Edit5et.text()
        self.Edit6etcopy = self.Edit6et.text()
        regextime = QRegularExpression(r"^-?[0-9]?[0-9]?[0-9]:[0-5][0-9]$")
        self.Edit0.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit1.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit2.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit3.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit4.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit5.setValidator(QRegularExpressionValidator(regextime, self))
        self.Edit6.setValidator(QRegularExpressionValidator(regextime, self))
        regextemp = QRegularExpression(r"^-?[0-9]?[0-9]?[0-9]?\.?[0-9]?$")
        self.Edit0bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit1bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit2bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit3bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit4bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit5bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit6bt.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit0et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit1et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit2et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit3et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit4et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit5et.setValidator(QRegularExpressionValidator(regextemp, self))
        self.Edit6et.setValidator(QRegularExpressionValidator(regextemp, self))
        curvinesslabel = QLabel(
            QApplication.translate("Label", "Curviness", None))
        etcurviness = QLabel(QApplication.translate("Label", "ET", None))
        btcurviness = QLabel(QApplication.translate("Label", "BT", None))
        etcurviness.setAlignment(Qt.AlignRight)
        btcurviness.setAlignment(Qt.AlignRight)
        self.ETsplineComboBox = QComboBox()
        self.ETsplineComboBox.addItems(["1", "2", "3", "4", "5"])
        self.ETsplineComboBox.setCurrentIndex(self.aw.qmc.ETsplinedegree - 1)
        self.ETsplineComboBox.currentIndexChanged.connect(self.redrawcurviness)
        self.BTsplineComboBox = QComboBox()
        self.BTsplineComboBox.addItems(["1", "2", "3", "4", "5"])
        self.BTsplineComboBox.setCurrentIndex(self.aw.qmc.BTsplinedegree - 1)
        self.BTsplineComboBox.currentIndexChanged.connect(self.redrawcurviness)

        # connect the ArtisanDialog standard OK/Cancel buttons
        self.dialogbuttons.removeButton(
            self.dialogbuttons.button(QDialogButtonBox.Ok))
        self.dialogbuttons.removeButton(
            self.dialogbuttons.button(QDialogButtonBox.Cancel))

        self.dialogbuttons.addButton(QDialogButtonBox.Close)
        self.dialogbuttons.addButton(QDialogButtonBox.Apply)
        self.dialogbuttons.addButton(QDialogButtonBox.RestoreDefaults)
        if self.aw.locale not in self.aw.qtbase_locales:
            self.dialogbuttons.button(
                QDialogButtonBox.RestoreDefaults).setText(
                    QApplication.translate("Button", "Reset", None))

        self.dialogbuttons.rejected.connect(self.accept)
        self.dialogbuttons.button(
            QDialogButtonBox.RestoreDefaults).clicked.connect(self.reset)
        self.dialogbuttons.button(QDialogButtonBox.Apply).clicked.connect(
            self.settimes)

        buttonLayout = QHBoxLayout()
        buttonLayout.addStretch()
        buttonLayout.addWidget(self.dialogbuttons)
        marksLayout = QGridLayout()
        marksLayout.addWidget(markersettinglabel, 0, 0)
        marksLayout.addWidget(timesettinglabel, 0, 1)
        marksLayout.addWidget(btsettinglabel, 0, 2)
        marksLayout.addWidget(etsettinglabel, 0, 3)
        marksLayout.addWidget(charge, 1, 0)
        marksLayout.addWidget(self.Edit0, 1, 1)
        marksLayout.addWidget(self.Edit0bt, 1, 2)
        marksLayout.addWidget(self.Edit0et, 1, 3)
        marksLayout.addWidget(self.dryend, 2, 0)
        marksLayout.addWidget(self.Edit1, 2, 1)
        marksLayout.addWidget(self.Edit1bt, 2, 2)
        marksLayout.addWidget(self.Edit1et, 2, 3)
        marksLayout.addWidget(self.fcs, 3, 0)
        marksLayout.addWidget(self.Edit2, 3, 1)
        marksLayout.addWidget(self.Edit2bt, 3, 2)
        marksLayout.addWidget(self.Edit2et, 3, 3)
        marksLayout.addWidget(self.fce, 4, 0)
        marksLayout.addWidget(self.Edit3, 4, 1)
        marksLayout.addWidget(self.Edit3bt, 4, 2)
        marksLayout.addWidget(self.Edit3et, 4, 3)
        marksLayout.addWidget(self.scs, 5, 0)
        marksLayout.addWidget(self.Edit4, 5, 1)
        marksLayout.addWidget(self.Edit4bt, 5, 2)
        marksLayout.addWidget(self.Edit4et, 5, 3)
        marksLayout.addWidget(self.sce, 6, 0)
        marksLayout.addWidget(self.Edit5, 6, 1)
        marksLayout.addWidget(self.Edit5bt, 6, 2)
        marksLayout.addWidget(self.Edit5et, 6, 3)
        marksLayout.addWidget(drop, 7, 0)
        marksLayout.addWidget(self.Edit6, 7, 1)
        marksLayout.addWidget(self.Edit6bt, 7, 2)
        marksLayout.addWidget(self.Edit6et, 7, 3)
        settingsLayout = QVBoxLayout()
        settingsLayout.addLayout(marksLayout)
        curvinessLayout = QHBoxLayout()
        curvinessLayout.addWidget(curvinesslabel)
        curvinessLayout.addWidget(etcurviness)
        curvinessLayout.addWidget(self.ETsplineComboBox)
        curvinessLayout.addWidget(btcurviness)
        curvinessLayout.addWidget(self.BTsplineComboBox)
        modLayout = QVBoxLayout()
        modLayout.addLayout(curvinessLayout)
        marksGroupLayout = QGroupBox(
            QApplication.translate("GroupBox", "Initial Settings", None))
        marksGroupLayout.setLayout(settingsLayout)
        mainLayout = QVBoxLayout()
        mainLayout.addWidget(marksGroupLayout)
        mainLayout.addLayout(modLayout)
        mainLayout.addLayout(buttonLayout)
        self.setLayout(mainLayout)
        self.dialogbuttons.button(QDialogButtonBox.Close).setFocus()

        settings = QSettings()
        if settings.contains("DesignerPosition"):
            self.move(settings.value("DesignerPosition"))

        mainLayout.setSizeConstraint(QLayout.SetFixedSize)
Ejemplo n.º 12
0
    def setalarmtablerow(self,i):
        #flag
        flagComboBox = QCheckBox()
        flagComboBox.setFocusPolicy(Qt.NoFocus)
        flagComboBox.setText(QApplication.translate("ComboBox","ON",None))
        if self.aw.qmc.alarmflag[i]:
            flagComboBox.setCheckState(Qt.Checked)
        else:
            flagComboBox.setCheckState(Qt.Unchecked)
        #guarded by alarm
        if self.aw.qmc.alarmguard[i] > -1:
            guardstr = str(self.aw.qmc.alarmguard[i] + 1)
        else:
            guardstr = "0"
        guardedit = QLineEdit(guardstr)
        guardedit.setValidator(QIntValidator(0, 999,guardedit))
        guardedit.setAlignment(Qt.AlignRight)
        #neg guarded by alarm
        if self.aw.qmc.alarmnegguard[i] > -1:
            negguardstr = str(self.aw.qmc.alarmnegguard[i] + 1)
        else:
            negguardstr = "0"
        negguardedit = QLineEdit(negguardstr)
        negguardedit.setValidator(QIntValidator(0, 999,negguardedit))
        negguardedit.setAlignment(Qt.AlignRight)
        #Effective time from
        timeComboBox = MyQComboBox()
        timeComboBox.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLength)
        timeComboBox.addItems([QApplication.translate("ComboBox","ON",None), # qmc.alarmtime 9
                               QApplication.translate("ComboBox","START",None), # qmc.alarmtime -1
                               QApplication.translate("ComboBox","CHARGE",None), # qmc.alarmtime 0
                               QApplication.translate("ComboBox","TP",None), # qmc.alarmtime 8
                               QApplication.translate("ComboBox","DRY END",None), # qmc.alarmtime 1
                               QApplication.translate("ComboBox","FC START",None), # qmc.alarmtime 2
                               QApplication.translate("ComboBox","FC END",None), # qmc.alarmtime 3
                               QApplication.translate("ComboBox","SC START",None), # qmc.alarmtime 4
                               QApplication.translate("ComboBox","SC END",None), # qmc.alarmtime 5
                               QApplication.translate("ComboBox","DROP",None), # qmc.alarmtime 6
                               QApplication.translate("ComboBox","COOL",None), # qmc.alarmtime 7
                               QApplication.translate("ComboBox","If Alarm",None)]) # qmc.alarmtime 10
        timeComboBox.setCurrentIndex(self.aw.qmc.alarmtime2menuidx[self.aw.qmc.alarmtime[i]])
        #time after selected event
        timeoffsetedit = QLineEdit(stringfromseconds(max(0,self.aw.qmc.alarmoffset[i])))
        timeoffsetedit.setAlignment(Qt.AlignRight)
        regextime = QRegExp(r"^[0-5][0-9]:[0-5][0-9]$")
        timeoffsetedit.setValidator(QRegExpValidator(regextime,self))
        #type/source
        typeComboBox = MyQComboBox()
        typeComboBox.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLength)
        aitems = self.buildAlarmSourceList()
        typeComboBox.addItems(aitems)
        if self.aw.qmc.alarmsource[i] + 3 < len(aitems):
            typeComboBox.setCurrentIndex(self.aw.qmc.alarmsource[i] + 3)
        else:
            typeComboBox.setCurrentIndex(3)
        #condition
        condComboBox = MyQComboBox()
        condComboBox.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLength)
        condComboBox.addItems([QApplication.translate("ComboBox","below",None),
                               QApplication.translate("ComboBox","above",None)])
        condComboBox.setCurrentIndex(self.aw.qmc.alarmcond[i])
        #temperature
        tempedit = QLineEdit(str(self.aw.float2float(self.aw.qmc.alarmtemperature[i])))
        tempedit.setAlignment(Qt.AlignRight)
        tempedit.setMaximumWidth(130)
#        tempedit.setValidator(QIntValidator(0, 999,tempedit))
        tempedit.setValidator(self.aw.createCLocaleDoubleValidator(-999.9, 999.9,1,tempedit))
        #action
        actionComboBox = MyQComboBox()
        actionComboBox.setSizeAdjustPolicy(QComboBox.AdjustToMinimumContentsLength)
        actionComboBox.addItems(["",
                                 QApplication.translate("ComboBox","Pop Up",None),
                                 QApplication.translate("ComboBox","Call Program",None),
                                 QApplication.translate("ComboBox","Event Button",None),
                                 QApplication.translate("ComboBox","Slider",None) + " " + self.aw.qmc.etypesf(0),
                                 QApplication.translate("ComboBox","Slider",None) + " " + self.aw.qmc.etypesf(1),
                                 QApplication.translate("ComboBox","Slider",None) + " " + self.aw.qmc.etypesf(2),
                                 QApplication.translate("ComboBox","Slider",None) + " " + self.aw.qmc.etypesf(3),
                                 QApplication.translate("ComboBox","START",None),
                                 QApplication.translate("ComboBox","DRY",None),
                                 QApplication.translate("ComboBox","FCs",None),
                                 QApplication.translate("ComboBox","FCe",None),
                                 QApplication.translate("ComboBox","SCs",None),
                                 QApplication.translate("ComboBox","SCe",None),
                                 QApplication.translate("ComboBox","DROP",None),
                                 QApplication.translate("ComboBox","COOL END",None),
                                 QApplication.translate("ComboBox","OFF",None),
                                 QApplication.translate("ComboBox","CHARGE",None),
                                 QApplication.translate("ComboBox","RampSoak ON",None),
                                 QApplication.translate("ComboBox","RampSoak OFF",None),
                                 QApplication.translate("ComboBox","PID ON",None),
                                 QApplication.translate("ComboBox","PID OFF",None),
                                 QApplication.translate("ComboBox","SV",None),
                                 QApplication.translate("ComboBox","Playback ON",None),
                                 QApplication.translate("ComboBox","Playback OFF",None),
                                 QApplication.translate("ComboBox","Set Canvas Color",None),
                                 QApplication.translate("ComboBox","Reset Canvas Color",None)])
        actionComboBox.setCurrentIndex(self.aw.qmc.alarmaction[i] + 1)
        #beep
        beepWidget = QWidget()
        beepComboBox = QCheckBox()
        beepComboBox.setFocusPolicy(Qt.NoFocus)
        beepLayout = QHBoxLayout()
        beepLayout.addStretch()
        beepLayout.addWidget(beepComboBox)
        beepLayout.addSpacing(6);        
        beepLayout.addStretch()
        beepLayout.setContentsMargins(0,0,0,0)
        beepLayout.setSpacing(0)
        beepWidget.setLayout(beepLayout)
        if len(self.aw.qmc.alarmbeep) > i and self.aw.qmc.alarmbeep[i]:
            beepComboBox.setCheckState(Qt.Checked)
        else:
            beepComboBox.setCheckState(Qt.Unchecked)
        #text description
        descriptionedit = QLineEdit(self.aw.qmc.alarmstrings[i])
        descriptionedit.setCursorPosition(0)
        self.alarmtable.setItem(i, 0, MyTableWidgetItemInt(str(i+1),i))
        self.alarmtable.setCellWidget(i,1,flagComboBox)
        self.alarmtable.setItem(i, 1, MyTableWidgetItemQCheckBox(flagComboBox))
        self.alarmtable.setCellWidget(i,2,guardedit)
        self.alarmtable.setItem(i, 2, MyTableWidgetItemQLineEdit(guardedit))
        self.alarmtable.setCellWidget(i,3,negguardedit)
        self.alarmtable.setItem(i, 3, MyTableWidgetItemQLineEdit(negguardedit))
        self.alarmtable.setCellWidget(i,4,timeComboBox)
        self.alarmtable.setItem(i, 4, MyTableWidgetItemQComboBox(timeComboBox))
        self.alarmtable.setCellWidget(i,5,timeoffsetedit)
        self.alarmtable.setItem(i, 5, MyTableWidgetItemQLineEdit(timeoffsetedit))
        self.alarmtable.setCellWidget(i,6,typeComboBox)
        self.alarmtable.setItem(i, 6, MyTableWidgetItemQComboBox(typeComboBox))
        self.alarmtable.setCellWidget(i,7,condComboBox)
        self.alarmtable.setItem(i, 7, MyTableWidgetItemQComboBox(condComboBox))
        self.alarmtable.setCellWidget(i,8,tempedit)
        self.alarmtable.setItem(i, 8, MyTableWidgetItemQLineEdit(tempedit))
        self.alarmtable.setCellWidget(i,9,actionComboBox)
        self.alarmtable.setItem(i, 9, MyTableWidgetItemQComboBox(actionComboBox))
        self.alarmtable.setCellWidget(i,10,beepWidget)
        self.alarmtable.setItem(i, 10, MyTableWidgetItemQCheckBox(beepWidget.layout().itemAt(1).widget()))
        self.alarmtable.setCellWidget(i,11,descriptionedit)
        self.alarmtable.setItem(i, 11, MyTableWidgetItemQLineEdit(descriptionedit))