Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[provider] Image provider from MeeGo Harmattan libs.
  • Loading branch information
locusf committed May 25, 2014
1 parent 6e8fc4d commit 4c994d0
Show file tree
Hide file tree
Showing 12 changed files with 1,868 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/controls/controls.pro
Expand Up @@ -26,14 +26,24 @@ HEADERS += \
hacks.h \
nemowindow.h \
nemopage.h \
qquickfilteringmousearea.h
qquickfilteringmousearea.h \
nemoimageprovider.h \
themedaemon/mthemedaemonprotocol.h \
themedaemon/mremotethemedaemonclient.h \
themedaemon/mlocalthemedaemonclient.h \
themedaemon/mabstractthemedaemonclient.h

SOURCES += \
qquicknemocontrolsextensionplugin.cpp \
hacks.cpp \
nemowindow.cpp \
nemopage.cpp \
qquickfilteringmousearea.cpp
qquickfilteringmousearea.cpp \
nemoimageprovider.cpp \
themedaemon/mthemedaemonprotocol.cpp \
themedaemon/mremotethemedaemonclient.cpp \
themedaemon/mlocalthemedaemonclient.cpp \
themedaemon/mabstractthemedaemonclient.cpp

target.path = $$[QT_INSTALL_QML]/$$PLUGIN_IMPORT_PATH

Expand Down
7 changes: 7 additions & 0 deletions src/controls/nemoimageprovider.cpp
@@ -0,0 +1,7 @@
#include "nemoimageprovider.h"

QImage NemoImageProvider::requestImage(QString &id, QSize *size, QSize &requestedSize)
{
qDebug() << Q_FUNC_INFO << "requestImage:: ";
return m_client->readImage(id);
}
20 changes: 20 additions & 0 deletions src/controls/nemoimageprovider.h
@@ -0,0 +1,20 @@
#ifndef NEMOIMAGEPROVIDER_H
#define NEMOIMAGEPROVIDER_H

#include <QQuickImageProvider>
#include <QDebug>
#include "themedaemon/mlocalthemedaemonclient.h"

class NemoImageProvider : public QQuickImageProvider
{
public:
NemoImageProvider() : QQuickImageProvider(QQuickImageProvider::Image),
m_client(new MLocalThemeDaemonClient())
{
}
virtual QImage requestImage(QString &id, QSize *size, QSize &requestedSize);
private:
MLocalThemeDaemonClient* m_client;
};

#endif // NEMOIMAGEPROVIDER_H
2 changes: 2 additions & 0 deletions src/controls/qquicknemocontrolsextensionplugin.cpp
Expand Up @@ -24,6 +24,7 @@
#include "nemowindow.h"
#include "nemopage.h"
#include "qquickfilteringmousearea.h"
#include "nemoimageprovider.h"

QQuickNemoControlsExtensionPlugin::QQuickNemoControlsExtensionPlugin(QObject *parent) :
QQmlExtensionPlugin(parent)
Expand All @@ -48,5 +49,6 @@ void QQuickNemoControlsExtensionPlugin::registerTypes(const char *uri)
void QQuickNemoControlsExtensionPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
{
QQmlExtensionPlugin::initializeEngine(engine,uri);
engine->addImageProvider(QLatin1String("theme"), new NemoImageProvider);
}

49 changes: 49 additions & 0 deletions src/controls/themedaemon/mabstractthemedaemonclient.cpp
@@ -0,0 +1,49 @@
/****************************************************************************
**
** Copyright (C) 2013 Jolla Ltd.
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** This file is part of the Qt Components project.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/

#include "mabstractthemedaemonclient.h"

MAbstractThemeDaemonClient::MAbstractThemeDaemonClient(QObject *parent) :
QObject(parent)
{
}

MAbstractThemeDaemonClient::~MAbstractThemeDaemonClient()
{
}
67 changes: 67 additions & 0 deletions src/controls/themedaemon/mabstractthemedaemonclient.h
@@ -0,0 +1,67 @@
/****************************************************************************
**
** Copyright (C) 2013 Jolla Ltd.
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
**
** This file is part of the Qt Components project.
**
** $QT_BEGIN_LICENSE:BSD$
** You may use this file under the terms of the BSD license as follows:
**
** "Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are
** met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in
** the documentation and/or other materials provided with the
** distribution.
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
** the names of its contributors may be used to endorse or promote
** products derived from this software without specific prior written
** permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
** $QT_END_LICENSE$
**
****************************************************************************/

#ifndef MABSTRACTTHEMEDAEMONCLIENT_H
#define MABSTRACTTHEMEDAEMONCLIENT_H

#include <QObject>
#include <QPixmap>

/**
* \brief Interface for a client to request pixmaps from the themedaemon server.
*/
class MAbstractThemeDaemonClient : public QObject
{
Q_OBJECT

public:
MAbstractThemeDaemonClient(QObject *parent = 0);
virtual ~MAbstractThemeDaemonClient();

/**
* \param id Identifier of the pixmap.
* \param requestedSize Requested size of the pixmap. If the size is invalid,
* the returned pixmap will have the original size. Otherwise
* the pixmap gets scaled to the requested size.
*/
virtual QPixmap requestPixmap(const QString &id, const QSize &requestedSize) = 0;
};

#endif

0 comments on commit 4c994d0

Please sign in to comment.