def remove_task(self, row, scan=True): # 当删除正在下载的任务时, 直接调用stop_worker(), 它会自动删除本地的 # 文件片段 if not row: return # 如果任务尚未下载完, 弹出一个对话框, 让用户确认删除 if row[STATE_COL] != State.FINISHED: if self.app.profile['confirm-download-deletion']: dialog = ConfirmDialog(self.app, False) response = dialog.run() dialog.destroy() if response != Gtk.ResponseType.YES: return if row[STATE_COL] == State.DOWNLOADING: self.stop_worker(row) elif row[CURRSIZE_COL] < row[SIZE_COL]: filepath, tmp_filepath, conf_filepath = get_tmp_filepath( row[SAVEDIR_COL], row[SAVENAME_COL]) if os.path.exists(tmp_filepath): os.remove(tmp_filepath) if os.path.exists(conf_filepath): os.remove(conf_filepath) self.app_infos.pop(row[FSID_COL], None) self.remove_task_db(row[FSID_COL]) tree_iter = row.iter if tree_iter: self.liststore.remove(tree_iter) if scan: self.scan_tasks()
def remove_task(self, row, scan=True): # 当删除正在下载的任务时, 直接调用stop_worker(), 它会自动删除本地的 # 文件片段 if row[STATE_COL] == State.DOWNLOADING: self.stop_worker(row) elif row[CURRSIZE_COL] < row[SIZE_COL]: tmp_filepath = get_tmp_filepath(row[SAVEDIR_COL], row[SAVENAME_COL])[1] if os.path.exists(tmp_filepath): os.remove(tmp_filepath) self.app_infos.pop(row[FSID_COL], None) self.remove_task_db(row[FSID_COL]) tree_iter = row.iter if tree_iter: self.liststore.remove(tree_iter) if scan: self.scan_tasks()