#include #include "mailclient.h" MailClient::MailClient() { QIcon folderIcon(style()->standardPixmap(QStyle::SP_DirClosedIcon)); QIcon trashIcon(style()->standardPixmap(QStyle::SP_FileIcon)); QStringList folderLabels; folderLabels << tr("Folders"); foldersTreeWidget = new QTreeWidget; foldersTreeWidget->setHeaderLabels(folderLabels); addFolder(folderIcon, tr("Inbox")); addFolder(folderIcon, tr("Outbox")); addFolder(folderIcon, tr("Sent")); addFolder(trashIcon, tr("Trash")); QStringList messageLabels; messageLabels << tr("Subject") << tr("Sender") << tr("Date"); messagesTreeWidget = new QTreeWidget; messagesTreeWidget->setHeaderLabels(messageLabels); addMessage(tr("Happy New Year!"), tr("Grace K. "), tr("2006-12-31")); addMessage(tr("Radically new concept!"), tr("Grace K. "), tr("2006-12-22")); addMessage(tr("Accounts"), tr("pascale@nospam.com"), tr("2006-12-31")); addMessage(tr("Expenses"), tr("Joe Bloggs "), tr("2006-12-25")); addMessage(tr("Re: Expenses"), tr("Andy "), tr("2007-01-02")); addMessage(tr("Re: Accounts"), tr("Joe Bloggs "), tr("2007-01-03")); addMessage(tr("Re: Accounts"), tr("Andy "), tr("2007-01-03")); messagesTreeWidget->resizeColumnToContents(0); messagesTreeWidget->resizeColumnToContents(1); textEdit = new QTextEdit; textEdit->setReadOnly(true); textEdit->setHtml("" "
Subject:" "

Happy New Year!" "

Date:" "

Sun, 31 Dec 2006" "

From:" "

Grace K. <grace@software-inc.com>" "

To:" "all@software-inc.com" "
" "
I want to seize this occasion to thank " "everybody for the year that has gone, and want " "to wish you the best for next year. It has been " "a pleasure to work with you all on the Hawk " "project, and I'm sure we'll get concrete " "results shortly." "

Happy New Year!" "
--Grace"); menuBar()->addMenu(tr("&File")); menuBar()->addMenu(tr("&Edit")); menuBar()->addMenu(tr("&View")); menuBar()->addMenu(tr("F&older")); menuBar()->addMenu(tr("&Message")); menuBar()->addMenu(tr("&Settings")); menuBar()->addMenu(tr("&Help")); statusBar()->showMessage(tr("No new messages on server")); rightSplitter = new QSplitter(Qt::Vertical); rightSplitter->addWidget(messagesTreeWidget); rightSplitter->addWidget(textEdit); rightSplitter->setStretchFactor(1, 1); mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->addWidget(foldersTreeWidget); mainSplitter->addWidget(rightSplitter); mainSplitter->setStretchFactor(1, 1); setCentralWidget(mainSplitter); setWindowTitle(tr("Mail Client")); readSettings(); } void MailClient::closeEvent(QCloseEvent *event) { writeSettings(); event->accept(); } void MailClient::addFolder(const QIcon &icon, const QString &name) { QTreeWidgetItem *root; if (foldersTreeWidget->topLevelItemCount() == 0) { root = new QTreeWidgetItem(foldersTreeWidget); root->setText(0, tr("Mail")); foldersTreeWidget->setItemExpanded(root, true); } else { root = foldersTreeWidget->topLevelItem(0); } QTreeWidgetItem *newItem = new QTreeWidgetItem(root); newItem->setText(0, name); newItem->setIcon(0, icon); if (!foldersTreeWidget->currentItem()) foldersTreeWidget->setCurrentItem(newItem); } void MailClient::addMessage(const QString &subject, const QString &from, const QString &date) { QTreeWidgetItem *newItem = new QTreeWidgetItem(messagesTreeWidget); newItem->setText(0, subject); newItem->setText(1, from); newItem->setText(2, date); if (!messagesTreeWidget->currentItem()) messagesTreeWidget->setCurrentItem(newItem); } void MailClient::readSettings() { QSettings settings("Software Inc.", "Mail Client"); settings.beginGroup("mainWindow"); resize(settings.value("size", QSize(480, 360)).toSize()); mainSplitter->restoreState( settings.value("mainSplitter").toByteArray()); rightSplitter->restoreState( settings.value("rightSplitter").toByteArray()); settings.endGroup(); } void MailClient::writeSettings() { QSettings settings("Software Inc.", "Mail Client"); settings.beginGroup("mainWindow"); settings.setValue("size", size()); settings.setValue("mainSplitter", mainSplitter->saveState()); settings.setValue("rightSplitter", rightSplitter->saveState()); settings.endGroup(); }