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

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

.ui.h
Скачиваний:
14
Добавлен:
17.04.2013
Размер:
3.81 Кб
Скачать
/****************************************************************************
** 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