MCPcopy Create free account
hub / github.com/MCSLTeam/MCSL2 / closeEvent

Method closeEvent

MCSL2Lib/ServerControllers/windowCreator.py:795–857  ·  view source on GitHub ↗
(self, a0)

Source from the content-addressed store, hash-verified

793 self.isCalledByConfigEditor = False
794
795 def closeEvent(self, a0) -> None:
796 if self.isCalledByConfigEditor:
797 try:
798 self.monitorWidget.setParent(None)
799 except Exception:
800 pass
801 self.manageBtn.setEnabled(True)
802 for btn in self.manageBackupBtnList:
803 btn.setEnabled(True)
804 self.manageBtn.setText(self.tr("启动"))
805 del self.serverConfig
806 del self.serverLauncher
807 return super().closeEvent(a0)
808 is_running = False
809 try:
810 if self.serverBridge is not None:
811 is_running = bool(self.serverBridge.isServerRunning())
812 except Exception:
813 is_running = False
814
815 if is_running:
816 box = MessageBox(
817 self.tr("是否关闭此窗口?"),
818 self.tr("服务器正在运行,请在退出前先关闭服务器。"),
819 parent=self,
820 )
821 box.yesButton.setText(self.tr("取消"))
822 box.cancelButton.setText(self.tr("关闭并退出"))
823 box.cancelButton.setStyleSheet(
824 GlobalMCSL2Variables.darkWarnBtnStyleSheet
825 if isDarkTheme()
826 else GlobalMCSL2Variables.lightWarnBtnStyleSheet
827 )
828 if box.exec() == 1:
829 a0.ignore()
830 return
831
832 if self.serverBridge is not None:
833 self.serverBridge.serverProcess.process.finished.connect(self.close)
834 self.stopServer()
835 self.exitingMsgBox.show()
836 self.quitTimer.start()
837 try:
838 self.monitorWidget.setParent(None)
839 except Exception:
840 pass
841
842 a0.ignore()
843 return
844 else:
845 try:
846 self.monitorWidget.setParent(None)
847 except Exception:
848 pass
849 self.manageBtn.setEnabled(True)
850 for btn in self.manageBackupBtnList:
851 btn.setEnabled(True)
852 self.manageBtn.setText(self.tr("启动"))

Callers

nothing calls this directly

Calls 3

stopServerMethod · 0.95
isServerRunningMethod · 0.80
startMethod · 0.45

Tested by

no test coverage detected