def close_signal_frame(self, signal_frame: SignalFrameController): self.project_manager.write_signal_information_to_project_file(signal_frame.signal) try: proto = self.signal_protocol_dict[signal_frame] except KeyError: proto = None if proto is not None: self.compare_frame_controller.remove_protocol(proto) proto.destroy() del self.signal_protocol_dict[signal_frame] if self.signal_tab_controller.ui.scrlAreaSignals.minimumHeight() > signal_frame.height(): self.signal_tab_controller.ui.scrlAreaSignals.setMinimumHeight( self.signal_tab_controller.ui.scrlAreaSignals.minimumHeight() - signal_frame.height()) if signal_frame.signal is not None: # Non-Empty Frame (when a signal and not a protocol is opended) self.file_proxy_model.open_files.discard(signal_frame.signal.filename) signal_frame.scene_creator.deleteLater() signal_frame.signal.destroy() signal_frame.signal.deleteLater() signal_frame.proto_analyzer.destroy() signal_frame.close() QApplication.processEvents() signal_frame.destroy() QApplication.processEvents() self.set_frame_numbers() self.refresh_main_menu()
def close_signal_frame(self, signal_frame: SignalFrameController): try: self.project_manager.write_signal_information_to_project_file( signal_frame.signal, signal_frame.proto_analyzer.messages) try: proto = self.signal_protocol_dict[signal_frame] except KeyError: proto = None if proto is not None: self.compare_frame_controller.remove_protocol(proto) # Needs to be removed in generator also, otherwise program crashes, # if item from tree in generator is selected and corresponding signal is closed self.generator_tab_controller.tree_model.remove_protocol(proto) proto.destroy() del self.signal_protocol_dict[signal_frame] if self.signal_tab_controller.ui.scrlAreaSignals.minimumHeight( ) > signal_frame.height(): self.signal_tab_controller.ui.scrlAreaSignals.setMinimumHeight( self.signal_tab_controller.ui.scrlAreaSignals. minimumHeight() - signal_frame.height()) if signal_frame.signal is not None: # Non-Empty Frame (when a signal and not a protocol is opended) self.file_proxy_model.open_files.discard( signal_frame.signal.filename) signal_frame.scene_manager.deleteLater() signal_frame.signal.destroy() signal_frame.signal.deleteLater() signal_frame.proto_analyzer.destroy() signal_frame.proto_analyzer = None signal_frame.close() QApplication.processEvents() signal_frame.destroy() QApplication.processEvents() self.compare_frame_controller.ui.treeViewProtocols.expandAll() self.set_frame_numbers() self.refresh_main_menu() except Exception as e: Errors.generic_error(self.tr("Failed to close"), str(e), traceback.format_exc()) self.ui.progressBar.hide() self.unsetCursor()