1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 ** Copyright (c) 2010 Denis Mingulov.
8 ** Contact: Nokia Corporation (info@qt.nokia.com)
11 ** GNU Lesser General Public License Usage
13 ** This file may be used under the terms of the GNU Lesser General Public
14 ** License version 2.1 as published by the Free Software Foundation and
15 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
16 ** Please review the following information to ensure the GNU Lesser General
17 ** Public License version 2.1 requirements will be met:
18 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
20 ** In addition, as a special exception, Nokia gives you certain additional
21 ** rights. These rights are described in the Nokia Qt LGPL Exception
22 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
26 ** Alternatively, this file may be used in accordance with the terms and
27 ** conditions contained in a signed written agreement between you and Nokia.
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
32 **************************************************************************/
34 #include "imageviewerfactory.h"
35 #include "imagevieweractionhandler.h"
36 #include "imageviewerconstants.h"
37 #include "imageviewer.h"
39 #include <QtCore/QMap>
40 #include <QtGui/QImageReader>
41 #include <QtCore/QtDebug>
43 namespace ImageViewer {
46 struct ImageViewerFactoryPrivate
48 QStringList mimeTypes;
49 QPointer<ImageViewerActionHandler> actionHandler;
52 ImageViewerFactory::ImageViewerFactory(QObject *parent) :
53 Core::IEditorFactory(parent),
54 d_ptr(new ImageViewerFactoryPrivate)
56 d_ptr->actionHandler = new ImageViewerActionHandler(this);
58 QMap<QByteArray, QString> possibleMimeTypes;
59 possibleMimeTypes.insert("bmp", QLatin1String("image/bmp"));
60 possibleMimeTypes.insert("gif", QLatin1String("image/gif"));
61 possibleMimeTypes.insert("ico", QLatin1String("image/x-icon"));
62 possibleMimeTypes.insert("jpeg", QLatin1String("image/jpeg"));
63 possibleMimeTypes.insert("jpg", QLatin1String("image/jpeg"));
64 possibleMimeTypes.insert("mng", QLatin1String("video/x-mng"));
65 possibleMimeTypes.insert("pbm", QLatin1String("image/x-portable-bitmap"));
66 possibleMimeTypes.insert("pgm", QLatin1String("image/x-portable-graymap"));
67 possibleMimeTypes.insert("png", QLatin1String("image/png"));
68 possibleMimeTypes.insert("ppm", QLatin1String("image/x-portable-pixmap"));
69 possibleMimeTypes.insert("svg", QLatin1String("image/svg+xml"));
70 possibleMimeTypes.insert("tif", QLatin1String("image/tiff"));
71 possibleMimeTypes.insert("tiff", QLatin1String("image/tiff"));
72 possibleMimeTypes.insert("xbm", QLatin1String("image/xbm"));
73 possibleMimeTypes.insert("xpm", QLatin1String("image/xpm"));
75 QList<QByteArray> supportedFormats = QImageReader::supportedImageFormats();
76 foreach (const QByteArray &format, supportedFormats) {
77 const QString &value = possibleMimeTypes.value(format);
79 d_ptr->mimeTypes.append(value);
83 ImageViewerFactory::~ImageViewerFactory()
87 Core::IEditor *ImageViewerFactory::createEditor(QWidget *parent)
89 return new ImageViewer(parent);
92 QStringList ImageViewerFactory::mimeTypes() const
94 return d_ptr->mimeTypes;
97 QString ImageViewerFactory::id() const
99 return QLatin1String(Constants::IMAGEVIEWER_ID);
102 QString ImageViewerFactory::displayName() const
104 return tr(Constants::IMAGEVIEWER_DISPLAY_NAME);
107 Core::IFile *ImageViewerFactory::open(const QString & /*fileName*/)
112 void ImageViewerFactory::extensionsInitialized()
114 d_ptr->actionHandler->createActions();
117 } // namespace Internal
118 } // namespace ImageViewer