333 self.trUtf8("Module failed to load. Error: {0}").format(str(err)) |
333 self.trUtf8("Module failed to load. Error: {0}").format(str(err)) |
334 self.__failedModules[name] = module |
334 self.__failedModules[name] = module |
335 print("Error loading plugin module:", name) |
335 print("Error loading plugin module:", name) |
336 print(str(err)) |
336 print(str(err)) |
337 |
337 |
338 def unloadPlugin(self, name, directory): |
338 def unloadPlugin(self, name): |
339 """ |
339 """ |
340 Public method to unload a plugin module. |
340 Public method to unload a plugin module. |
341 |
341 |
342 @param name name of the module to be unloaded (string) |
342 @param name name of the module to be unloaded (string) |
343 @param directory name of the plugin directory (string) |
|
344 @return flag indicating success (boolean) |
343 @return flag indicating success (boolean) |
345 """ |
344 """ |
346 fname = "{0}.py".format(os.path.join(directory, name)) |
345 if name in self.__onDemandActiveModules: |
347 if name in self.__onDemandActiveModules and \ |
|
348 self.__onDemandActiveModules[name].eric5PluginModuleFilename == fname: |
|
349 # cannot unload an ondemand plugin, that is in use |
346 # cannot unload an ondemand plugin, that is in use |
350 return False |
347 return False |
351 |
348 |
352 if name in self.__activeModules and \ |
349 if name in self.__activeModules: |
353 self.__activeModules[name].eric5PluginModuleFilename == fname: |
|
354 self.deactivatePlugin(name) |
350 self.deactivatePlugin(name) |
355 |
351 |
356 if name in self.__inactiveModules and \ |
352 if name in self.__inactiveModules: |
357 self.__inactiveModules[name].eric5PluginModuleFilename == fname: |
|
358 try: |
353 try: |
359 del self.__inactivePlugins[name] |
354 del self.__inactivePlugins[name] |
360 except KeyError: |
355 except KeyError: |
361 pass |
356 pass |
362 del self.__inactiveModules[name] |
357 del self.__inactiveModules[name] |
363 elif name in self.__onDemandInactiveModules and \ |
358 elif name in self.__onDemandInactiveModules: |
364 self.__onDemandInactiveModules[name].eric5PluginModuleFilename == fname: |
|
365 try: |
359 try: |
366 del self.__onDemandInactivePlugins[name] |
360 del self.__onDemandInactivePlugins[name] |
367 except KeyError: |
361 except KeyError: |
368 pass |
362 pass |
369 del self.__onDemandInactiveModules[name] |
363 del self.__onDemandInactiveModules[name] |