class IdentViewer(MainWindow): def __init__(self, reader): super(IdentViewer, self).__init__() # fix mac if sys.platform == "darwin": self.menubar.setNativeMenuBar(False) self.reader = reader self.setup() self.connect_signals() def setup(self): self.preferences = default_preferences() self.tree_model = TreeModel(self.reader) self.tree_model.set_preferences(self.preferences) self.tree_view.setModel(self.tree_model) self.setup_tree_view_size() def setup_tree_view_size(self): self.tree_view.setMinimumWidth(400) self.tree_view.setColumnWidth(0, 200) self.tree_view.resizeColumnToContents(1) self.tree_view.resizeColumnToContents(2) self.tree_view.resizeColumnToContents(3) def connect_signals(self): self.tree_view.clicked.connect(self.tree_model.select) self.tree_model.spectrumSelected.connect(self.spectrum_plotter.plot_spectrum) self.tree_model.featureSelected.connect(self.peakmap_plotter.plot_feature) self.tree_model.featureSelected.connect(self.chromatogram_plotter.plot_chromatograms_from_feature) self.tree_model.massTraceSelected.connect(self.peakmap_plotter.plot_mass_trace) self.tree_model.massTraceSelected.connect(self.chromatogram_plotter.plot_chromatogram_from_masstrace) self.tree_model.ms1HitChanged.connect(self.peakmap_plotter.clear) self.tree_model.ms1HitChanged.connect(self.chromatogram_plotter.clear) self.tree_model.ms2HitChanged.connect(self.spectrum_plotter.clear) self.tree_model.newHitRt.connect(self.chromatogram_plotter.set_rt_marker) self.chromatogram_plotter.rtCursorMoved.connect(self.peakmap_plotter.move_marker_to_rt) self.peakmap_plotter.cursorMoved.connect(self.chromatogram_plotter.move_marker) def row_chosen(self, i): self.tree_view.selectRow(i) def edit_preferences(self): dlg = PreferencesDialog(self.preferences, parent=self) closed_as = dlg.exec_() if closed_as == QtGui.QDialog.Accepted: self.preferences = dlg.get_preferences() self.tree_model.set_preferences(self.preferences) def open_file(self): pass