Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 3 / 6-7.tar / 6-7 / 6-7 / net_mail / mailform.ui

.h
Скачиваний:
16
Добавлен:
17.04.2013
Размер:
4 Кб
Скачать
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you want to add, delete, or rename functions or slots, use
** Qt Designer to update this file, preserving your code.
**
** You should not define a constructor or destructor in this file.
** Instead, write your code in functions called init() and destroy().
** These will automatically be called by the form's constructor and
** destructor.
*****************************************************************************/


void MailForm::self_init()
{	
	nmail = new NMail();
	compform = new Compose();
	compform->mailform = this;
	compform->nmail = nmail;
		
	pserverEdit->setText("pop.mail.ru");
	sserverEdit->setText("smtp.mail.ru");
	loginEdit->setText("");
	passwordEdit->setText("");
	
	messageList->clear();
	
	updateFolder();
}


void MailForm::updateFolder()
{
	folderList->clear();
	
	new QListViewItem (folderList, "Inbox",
		QString("%1").arg(nmail->getCount(FLDR_INBOX)),
		QString("%1").arg(FLDR_INBOX) );
		
	new QListViewItem (folderList, "Outbox",
		QString("%1").arg(nmail->getCount(FLDR_OUTBOX)),
		QString("%1").arg(FLDR_OUTBOX) );

	new QListViewItem (folderList, "Sent",
		QString("%1").arg(nmail->getCount(FLDR_SENT)),
		QString("%1").arg(FLDR_SENT) );

	folderList->setSelected(folderList->firstChild(), true);
}


void MailForm::updateMessages()
{
	if (folderList->selectedItem()){
		int folder = (folderList->selectedItem()->text(2)).toInt();
			
		messageList->clear();

		size_t count = nmail->getCount(folder);

		NMessage *nmsg;
		for (size_t i = 0; i < count; i++){
			nmsg = nmail->getMessage(i, folder);
			if (nmsg)
				new QListViewItem (messageList, nmsg->subject, nmsg->from,
					nmsg->date, QString("%1").arg(i));
		}
		
		textBrowser->setText("");
	
		if (messageList->firstChild())
			messageList->setSelected(messageList->firstChild(), true);
	}
}

void MailForm::checkMail()
{
	nmail->setParams(sserverEdit->text(),pserverEdit->text(),
			loginEdit->text(), passwordEdit->text());
			
	nmail->checkMail();
	updateFolder();
}


void MailForm::updateContent()
{
	if (folderList->selectedItem() && messageList->selectedItem()){
		int folder = (folderList->selectedItem()->text(2)).toInt();

		size_t index = (messageList->selectedItem()->text(3)).toUInt();
		NMessage *nmsg = nmail->getMessage(index, folder);
		textBrowser->setText(nmsg->content);
	}
}



void MailForm::composeMail()
{	
	compform->on_show();
	compform->show();
}


void MailForm::replyMail()
{
	if (folderList->selectedItem() && messageList->selectedItem()){
		int folder = (folderList->selectedItem()->text(2)).toInt();

		size_t index = (messageList->selectedItem()->text(3)).toUInt();
		NMessage *nmsg = nmail->getMessage(index, folder);
		compform->s_to = nmsg->from;
		compform->s_from = nmsg->to;
		compform->s_subject = "Re: " + nmsg->subject;
		QString tmp_text = nmsg->content;
		tmp_text.replace("\n","\n> ");
		compform->s_text = "> " + tmp_text;
	
		compform->on_show();
		compform->show();
	}	
}

void MailForm::editMessage()
{
	if (folderList->selectedItem() && messageList->selectedItem()){
		int folder = (folderList->selectedItem()->text(2)).toInt();
		
		if (folder != FLDR_OUTBOX)
			return;

		size_t index = (messageList->selectedItem()->text(3)).toUInt();
		NMessage *nmsg = nmail->getMessage(index, folder);
		compform->s_to = nmsg->to;
		compform->s_from = nmsg->from;
		compform->s_subject = nmsg->subject;
		compform->s_text = nmsg->content;
	
		nmail->removeMessage(index, FLDR_OUTBOX);
		compform->on_show();
		compform->show();
	}	
}

void MailForm::sendMail()
{
	nmail->setParams(sserverEdit->text(),pserverEdit->text(),
			loginEdit->text(), passwordEdit->text());

	nmail->sendMail();
	updateFolder();
}

Соседние файлы в папке net_mail