Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()