示例#1
0
void MainScreen::workDone()
{
	if(m_worker)
	{
		delete m_worker;
		m_worker = NULL;
	}
	if(!m_cancelled)
	{
		AccountService* as = new AccountService();
		Account account = as->defaultAccount(Service::Messages);

		MessageSearchFilter filter;
		filter.setAccountId(account.id());
		MessageService messageService;

		QList<MessageFolder> folders = messageService.folders(account.id());
		MessageFolder sentFolder;
		for(int i = 0; i < folders.size(); ++i)
		{
			if(folders[i].type() == MessageFolder::Sent)
			{
				sentFolder = folders[i];
				break;
			}
		}

		filter.setFolderId(sentFolder.id());
		filter.addSearchCriteria(SearchFilterCriteria::Subject, m_subject);

		QList<Message> messagesToDelete = messageService.searchLocal(account.id(), filter);
		messagesToDelete.append(messageService.searchRemote(account.id(), filter));

		for(int i = 0; i < messagesToDelete.size(); ++i)
		{
			messageService.remove(account.id(), messagesToDelete[i].id());
		}



		m_mainPage->setProperty("allDone", true);
	}
	m_mainPage->setProperty("workInProgress", false);
}