--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/messagingex/messagingex.cpp Wed Aug 25 15:49:42 2010 +0300
@@ -0,0 +1,792 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include "messagingex.h"
+#include "qmessagefilter.h"
+#include <QFileDialog>
+
+MessagingEx::MessagingEx(QWidget* parent)
+ : QMainWindow(parent)
+{
+ setupUi(this);
+ createMenus();
+ connect(&m_manager, SIGNAL(messageAdded(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)), this, SLOT(messageReceived(const QMessageId&)));
+ connect(&m_manager, SIGNAL(messageRemoved(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)), this, SLOT(messageRemoved(const QMessageId&)));
+ connect(&m_manager, SIGNAL(messageUpdated(const QMessageId&, const QMessageManager::NotificationFilterIdSet&)), this, SLOT(messageUpdated(const QMessageId&)));
+ m_manager.registerNotificationFilter(QMessageFilter::byStandardFolder(QMessage::InboxFolder));
+ connect(&m_service, SIGNAL(messagesFound(const QMessageIdList&)), this, SLOT(messagesFound(const QMessageIdList&)));
+ m_accountList = m_manager.queryAccounts(QMessageAccountFilter(), QMessageAccountSortOrder(), 10 , 0);
+ for(int i = 0; i < m_accountList.count(); ++i){
+ QMessageAccount account = m_accountList[i];
+ accountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ accountComboBox_2->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ folderAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ timeAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ timestampAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ subjectAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ recipientAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ statusAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ senderAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ priorityAccountComboBox->addItem(QString("%1 - %2").arg(i+1).arg(account.name()),account.id().toString());
+ }
+ connect(accountComboBox_2,SIGNAL(currentIndexChanged(int)),this,SLOT(sortParentAccountId()));
+
+ timestampdateTimeEdit->setDateTime(QDateTime::currentDateTime());
+ receptiondateTimeEdit->setDateTime(QDateTime::currentDateTime());
+}
+
+void MessagingEx::createMenus()
+{
+ QAction* sendAction = new QAction(tr("Send"), this);
+ connect(sendAction, SIGNAL(triggered()), this, SLOT(send()));
+
+ m_createEmail = new QAction(tr("Create Message"), this);
+ m_createSms = new QAction(tr("Create Text Message"), this);
+ m_createMms = new QAction(tr("Create Multimedia Message"), this);
+ m_sortId = new QAction(tr("By message id"), this);
+ m_sortType = new QAction(tr("By priority"), this);
+ m_sortSender = new QAction(tr("By sender"), this);
+ m_sortRecipient = new QAction(tr("By recipient"), this);
+ m_sortSubject = new QAction(tr("By subject"), this);
+ m_sortTimestamp = new QAction(tr("By timestamp"), this);
+ m_sortReceptiontimestamp = new QAction(tr("By receptiontimestamp"), this);
+ m_sortStatus = new QAction(tr("By status"), this);
+ m_sortParentAccountId = new QAction(tr("Messages by account"), this);
+ m_sortStandardFolder = new QAction(tr("By standardFolder"), this);
+ m_result = new QAction(tr("Results"), this);
+
+ connect(m_createEmail, SIGNAL(triggered(bool)), m_createEmail, SLOT(setEnabled(bool)));
+ connect(m_createEmail, SIGNAL(triggered(bool)), m_createSms, SLOT(setDisabled(bool)));
+ connect(m_createEmail, SIGNAL(triggered(bool)), m_createMms, SLOT(setDisabled(bool)));
+
+ connect(m_createSms, SIGNAL(triggered(bool)), m_createSms, SLOT(setEnabled(bool)));
+ connect(m_createSms, SIGNAL(triggered(bool)), m_createEmail, SLOT(setDisabled(bool)));
+ connect(m_createSms, SIGNAL(triggered(bool)), m_createMms, SLOT(setDisabled(bool)));
+
+ connect(m_createMms, SIGNAL(triggered(bool)), m_createMms, SLOT(setEnabled(bool)));
+ connect(m_createMms, SIGNAL(triggered(bool)), m_createEmail, SLOT(setDisabled(bool)));
+ connect(m_createMms, SIGNAL(triggered(bool)), m_createSms, SLOT(setDisabled(bool)));
+
+ QSignalMapper* signalMapper = new QSignalMapper(this);
+ connect(m_createSms, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_createSms, 0);
+ connect(m_createEmail, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_createEmail, 1);
+ connect(m_createMms, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_createMms, 2);
+ connect(m_sortType, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortType, 3);
+ connect(m_sortSender, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortSender, 4);
+ connect(m_sortRecipient, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortRecipient, 5);
+ connect(m_sortSubject, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortSubject, 6);
+ connect(m_sortStatus, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortStatus, 7);
+ connect(m_sortTimestamp, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortTimestamp, 8);
+ connect(m_sortReceptiontimestamp, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortReceptiontimestamp, 9);
+ connect(m_sortStandardFolder, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortStandardFolder, 10);
+ connect(m_sortParentAccountId, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_sortParentAccountId, 11);
+ connect(m_result, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ signalMapper->setMapping(m_result, 12);
+
+ connect(signalMapper, SIGNAL(mapped(int)), stackedWidget, SLOT(setCurrentIndex(int)));
+
+ connect(appendAttachment,SIGNAL(clicked(bool)),this,SLOT(addAttachment()));
+ connect(addEmailAttachmentButton,SIGNAL(clicked(bool)),this,SLOT(addAttachment()));
+ connect(removeAttachmentButton,SIGNAL(clicked(bool)),this,SLOT(removeAttachment()));
+ connect(removeAttachmentButton_2,SIGNAL(clicked(bool)),this,SLOT(removeAttachment()));
+ connect(addMessageButton,SIGNAL(clicked(bool)),this,SLOT(addMessage()));
+
+ filterMenu = menuBar()->addMenu(tr("&Filter"));
+ filterMenu->addAction(m_sortId);
+ m_sortId->setDisabled(true);
+ // TODO: add filter by id functionality
+ filterMenu->addAction(m_sortParentAccountId);
+ connect(findMessagesButton, SIGNAL(clicked(bool)),this,SLOT(findMessages()));
+ filterMenu->addAction(m_sortType);
+ connect(typeButton, SIGNAL(clicked(bool)),this,SLOT(sortType()));
+ filterMenu->addAction(m_sortSender);
+ connect(senderButton, SIGNAL(clicked(bool)),this,SLOT(sortSender()));
+ filterMenu->addAction(m_sortRecipient);
+ connect(recipientButton, SIGNAL(clicked(bool)),this,SLOT(sortRecipient()));
+ filterMenu->addAction(m_sortSubject);
+ connect(subjectButton, SIGNAL(clicked(bool)),this,SLOT(sortSubject()));
+ filterMenu->addAction(m_sortTimestamp);
+ connect(timestampButton, SIGNAL(clicked(bool)),this,SLOT(sortTimestamp()));
+ filterMenu->addAction(m_sortReceptiontimestamp);
+ connect(receptionButton, SIGNAL(clicked(bool)),this,SLOT(sortReceptiontimestamp()));
+ filterMenu->addAction(m_sortStatus);
+ connect(statusButton, SIGNAL(clicked(bool)),this,SLOT(sortStatus()));
+ filterMenu->addAction(m_sortStandardFolder);
+ connect(folderButton, SIGNAL(clicked(bool)),this,SLOT(sortStandardFolder()));
+
+ composeMenu = menuBar()->addMenu(tr("&Compose"));
+
+ m_composeSMS = new QAction(tr("Compose SMS"), this);
+ composeMenu->addAction(m_composeSMS);
+ connect(m_composeSMS, SIGNAL(triggered()), this, SLOT(composeSMS()));
+
+ m_composeMMS = new QAction(tr("Compose MMS"), this);
+ composeMenu->addAction(m_composeMMS);
+ connect(m_composeMMS, SIGNAL(triggered()), this, SLOT(composeMMS()));
+
+ m_composeEmail = new QAction(tr("Compose Email"), this);
+ composeMenu->addAction(m_composeEmail);
+ connect(m_composeEmail, SIGNAL(triggered()), this, SLOT(composeEmail()));
+
+ QAction* exitAct = new QAction(tr("Exit"), this);
+ menuBar()->addAction(sendAction);
+ QMenu* listMenu = menuBar()->addMenu(tr("Email accounts"));
+
+ menuBar()->addAction(m_createEmail);
+ menuBar()->addAction(m_createSms);
+ menuBar()->addAction(m_createMms);
+ menuBar()->addAction(exitAct);
+ connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));
+}
+
+void MessagingEx::send()
+{
+ if ( stackedWidget->currentIndex() == 0 )
+ on_sendSmsButton_clicked();
+ if ( stackedWidget->currentIndex() == 1 )
+ on_sendEmailButton_clicked();
+ if ( stackedWidget->currentIndex() == 2 )
+ on_sendMmsButton_clicked();
+}
+
+void MessagingEx::addAttachment()
+{
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Message Example"), "c:\\Data");
+ QString labelText;
+ if (!fileName.isNull())
+ {
+ m_attachments.append(fileName);
+ m_fileNames.append(fileName);
+ m_fileNames.append("\n");
+ }
+ attachmentLabel->setText(m_fileNames);
+ emailAttachmentLabel->setText(m_fileNames);
+}
+
+void MessagingEx::removeAttachment()
+{
+ m_attachments.clear();
+ emailAttachmentLabel->clear();
+ m_fileNames.clear();
+}
+void MessagingEx::composeSMS()
+{
+ QMessage message;
+ message.setType(QMessage::Sms);
+ m_service.compose(message);
+}
+
+void MessagingEx::composeMMS()
+{
+ QMessage message;
+ message.setType(QMessage::Mms);
+ m_service.compose(message);
+}
+
+void MessagingEx::composeEmail()
+{
+ QMessage message;
+ message.setType(QMessage::Email);
+ int index = accountComboBox->currentIndex();
+ m_account = QMessageAccount(m_accountList[index]).id();
+ QMessage::TypeFlags types = m_account.messageTypes();
+
+ if (!emailAddressEdit->text().isEmpty()){
+ message.setTo(QMessageAddress(QMessageAddress::Email, emailAddressEdit->text()));
+ }
+
+ message.setParentAccountId(m_account.id());
+ message.setSubject(subjectEdit->text());
+
+ message.setBody(QString(emailMessageEdit->toPlainText()));
+ message.appendAttachments(m_attachments);
+ m_service.compose(message);
+}
+
+void MessagingEx::addMessage()
+{
+ QMessage message;
+ int index = accountComboBox->currentIndex();
+ m_account = QMessageAccount(m_accountList[index]).id();
+ QMessage::TypeFlags types = m_account.messageTypes();
+
+ if (!emailAddressEdit->text().isEmpty()){
+ message.setTo(QMessageAddress(QMessageAddress::Email, emailAddressEdit->text()));
+ }
+
+ message.setParentAccountId(m_account.id());
+ message.setSubject(subjectEdit->text());
+ message.setBody(QString(emailMessageEdit->toPlainText()));
+ message.appendAttachments(m_attachments);
+
+ if (!m_attachments.isEmpty() && types == QMessage::Sms){
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("Cannot send attachments via Sms!"));
+ msgBox.exec();
+ m_attachments.clear();
+ m_fileNames.clear();
+ attachmentLabel->clear();
+ } else {
+ m_manager.addMessage(&message);
+ emailAddressEdit->clear();
+ subjectEdit->clear();
+ emailMessageEdit->clear();
+ m_attachments.clear();
+ m_fileNames.clear();
+ emailAttachmentLabel->clear();
+ attachmentLabel->clear();
+ }
+}
+
+
+void MessagingEx::on_sendSmsButton_clicked()
+{
+ QMessage message;
+ foreach (const QMessageAccountId& id,m_accountList) {
+ QMessageAccount acc(id);
+ if(acc.messageTypes() & QMessage::Sms) message.setParentAccountId(id);
+ }
+ message.setType(QMessage::Sms);
+ message.setTo(QMessageAddress(QMessageAddress::Phone, phoneNumberEdit->text()));
+ message.setBody(QString(smsMessageEdit->toPlainText()));
+
+ if (!QString(phoneNumberEdit->text()).isEmpty())
+ {
+ if (m_service.send(message))
+ {
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("SMS was successfully sent"));
+ msgBox.exec();
+ }
+ phoneNumberEdit->clear();
+ smsMessageEdit->clear();
+ }
+ else
+ {
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("Set Phone number!"));
+ msgBox.exec();
+ }
+}
+
+
+void MessagingEx::on_sendMmsButton_clicked()
+{
+ QMessage message;
+ message.setType(QMessage::Mms);
+
+ message.setTo(QMessageAddress(QMessageAddress::Email, mmsPhoneNumberEdit->text()));
+ message.setSubject(mmsSubjectEdit->text());
+ message.setBody(QString(mmsBodyEdit->toPlainText()));
+ message.appendAttachments(m_attachments);
+
+ if (!QString(mmsPhoneNumberEdit->text()).isEmpty())
+ {
+ if (m_service.send(message))
+ {
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("MMS was successfully sent"));
+ msgBox.exec();
+ }
+ mmsPhoneNumberEdit->clear();
+ mmsSubjectEdit->clear();
+ mmsBodyEdit->clear();
+ attachmentLabel->clear();
+ m_attachments.clear();
+ m_fileNames.clear();
+ emailAttachmentLabel->clear();
+
+ }
+ else
+ {
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("Set Phone number!"));
+ msgBox.exec();
+ }
+}
+
+void MessagingEx::messageReceived(const QMessageId& aId)
+{
+ m_service.show(aId);
+}
+
+void MessagingEx::messageRemoved(const QMessageId& aId)
+{
+ Q_UNUSED(aId);
+}
+
+void MessagingEx::messageUpdated(const QMessageId& aId)
+{
+ Q_UNUSED(aId);
+}
+
+void MessagingEx::queryMessages()
+{
+
+}
+
+void MessagingEx::accountSelected(int index)
+{
+ Q_UNUSED(index);
+}
+
+void MessagingEx::on_sendEmailButton_clicked()
+{
+ QMessage message;
+ int index = accountComboBox->currentIndex();
+ m_account = QMessageAccount(m_accountList[index]).id();
+ QMessage::TypeFlags types = m_account.messageTypes();
+
+ if (!emailAddressEdit->text().isEmpty()){
+ message.setTo(QMessageAddress(QMessageAddress::Email, emailAddressEdit->text()));
+ }
+
+ message.setParentAccountId(m_account.id());
+ message.setSubject(subjectEdit->text());
+ message.setBody(QString(emailMessageEdit->toPlainText()));
+ message.appendAttachments(m_attachments);
+
+ if (!m_attachments.isEmpty() && types == QMessage::Sms){
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("Cannot send attachments via Sms!"));
+ msgBox.exec();
+ m_attachments.clear();
+ m_fileNames.clear();
+ attachmentLabel->clear();
+ } else if (QString(emailAddressEdit->text()).isEmpty()){
+ QMessageBox msgBox;
+ msgBox.setStandardButtons(QMessageBox::Close);
+ msgBox.setText(tr("Set address!"));
+ msgBox.exec();
+ } else {
+ if (m_service.send(message)){
+ emailAddressEdit->clear();
+ subjectEdit->clear();
+ emailMessageEdit->clear();
+ m_attachments.clear();
+ m_fileNames.clear();
+ emailAttachmentLabel->clear();
+ attachmentLabel->clear();
+ }
+ }
+}
+
+void MessagingEx::sortType()
+{
+ QMessageFilter filter;
+ int priorityindex = priorityComboBox->currentIndex();
+ // 0 = No priority filtering 1 = High Priority, 2 = Normal Priority, 3 = Low Priority
+ switch(priorityindex){
+ case 0:
+ break;
+ case 1:
+ filter = QMessageFilter::byPriority(QMessage::HighPriority, QMessageDataComparator::Equal);
+ break;
+ case 2:
+ filter = QMessageFilter::byPriority(QMessage::NormalPriority, QMessageDataComparator::Equal);
+ break;
+ case 3:
+ filter = QMessageFilter::byPriority(QMessage::LowPriority, QMessageDataComparator::Equal);
+ break;
+ case 4:
+ filter = QMessageFilter::byPriority(QMessage::HighPriority, QMessageDataComparator::NotEqual);
+ break;
+ case 5:
+ filter = QMessageFilter::byPriority(QMessage::NormalPriority, QMessageDataComparator::NotEqual);
+ break;
+ case 6:
+ filter = QMessageFilter::byPriority(QMessage::LowPriority, QMessageDataComparator::NotEqual);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = priorityAccountComboBox->itemData(priorityAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::sortSender()
+{
+ QString sender = senderEdit->text();
+ QMessageFilter filter;
+ int index = sendercomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::bySender(sender, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::bySender(sender, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::bySender(sender, QMessageDataComparator::Includes);
+ break;
+ case 3:
+ filter = QMessageFilter::bySender(sender, QMessageDataComparator::Excludes);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = senderAccountComboBox->itemData(senderAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::sortRecipient()
+{
+ QString recipient = recipientEdit->text();
+ QMessageFilter filter;
+ int index = recipientcomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::byRecipients(recipient, QMessageDataComparator::Includes);
+ break;
+ case 1:
+ filter = QMessageFilter::byRecipients(recipient, QMessageDataComparator::Excludes);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = recipientAccountComboBox->itemData(recipientAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::sortSubject()
+{
+ QString subject = subjectEdit_2->text();
+ QMessageFilter filter;
+ int index = subjectcomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::bySubject(subject, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::bySubject(subject, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::bySubject(subject, QMessageDataComparator::Includes);
+ break;
+ case 3:
+ filter = QMessageFilter::bySubject(subject, QMessageDataComparator::Excludes);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = subjectAccountComboBox->itemData(subjectAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+}
+
+void MessagingEx::sortTimestamp()
+{
+ QDateTime time = timestampdateTimeEdit->dateTime();
+ QMessageFilter filter;
+ int index = timestampcomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::LessThan);
+ break;
+ case 3:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::LessThanEqual);
+ break;
+ case 4:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::GreaterThan);
+ break;
+ case 5:
+ filter = QMessageFilter::byTimeStamp(time, QMessageDataComparator::GreaterThanEqual);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = timestampAccountComboBox->itemData(timestampAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::sortReceptiontimestamp()
+{
+ QDateTime time = receptiondateTimeEdit->dateTime();
+ QMessageFilter filter;
+ int index = receptioncomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::LessThan);
+ break;
+ case 3:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::LessThanEqual);
+ break;
+ case 4:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::GreaterThan);
+ break;
+ case 5:
+ filter = QMessageFilter::byReceptionTimeStamp(time, QMessageDataComparator::GreaterThanEqual);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = timeAccountComboBox->itemData(timeAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+}
+
+void MessagingEx::sortStatus()
+{
+ QMessageFilter filter;
+ int index = statuscomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::byStatus(QMessage::Read, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::byStatus(QMessage::Read, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::byStatus(QMessage::Read, QMessageDataComparator::Includes);
+ break;
+ case 3:
+ filter = QMessageFilter::byStatus(QMessage::Read, QMessageDataComparator::Excludes);
+ break;
+ case 4:
+ filter = QMessageFilter::byStatus(QMessage::HasAttachments, QMessageDataComparator::Equal);
+ break;
+ case 5:
+ filter = QMessageFilter::byStatus(QMessage::HasAttachments, QMessageDataComparator::NotEqual);
+ break;
+ case 6:
+ filter = QMessageFilter::byStatus(QMessage::HasAttachments, QMessageDataComparator::Includes);
+ break;
+ case 7:
+ filter = QMessageFilter::byStatus(QMessage::HasAttachments, QMessageDataComparator::Excludes);
+ break;
+ case 8:
+ filter = QMessageFilter::byStatus(QMessage::Incoming, QMessageDataComparator::Equal);
+ break;
+ case 9:
+ filter = QMessageFilter::byStatus(QMessage::Incoming, QMessageDataComparator::NotEqual);
+ break;
+ case 10:
+ filter = QMessageFilter::byStatus(QMessage::Incoming, QMessageDataComparator::Includes);
+ break;
+ case 11:
+ filter = QMessageFilter::byStatus(QMessage::Incoming, QMessageDataComparator::Excludes);
+ break;
+ case 12:
+ filter = QMessageFilter::byStatus(QMessage::Removed, QMessageDataComparator::Equal);
+ break;
+ case 13:
+ filter = QMessageFilter::byStatus(QMessage::Removed, QMessageDataComparator::NotEqual);
+ break;
+ case 14:
+ filter = QMessageFilter::byStatus(QMessage::Removed, QMessageDataComparator::Includes);
+ break;
+ case 15:
+ filter = QMessageFilter::byStatus(QMessage::Removed, QMessageDataComparator::Excludes);
+ break;
+ }
+
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ QString accountId = statusAccountComboBox->itemData(statusAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::sortParentAccountId()
+{
+ int index = accountComboBox_2->currentIndex();
+ folderComboBox->clear ();
+ QMessageFolderFilter filter = QMessageFolderFilter::byParentAccountId(m_accountList[index]);// & QMessageFolderFilter::byName("Inbox");
+ QMessageFolderIdList ids = m_manager.queryFolders(filter);
+ for (int i=0; i < ids.count(); i++) {
+ QMessageFolder folder;
+ folder = m_manager.folder(ids[i]);
+ QString name = folder.name();
+ folderComboBox->addItem(name, folder.id().toString());
+ }
+}
+
+void MessagingEx::sortStandardFolder()
+{
+ QMessageFilter filter;
+ int index = foldercomboBox->currentIndex();
+ switch(index){
+ case 0:
+ filter = QMessageFilter::byStandardFolder(QMessage::InboxFolder, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::byStandardFolder(QMessage::InboxFolder, QMessageDataComparator::NotEqual);
+ break;
+ case 2:
+ filter = QMessageFilter::byStandardFolder(QMessage::OutboxFolder, QMessageDataComparator::Equal);
+ break;
+ case 3:
+ filter = QMessageFilter::byStandardFolder(QMessage::OutboxFolder, QMessageDataComparator::NotEqual);
+ break;
+ case 4:
+ filter = QMessageFilter::byStandardFolder(QMessage::DraftsFolder, QMessageDataComparator::Equal);
+ break;
+ case 5:
+ filter = QMessageFilter::byStandardFolder(QMessage::DraftsFolder, QMessageDataComparator::NotEqual);
+ break;
+ case 6:
+ filter = QMessageFilter::byStandardFolder(QMessage::SentFolder, QMessageDataComparator::Equal);
+ break;
+ case 7:
+ filter = QMessageFilter::byStandardFolder(QMessage::SentFolder, QMessageDataComparator::NotEqual);
+ break;
+ case 8:
+ filter = QMessageFilter::byStandardFolder(QMessage::TrashFolder, QMessageDataComparator::Equal);
+ break;
+ case 9:
+ filter = QMessageFilter::byStandardFolder(QMessage::TrashFolder, QMessageDataComparator::NotEqual);
+ break;
+ }
+ QString accountId = folderAccountComboBox->itemData(folderAccountComboBox->currentIndex()).toString();
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ QMessageSortOrder sortOrder;
+ sortOrder.byTimeStamp(Qt::DescendingOrder);
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+}
+
+void MessagingEx::findMessages()
+{
+ QString accountId = accountComboBox_2->itemData(accountComboBox_2->currentIndex()).toString();
+ int folderIndex = folderComboBox->currentIndex();
+ int defaultIndex = defaultAccountBox->currentIndex();
+ QMessageFilter filter;
+ if (defaultIndex >= 0 && folderComboBox->count() == 0){
+ switch(defaultIndex){
+ case 0:
+ filter = QMessageFilter::byStandardFolder(QMessage::InboxFolder, QMessageDataComparator::Equal);
+ break;
+ case 1:
+ filter = QMessageFilter::byStandardFolder(QMessage::OutboxFolder, QMessageDataComparator::Equal);
+ break;
+ case 2:
+ filter = QMessageFilter::byStandardFolder(QMessage::DraftsFolder, QMessageDataComparator::Equal);
+ break;
+ case 3:
+ filter = QMessageFilter::byStandardFolder(QMessage::SentFolder, QMessageDataComparator::Equal);
+ break;
+ case 4:
+ filter = QMessageFilter::byStandardFolder(QMessage::TrashFolder, QMessageDataComparator::Equal);
+ break;
+ }
+ filter &= QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ }
+ else if (folderIndex >= 0) {
+ QString folderId = folderComboBox->itemData(folderComboBox->currentIndex()).toString();
+ filter = QMessageFilter::byParentFolderId(QMessageFolderId(folderId), QMessageDataComparator::Equal);
+ } else {
+ filter = QMessageFilter::byParentAccountId(QMessageAccountId(accountId));
+ }
+
+ QMessageSortOrder sortOrder = sortOrder.byTimeStamp(Qt::DescendingOrder);
+ m_service.queryMessages(filter, sortOrder, 100, 0);
+
+}
+
+void MessagingEx::messagesFound(const QMessageIdList &ids)
+{
+ QString labelText;
+ QStandardItemModel* standardModel = new QStandardItemModel(this);
+ messageListView->setModel(standardModel);
+ stackedWidget->setCurrentIndex(12);
+ for (int i=0; i < ids.count(); i++) {
+ QMessage message = m_manager.message(ids[i]);
+ QString from = message.from().addressee();
+ QString subject = message.subject();
+ if (subject.length() == 0) {
+ subject = message.textContent();
+ }
+ // QString body = QString(message.textContent().left(20));
+ // labelText.append(from);
+ QStandardItem* item1 = new QStandardItem(from);
+ QStandardItem* item2 = new QStandardItem(subject);
+ standardModel->appendRow(item1);
+ standardModel->appendRow(item2);
+ messageListView->setModel(standardModel);
+ }
+
+}
+
+
+// End of file