Code Duplication    Length = 54-61 lines in 3 locations

gui/pulsed/pulsed_maingui.py 2 locations

@@ 3396-3456 (lines=61) @@
3393
        self._cfg_param_seq = cfg_param_seq
3394
3395
3396
    def _set_sequence_editor_columns(self):
3397
        """ Depending on the sequence parameters a table witll be created. """
3398
3399
        seq_param = self._seq_param
3400
3401
        # Erase the delegate from the column, pass a None reference:
3402
        for column in range(self._mw.seq_editor_TableWidget.columnCount()):
3403
            self._mw.seq_editor_TableWidget.setItemDelegateForColumn(column, None)
3404
3405
        # clear the number of columns:
3406
        self._mw.seq_editor_TableWidget.setColumnCount(0)
3407
3408
        # set the count to the desired length:
3409
        self._mw.seq_editor_TableWidget.setColumnCount(len(seq_param)+1)
3410
3411
        column = 0
3412
        # set the name for the column:
3413
        self._mw.seq_editor_TableWidget.setHorizontalHeaderItem(column, QtWidgets.QTableWidgetItem())
3414
        self._mw.seq_editor_TableWidget.horizontalHeaderItem(column).setText('ensemble')
3415
        self._mw.seq_editor_TableWidget.setColumnWidth(column, 100)
3416
3417
        # give the delegated object the reference to the method:
3418
        item_dict = {}
3419
        item_dict['get_list_method'] = self.get_current_ensemble_list
3420
3421
        comboDelegate = ComboBoxDelegate(self._mw.seq_editor_TableWidget, item_dict)
3422
        self._mw.seq_editor_TableWidget.setItemDelegateForColumn(column, comboDelegate)
3423
3424
        # the first element was the ensemble combobox.
3425
        column = 1
3426
        for seq_param_name in seq_param:
3427
3428
            param = seq_param[seq_param_name]
3429
3430
            # self._mw.seq_editor_TableWidget.insertColumn(column)
3431
            self._mw.seq_editor_TableWidget.setHorizontalHeaderItem(column, QtWidgets.QTableWidgetItem())
3432
            header_name = seq_param_name.replace('_',' ')
3433
            self._mw.seq_editor_TableWidget.horizontalHeaderItem(column).setText(header_name)
3434
            self._mw.seq_editor_TableWidget.setColumnWidth(column, 80)
3435
3436
            # choose the proper delegate function:
3437
            if param['type'] == bool:
3438
                item_dict = param
3439
                delegate = CheckBoxDelegate(self._mw.seq_editor_TableWidget, item_dict)
3440
            elif param['type'] == int:
3441
                item_dict = param
3442
                delegate = SpinBoxDelegate(self._mw.seq_editor_TableWidget, item_dict)
3443
            elif param['type'] == float:
3444
                item_dict = param
3445
                delegate = DoubleSpinBoxDelegate(self._mw.seq_editor_TableWidget, item_dict)
3446
3447
            self._mw.seq_editor_TableWidget.setItemDelegateForColumn(column, delegate)
3448
3449
            column += 1
3450
3451
        # at the end, initialize all the cells with the proper value:
3452
        self.initialize_cells_sequence_editor(start_row=0,
3453
                                              stop_row=self._mw.seq_editor_TableWidget.rowCount())
3454
3455
        self.set_cfg_param_seq()
3456
        self._update_current_pulse_sequence()
3457
3458
    def initialize_cells_sequence_editor(self, start_row, stop_row=None,
3459
                                         start_col=None, stop_col=None):
@@ 2093-2146 (lines=54) @@
2090
                raise NotImplementedError
2091
        self._cfg_param_pb = cfg_param_pb
2092
2093
    def _set_organizer_columns(self):
2094
2095
        # Erase the delegate from the column, i.e. pass a None reference:
2096
        for column in range(self._mw.block_organizer_TableWidget.columnCount()):
2097
            self._mw.block_organizer_TableWidget.setItemDelegateForColumn(column, None)
2098
2099
        # clear the number of columns:
2100
        self._mw.block_organizer_TableWidget.setColumnCount(0)
2101
2102
        # total number columns in block organizer:
2103
        num_column = 1
2104
        self._mw.block_organizer_TableWidget.setColumnCount(num_column)
2105
2106
        column = 0
2107
        self._mw.block_organizer_TableWidget.setHorizontalHeaderItem(column, QtWidgets.QTableWidgetItem())
2108
        self._mw.block_organizer_TableWidget.horizontalHeaderItem(column).setText('Pulse Block')
2109
        self._mw.block_organizer_TableWidget.setColumnWidth(column, 100)
2110
2111
        item_dict = {}
2112
        item_dict['get_list_method'] = self.get_current_pulse_block_list
2113
2114
        comboDelegate = ComboBoxDelegate(self._mw.block_organizer_TableWidget, item_dict)
2115
        self._mw.block_organizer_TableWidget.setItemDelegateForColumn(column, comboDelegate)
2116
2117
        column = 1
2118
        insert_at_col_pos = column
2119
        for column, parameter in enumerate(self._add_pb_param):
2120
2121
            # add the new properties to the whole column through delegate:
2122
            item_dict = self._add_pb_param[parameter]
2123
2124
            unit_text = item_dict['unit_prefix'] + item_dict['unit']
2125
2126
            self._mw.block_organizer_TableWidget.insertColumn(insert_at_col_pos+column)
2127
            self._mw.block_organizer_TableWidget.setHorizontalHeaderItem(insert_at_col_pos+column, QtWidgets.QTableWidgetItem())
2128
            self._mw.block_organizer_TableWidget.horizontalHeaderItem(insert_at_col_pos+column).setText('{0} ({1})'.format(parameter,unit_text))
2129
            self._mw.block_organizer_TableWidget.setColumnWidth(insert_at_col_pos+column, 80)
2130
2131
            # Use only DoubleSpinBox  as delegate:
2132
            if item_dict['unit'] == 'bool':
2133
                delegate = CheckBoxDelegate(self._mw.block_organizer_TableWidget, item_dict)
2134
            elif parameter == 'repetition':
2135
                delegate = SpinBoxDelegate(self._mw.block_organizer_TableWidget, item_dict)
2136
            else:
2137
                delegate = DoubleSpinBoxDelegate(self._mw.block_organizer_TableWidget, item_dict)
2138
            self._mw.block_organizer_TableWidget.setItemDelegateForColumn(insert_at_col_pos+column, delegate)
2139
2140
            column += 1
2141
2142
        self.initialize_cells_block_organizer(start_row=0,
2143
                                              stop_row=self._mw.block_organizer_TableWidget.rowCount())
2144
2145
        self.set_cfg_param_pb()
2146
        self._update_current_pulse_block_ensemble()
2147
2148
2149
    def initialize_cells_block_organizer(self, start_row, stop_row=None,

gui/pulsed/pulse_editor.py 1 location

@@ 1616-1669 (lines=54) @@
1613
                raise NotImplementedError
1614
        self._cfg_param_pb = cfg_param_pb
1615
1616
    def _set_organizer_columns(self):
1617
1618
        # Erase the delegate from the column, i.e. pass a None reference:
1619
        for column in range(self._pe.block_organizer_TableWidget.columnCount()):
1620
            self._pe.block_organizer_TableWidget.setItemDelegateForColumn(column, None)
1621
1622
        # clear the number of columns:
1623
        self._pe.block_organizer_TableWidget.setColumnCount(0)
1624
1625
        # total number columns in block organizer:
1626
        num_column = 1
1627
        self._pe.block_organizer_TableWidget.setColumnCount(num_column)
1628
1629
        column = 0
1630
        self._pe.block_organizer_TableWidget.setHorizontalHeaderItem(column, QtWidgets.QTableWidgetItem())
1631
        self._pe.block_organizer_TableWidget.horizontalHeaderItem(column).setText('Pulse Block')
1632
        self._pe.block_organizer_TableWidget.setColumnWidth(column, 100)
1633
1634
        item_dict = {}
1635
        item_dict['get_list_method'] = self.get_current_pulse_block_list
1636
1637
        comboDelegate = ComboBoxDelegate(self._pe.block_organizer_TableWidget, item_dict)
1638
        self._pe.block_organizer_TableWidget.setItemDelegateForColumn(column, comboDelegate)
1639
1640
        column = 1
1641
        insert_at_col_pos = column
1642
        for column, parameter in enumerate(self._add_pb_param):
1643
1644
            # add the new properties to the whole column through delegate:
1645
            item_dict = self._add_pb_param[parameter]
1646
1647
            unit_text = item_dict['unit_prefix'] + item_dict['unit']
1648
1649
            self._pe.block_organizer_TableWidget.insertColumn(insert_at_col_pos+column)
1650
            self._pe.block_organizer_TableWidget.setHorizontalHeaderItem(insert_at_col_pos+column, QtWidgets.QTableWidgetItem())
1651
            self._pe.block_organizer_TableWidget.horizontalHeaderItem(insert_at_col_pos+column).setText('{0} ({1})'.format(parameter,unit_text))
1652
            self._pe.block_organizer_TableWidget.setColumnWidth(insert_at_col_pos+column, 80)
1653
1654
            # Use only DoubleSpinBox  as delegate:
1655
            if item_dict['unit'] == 'bool':
1656
                delegate = CheckBoxDelegate(self._pe.block_organizer_TableWidget, item_dict)
1657
            elif parameter == 'repetition':
1658
                delegate = SpinBoxDelegate(self._pe.block_organizer_TableWidget, item_dict)
1659
            else:
1660
                delegate = DoubleSpinBoxDelegate(self._pe.block_organizer_TableWidget, item_dict)
1661
            self._pe.block_organizer_TableWidget.setItemDelegateForColumn(insert_at_col_pos+column, delegate)
1662
1663
            column += 1
1664
1665
        self.initialize_cells_block_organizer(start_row=0,
1666
                                              stop_row=self._pe.block_organizer_TableWidget.rowCount())
1667
1668
        self.set_cfg_param_pb()
1669
        self._update_current_pulse_block_ensemble()
1670
1671
1672
    def initialize_cells_block_organizer(self, start_row, stop_row=None,