def __init__(self, database, settings, plot_widget, axes=None, enable_picker=True, selection_mode='multi'): super(LinesDialog, self).__init__() self.axes = axes if axes else plot_widget.axes self.database = database self.plot_widget = plot_widget self.settings = settings self.ui = Ui_LinesDialog() self.ui.setupUi(self) self.restoreGeometry( self.settings.value('pick_lines_geometry', QByteArray())) self.model = QStandardItemModel() self.elements_model = QStandardItemModel() self.ui.lines.setModel(self.model) self.ui.elements.setModel(self.elements_model) c = self.database.cursor() self.elements_model.appendRow( LinesDialog.__element_item([0, '', 'All'])) elements = c.execute( "SELECT z, code, name FROM elements ORDER BY z ASC") for element in elements: self.elements_model.appendRow(LinesDialog.__element_item(element)) self.ui.elements.currentTextChanged.connect(lambda t: self.populate()) self.ui.lambda_from.editingFinished.connect(self.populate) self.ui.name.editingFinished.connect(self.populate) self.ui.sp_types.toggled.connect(self.populate) self.ui.lambda_to.editingFinished.connect(self.populate) self.accepted.connect(self.collect_selected_lines) self.populate() self.ui.pick_wavelengths.setEnabled(enable_picker) self.ui.pick_wavelengths.clicked.connect(self.pick_wavelengths_clicked) self.ui.lines.setSelectionMode({ 'multi': QTableView.MultiSelection, 'single': QTableView.SingleSelection }[selection_mode])