Save currently open scene with the information in the given taskfile info

        :param tfi: taskfile info
        :type tfi: :class:`TaskFileInfo`
        :returns: None
        :rtype: None
        :raises: None

def _save_tfi(self, tfi, asset=False):
        """Save currently open scene with the information in the given taskfile info

        :param tfi: taskfile info
        :type tfi: :class:`TaskFileInfo`
        :returns: None
        :rtype: None
        :raises: None
        """
        jbfile = JB_File(tfi)
        self.create_dir(jbfile)

        tf, note = self.create_db_entry(tfi)

        try:
            js = JukeboxSignals.get()
            if asset:
                js.before_save_asset.emit(jbfile, tf)
                self.save_asset(jbfile, tf)
                js.after_save_asset.emit(jbfile, tf)
            else:
                js.before_save_shot.emit(jbfile, tf)
                self.save_shot(jbfile, tf)
                js.after_save_shot.emit(jbfile, tf)
        except:
            tf.delete()
            note.delete()
            self.statusbar.showMessage('Saving failed!')
            log.exception("Saving failed!")
            return
        self.browser.update_model(tfi)