void CDirstatDoc::OnUserdefinedcleanup(UINT id) { const USERDEFINEDCLEANUP *udc= GetOptions()->GetUserDefinedCleanup(id - ID_USERDEFINEDCLEANUP0); CItem *item= GetSelection(); ASSERT(UserDefinedCleanupWorksForItem(udc, item)); if (!UserDefinedCleanupWorksForItem(udc, item)) return; ASSERT(item != NULL); try { AskForConfirmation(udc, item); PerformUserDefinedCleanup(udc, item); RefreshAfterUserDefinedCleanup(udc, item); } catch (CUserException *pe) { pe->Delete(); } catch (CException *pe) { pe->ReportError(); pe->Delete(); } }
void ConfirmationQueue::Process() { if (in_process) return; in_process = true; while (!queue_.empty()) { anime::Episode& episode = queue_.front(); int choice = AskForConfirmation(episode); if (choice != IDNO) { bool change_status = (choice == IDCANCEL); auto anime_item = AnimeDatabase.FindItem(episode.anime_id); anime_item->AddToQueue(episode, change_status); } queue_.pop(); } in_process = false; }