Restores given layout.

        :param name: Layout name.
        :type name: unicode
        :param \*args: Arguments.
        :type \*args: \*
        :return: Method success.
        :rtype: bool

def restore_layout(self, name, *args):
        """
        Restores given layout.

        :param name: Layout name.
        :type name: unicode
        :param \*args: Arguments.
        :type \*args: \*
        :return: Method success.
        :rtype: bool
        """

        layout = self.__layouts.get(name)
        if not layout:
            raise umbra.exceptions.LayoutExistError("{0} | '{1}' layout isn't registered!".format(
                self.__class__.__name__, name))

        LOGGER.debug("> Restoring layout '{0}'.".format(name))

        for component, profile in self.__container.components_manager:
            if profile.category == "QWidget" and component not in self.__container.visible_components:
                interface = self.__container.components_manager.get_interface(component)
                interface and interface.hide()

        self.__current_layout = name
        self.__container.centralWidget().setVisible(
            self.__settings.get_key("Layouts", "{0}_central_widget".format(name)).toBool())
        self.__container.restoreState(
            self.__settings.get_key("Layouts", "{0}_window_state".format(name)).toByteArray())
        self.__restore_geometry_on_layout_change and \
        self.__container.restoreGeometry(
            self.__settings.get_key("Layouts", "{0}_geometry".format(name)).toByteArray())
        self.layout_restored.emit(self.__current_layout)
        return True