Closes either given file or current **Script_Editor_tabWidget** Widget tab Model editor file.

        :param file: File to save.
        :type file: unicode
        :param leave_first_editor: Leave first editor.
        :type leave_first_editor: bool
        :return: Method success.
        :rtype: bool

def close_file(self, file=None, leave_first_editor=True):
        """
        Closes either given file or current **Script_Editor_tabWidget** Widget tab Model editor file.

        :param file: File to save.
        :type file: unicode
        :param leave_first_editor: Leave first editor.
        :type leave_first_editor: bool
        :return: Method success.
        :rtype: bool
        """

        editor = file and self.get_editor(file) or self.get_current_editor()
        if not editor:
            return False

        file = editor.file
        LOGGER.info("{0} | Closing '{1}' file!".format(self.__class__.__name__, file))
        if not editor.close_file():
            return False

        if self.__model.delete_authoring_nodes(editor):
            if not self.has_editor_tab() and leave_first_editor:
                self.new_file()
            self.file_closed.emit(file)
            return True