diff options
Diffstat (limited to 'examples/qtmail/libs/qmfutil/qmailviewer.cpp')
| -rw-r--r-- | examples/qtmail/libs/qmfutil/qmailviewer.cpp | 380 |
1 files changed, 0 insertions, 380 deletions
diff --git a/examples/qtmail/libs/qmfutil/qmailviewer.cpp b/examples/qtmail/libs/qmfutil/qmailviewer.cpp deleted file mode 100644 index 126880ba..00000000 --- a/examples/qtmail/libs/qmfutil/qmailviewer.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the Qt Messaging Framework. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** 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, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmailviewer.h" -#include <QApplication> -#include <QIcon> -#include <QMap> -#include <QUrl> -#include <QWidget> -#include <qmaillog.h> -#include <qmailpluginmanager.h> - -#define PLUGIN_KEY "viewers" - -typedef QMap<QString, QMailViewerInterface*> PluginMap; - -// Load all the viewer plugins into a map for quicker reference -static PluginMap initMap(QMailPluginManager& manager) -{ - PluginMap map; - - foreach (const QString &item, manager.list()) { - QObject *instance = manager.instance(item); - if (QMailViewerInterface* iface = qobject_cast<QMailViewerInterface*>(instance)) - map.insert(iface->key(), iface); - } - return map; -} - -// Return a reference to a map containing all loaded plugin objects -static PluginMap& pluginMap() -{ - static QMailPluginManager pluginManager(PLUGIN_KEY); - static PluginMap map(initMap(pluginManager)); - - return map; -} - -// Return the viewer plugin object matching the specified ID -static QMailViewerInterface* mapping(const QString& key) -{ - PluginMap::ConstIterator it; - if ((it = pluginMap().find(key)) != pluginMap().end()) - return it.value(); - - return 0; -} - -/*! - \class QMailViewerInterface - \ingroup qmfutil - - \brief The QMailViewerInterface class defines the interface to objects that can display a mail message. - - Qt Extended uses the QMailViewerInterface interface for displaying mail messages. A class may implement the - QMailViewerInterface interface to display a mail message format. - - The message to be displayed is provided to the viewer class using the \l {QMailViewerInterface::setMessage()} - {setMessage()} function. If the message refers to external resources, these should be provided using the - \l {QMailViewerInterface::setResource()}{setResource()} function. The \l {QMailViewerInterface::clear()}{clear()} - function clears any message or resources previously set. - - The viewer object should emit the \l {QMailViewerInterface::anchorClicked()}{anchorClicked()} signal if the user - selects a link in the message. If the message supports a concept of completion, then the - \l {QMailViewerInterface::finished()}{finished()} signal should be emitted after the display has been completed. - - Rather than creating objects that implement the QMailViewerInterface directly, clients should create an object - of an appropriate type by using the QMailViewerFactory class: - - \code - QString key = QMailViewerFactory::defaultKey( QMailViewerFactory::SmilContent ); - QMailViewerInterface* smilViewer = QMailViewerFactory::create( key, this, "smilViewer" ); - \endcode - - \sa QMailViewerFactory -*/ - -/*! - \fn QWidget* QMailViewerInterface::widget() const - - Returns the top-level widget that implements the viewer functionality. -*/ - -/*! - \fn bool QMailViewerInterface::setMessage(const QMailMessage& mail) - - Displays the contents of \a mail. Returns whether the message could be successfully displayed. -*/ - -/*! - \fn void QMailViewerInterface::clear() - - Resets the display to have no content, and removes any resource associations. -*/ - -/*! - \fn QMailViewerInterface::respondToMessage(QMailMessage::ResponseType type) - - This signal is emitted by the viewer to initiate a response action, of type \a type. -*/ - -/*! - \fn QMailViewerInterface::respondToMessagePart(const QMailMessagePart::Location &partLocation, QMailMessage::ResponseType type) - - This signal is emitted by the viewer to initiate a response to the message - part indicated by \a partLocation, of type \a type. -*/ - -/*! - \fn QMailViewerInterface::contactDetails(const QContact &contact) - - This signal is emitted by the viewer to request a display of \a{contact}'s details. -*/ - -/*! - \fn QMailViewerInterface::anchorClicked(const QUrl& link) - - This signal is emitted when the user presses the select key while the display has the - anchor \a link selected. -*/ - -/*! - \fn QMailViewerInterface::messageChanged(const QMailMessageId &id) - - This signal is emitted by the viewer to report that it is now viewing a different message, - identified by \a id. -*/ - -/*! - \fn QMailViewerInterface::viewMessage(const QMailMessageId &id, QMailViewerFactory::PresentationType type) - - This signal is emitted by the viewer to request a display of the message identified by \a id, - using the presentation style \a type. -*/ - -/*! - \fn QMailViewerInterface::sendMessage(QMailMessage &message) - - This signal is emitted by the viewer to send a new message, whose contents are held by \a message. -*/ - -/*! - \fn QMailViewerInterface::finished() - - This signal is emitted when the display of the current mail message is completed. This signal - is emitted only for message types that define a concept of completion, such as SMIL slideshows. -*/ - -/*! - \fn QMailViewerInterface::retrieveMessage() - - This signal is emitted by the viewer to initiate a message completion action. - This is only meaningful if the message has not yet been completely retrieved. - - \sa QMailMessage::status(), QMailRetrievalAction::retrieveMessages() -*/ - -/*! - \fn QMailViewerInterface::retrieveMessagePortion(uint bytes) - - This signal is emitted by the viewer to retrieve an additional \a bytes from the message. - This is only meaningful if the message has not yet been completely retrieved. - - \sa QMailMessage::status(), QMailRetrievalAction::retrieveMessages() -*/ - -/*! - \fn QMailViewerInterface::retrieveMessagePart(const QMailMessagePart &part) - - This signal is emitted by the viewer to initiate a message part retrieval action for \a part. -*/ - -/*! - \fn QMailViewerInterface::retrieveMessagePartPortion(const QMailMessagePart &part, uint bytes) - - This signal is emitted by the viewer to initiate a message part retrieval action for an additional \a bytes of the \a part. -*/ - -/*! - Constructs the QMailViewerInterface object with the parent widget \a parent. -*/ -QMailViewerInterface::QMailViewerInterface( QWidget *parent ) - : QObject( parent ) -{ -} - -/*! - Destructs the QMailViewerInterface object. -*/ -QMailViewerInterface::~QMailViewerInterface() -{ -} - -/*! - Scrolls the display to position the \a link within the viewable area. -*/ -void QMailViewerInterface::scrollToAnchor(const QString& link) -{ - // default implementation does nothing - Q_UNUSED(link) -} - -/*! - \fn void QMailViewerInterface::addActions(const QList<QAction*>& actions) - - Requests that the viewer add the content of \a actions to the set of available user actions. -*/ - -/*! - \fn void QMailViewerInterface::removeAction(QAction* action) - - Requests that the viewer remove \a action from the set of available user actions. -*/ - -/*! - Allows the viewer object to handle the notification of the arrival of new messages, - identified by \a list. - - Return true to indicate that the event has been handled, or false to let the caller handle - the new message event. -*/ -bool QMailViewerInterface::handleIncomingMessages( const QMailMessageIdList &list ) const -{ - // default implementation does nothing - Q_UNUSED(list) - return false; -} - -/*! - Allows the viewer object to handle the notification of the transmission of queued messages, - identified by \a list. - - Return true to indicate that the event has been handled, or false to let the caller handle - the new message event. -*/ -bool QMailViewerInterface::handleOutgoingMessages( const QMailMessageIdList &list ) const -{ - // default implementation does nothing - Q_UNUSED(list) - return false; -} - -/*! - \fn QString QMailViewerInterface::key() const - - Returns a value that uniquely identifies the viewer component. -*/ - -/*! - \fn QMailViewerFactory::PresentationType QMailViewerInterface::presentation() const - - Returns the type of message presentation that this viewer implements. -*/ - -/*! - \fn bool QMailViewerInterface::isSupported(QMailMessage::ContentType t, QMailViewerFactory::PresentationType pres) const - - Returns true if the viewer can present a message containing data of content type \a t, using the - presentation type \a pres. -*/ - -/*! - \fn QList<QMailMessage::ContentType> QMailViewerInterface::types() const - - Returns a list of the content types that can be presented by this viewer component. -*/ - -/*! - Supplies the viewer object with a resource that may be referenced by a mail message. The resource - identified as \a name will be displayed as the object \a value. -*/ -void QMailViewerInterface::setResource(const QUrl& name, QVariant value) -{ - // default implementation does nothing - Q_UNUSED(name) - Q_UNUSED(value) -} - - -/*! - \class QMailViewerFactory - \ingroup qmfutil - - \brief The QMailViewerFactory class creates objects implementing the QMailViewerInterface interface. - - The QMailViewerFactory class creates objects that are able to display mail messages, and - implement the QMailViewerInterface interface. The factory chooses an implementation - based on the type of message to be displayed. - - The QMailViewerInterface class describes the interface supported by classes that can be created - by the QMailViewerFactory class. To create a new class that can be created via the QMailViewerFactory, - implement a plug-in that derives from QMailViewerInterface. - - \sa QMailViewerInterface -*/ - -/*! - \enum QMailViewerFactory::PresentationType - - This enum defines the types of presentation that message viewer components may implement. - - \value AnyPresentation Do not specify the type of presentation to be employed. - \value StandardPresentation Present the message in the standard fashion for the relevant content type. - \value ConversationPresentation Present the message in the context of a conversation with a contact. - \value UserPresentation The first value that can be used for application-specific purposes. -*/ - -/*! - Returns a list of keys identifying classes that can display a message containing \a type content, - using the presentation type \a pres. -*/ -QStringList QMailViewerFactory::keys(QMailMessage::ContentType type, PresentationType pres) -{ - QStringList in; - - foreach (PluginMap::mapped_type plugin, pluginMap()) - if (plugin->isSupported(type, pres)) - in << plugin->key(); - - return in; -} - -/*! - Returns the key identifying the first class found that can display message containing \a type content, - using the presentation type \a pres. -*/ -QString QMailViewerFactory::defaultKey(QMailMessage::ContentType type, PresentationType pres) -{ - QStringList list(QMailViewerFactory::keys(type, pres)); - return (list.isEmpty() ? QString() : list.first()); -} - -/*! - Creates a viewer object of the class identified by \a key, setting the returned object to - have the parent widget \a parent. -*/ -QMailViewerInterface *QMailViewerFactory::create(const QString &key, QWidget *parent) -{ - Q_UNUSED(parent); - return mapping(key); -} - |
