Пример #1
0
    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])