(self)
| 222 | self.webWidget.show() |
| 223 | |
| 224 | def onReload(self): |
| 225 | logging.debug("Reloading WebServer") |
| 226 | slicer._webServerStarted = self.logic.serverStarted |
| 227 | self.stopServer() |
| 228 | |
| 229 | packageName = "WebServerLib" |
| 230 | submoduleNames = ["SlicerRequestHandler", "StaticPagesRequestHandler"] |
| 231 | if hasattr(slicer.modules, "dicom"): |
| 232 | submoduleNames.append("DICOMRequestHandler") |
| 233 | |
| 234 | import importlib.util |
| 235 | |
| 236 | # Locate and reload package |
| 237 | spec = importlib.util.find_spec(packageName) |
| 238 | if spec is None: |
| 239 | raise ImportError(f"Cannot find package {packageName}") |
| 240 | package = importlib.util.module_from_spec(spec) |
| 241 | sys.modules[packageName] = package |
| 242 | spec.loader.exec_module(package) |
| 243 | |
| 244 | # Reload each submodule from the package |
| 245 | for submoduleName in submoduleNames: |
| 246 | full_name = f"{packageName}.{submoduleName}" |
| 247 | sub_spec = importlib.util.find_spec(full_name) |
| 248 | if sub_spec is None: |
| 249 | raise ImportError(f"Cannot find submodule {full_name}") |
| 250 | submodule = importlib.util.module_from_spec(sub_spec) |
| 251 | sys.modules[full_name] = submodule |
| 252 | sub_spec.loader.exec_module(submodule) |
| 253 | |
| 254 | ScriptedLoadableModuleWidget.onReload(self) |
| 255 | |
| 256 | # Restart web server if it was running |
| 257 | if slicer._webServerStarted: |
| 258 | slicer.modules.WebServerWidget.startServer() |
| 259 | del slicer._webServerStarted |
| 260 | |
| 261 | def logMessage(self, *args): |
| 262 | if self.consoleMessages: |
nothing calls this directly
no test coverage detected