Adds a project.

        :param path: Project path.
        :type path: unicode
        :return: Method success.
        :rtype: bool

def add_project(self, path):
        """
        Adds a project.

        :param path: Project path.
        :type path: unicode
        :return: Method success.
        :rtype: bool
        """

        if not foundations.common.path_exists(path):
            return False

        path = os.path.normpath(path)
        if self.__model.get_project_nodes(path):
            self.__engine.notifications_manager.warnify(
                "{0} | '{1}' project is already opened!".format(self.__class__.__name__, path))
            return False

        LOGGER.info("{0} | Adding '{1}' project!".format(self.__class__.__name__, path))
        project_node = self.__model.register_project(path)
        if not project_node:
            return False

        self.__model.set_project_nodes(project_node)
        return True