Adding the declarative imports
[harmattan/cameraplus] / imports / previewprovider.cpp
1 #include "previewprovider.h"
2
3 PreviewProvider *PreviewProvider::m_instance = 0;
4
5 PreviewProvider::PreviewProvider() :
6   QDeclarativeImageProvider(QDeclarativeImageProvider::Image) {
7
8   m_instance = this;
9 }
10
11 PreviewProvider::~PreviewProvider() {
12   m_instance = 0;
13 }
14
15 QImage PreviewProvider::requestImage(const QString& id, QSize *size, const QSize& requestedSize) {
16   QMutexLocker lock(&m_mutex);
17
18   QImage res = m_image;
19
20   if (!requestedSize.isEmpty()) {
21     res = res.scaled(requestedSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
22   }
23
24   if (size) {
25     *size = res.size();
26   }
27
28   return res;
29
30 }
31
32 void PreviewProvider::setPreview(const QImage& preview) {
33   QMutexLocker lock(&m_mutex);
34
35   m_image = preview;
36 }
37
38 PreviewProvider *PreviewProvider::instance() {
39   return m_instance;
40 }