Deactivates given Component.

        :param name: Component name.
        :type name: unicode
        :return: Method success.
        :rtype: bool

def deactivate_component(self, name):
        """
        Deactivates given Component.

        :param name: Component name.
        :type name: unicode
        :return: Method success.
        :rtype: bool
        """

        if not name in self.__engine.components_manager.components:
            raise manager.exceptions.ComponentExistsError(
                "{0} | '{0}' Component isn't registered in the Components Manager!".format(self.__class__.__name__,
                                                                                           name))

        component = self.__engine.components_manager.components[name]
        if not component.interface.activated:
            LOGGER.warning("!> {0} | '{1}' Component is already deactivated!".format(self.__class__.__name__, name))
            return False

        LOGGER.debug("> Attempting '{0}' Component deactivation.".format(component.name))
        if component.interface.deactivatable:
            if component.category in ("Default", "QObject"):
                component.interface.uninitialize()
            elif component.category == "QWidget":
                component.interface.uninitialize_ui()
                component.interface.remove_widget()
            component.interface.deactivate()
            LOGGER.info("{0} | '{1}' Component has been deactivated!".format(self.__class__.__name__, component.name))
            self.deactivated_component.emit(name)
            self.refresh_nodes.emit()
            return True
        else:
            raise manager.exceptions.ComponentDeactivationError(
                "{0} | '{1}' Component cannot be deactivated!".format(self.__class__.__name__, component.name))