624 @rtype tuple of (QObject, str) |
625 @rtype tuple of (QObject, str) |
625 @exception PluginActivationError raised to indicate an issue during the |
626 @exception PluginActivationError raised to indicate an issue during the |
626 plug-in activation |
627 plug-in activation |
627 """ |
628 """ |
628 try: |
629 try: |
|
630 logging.getLogger(__name__).debug(f"Activating Plugin '{name}'...") |
629 try: |
631 try: |
630 module = ( |
632 module = ( |
631 self.__onDemandInactiveModules[name] |
633 self.__onDemandInactiveModules[name] |
632 if onDemand |
634 if onDemand |
633 else self.__inactiveModules[name] |
635 else self.__inactiveModules[name] |
634 ) |
636 ) |
635 except KeyError: |
637 except KeyError: |
|
638 logging.getLogger(__name__).debug(f"No such plugin module: '{name}'") |
636 return None, f"no such plugin module: {name}" |
639 return None, f"no such plugin module: {name}" |
637 |
640 |
638 if not self.__canActivatePlugin(module): |
641 if not self.__canActivatePlugin(module): |
639 raise PluginActivationError(module.eric7PluginModuleName) |
642 raise PluginActivationError(module.eric7PluginModuleName) |
640 version = getPluginHeaderEntry(module, "version", "0.0.0") |
643 version = getPluginHeaderEntry(module, "version", "0.0.0") |
657 except Exception as err: |
660 except Exception as err: |
658 module.error = str(err) |
661 module.error = str(err) |
659 obj = None |
662 obj = None |
660 ok = False |
663 ok = False |
661 if not ok: |
664 if not ok: |
|
665 logging.getLogger(__name__).debug( |
|
666 f"Error activating plugin '{name}': {module.error}" |
|
667 ) |
662 return None, module.error |
668 return None, module.error |
663 |
669 |
664 self.pluginActivated.emit(name, pluginObject) |
670 self.pluginActivated.emit(name, pluginObject) |
665 pluginObject.eric7PluginModule = module |
671 pluginObject.eric7PluginModule = module |
666 pluginObject.eric7PluginName = className |
672 pluginObject.eric7PluginName = className |
678 self.__inactivePlugins.pop(name) |
684 self.__inactivePlugins.pop(name) |
679 self.__activePlugins[name] = pluginObject |
685 self.__activePlugins[name] = pluginObject |
680 self.__activeModules[name] = module |
686 self.__activeModules[name] = module |
681 return obj, "" |
687 return obj, "" |
682 except PluginActivationError as err: |
688 except PluginActivationError as err: |
|
689 logging.getLogger(__name__).debug( |
|
690 f"Error activating plugin '{name}': {str(err)}" |
|
691 ) |
683 return None, str(err) |
692 return None, str(err) |
684 |
693 |
685 def __canActivatePlugin(self, module): |
694 def __canActivatePlugin(self, module): |
686 """ |
695 """ |
687 Private method to check, if a plugin can be activated. |
696 Private method to check, if a plugin can be activated. |