An error occurred while loading the file. Please try again.
-
John Koleszar authored
Seperate parsing functions so they can be reused for other diff utilities Change-Id: I1ea6ebf90ded128eec116cc1f326a28bdda2fb77
a7be7c87
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCanvas3D module of the Qt Toolkit.
**
** $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 3 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPLv3 included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 3 requirements
** will be met: https://www.gnu.org/licenses/lgpl.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or later 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 2.0 requirements will be
** met: http://www.gnu.org/licenses/gpl-2.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "teximage3d_p.h"
#include "canvas3dcommon_p.h"
#include <QJSValueIterator>
/*!
* \qmltype TextureImage
* \since QtCanvas3D 1.0
* \ingroup qtcanvas3d-qml-types
* \brief Contains a texture image.
*
* An uncreatable QML type that contains a texture image created by calling
* TextureImageLoader::loadImage().
*
* \sa TextureImageLoader
*/
/*!
* \internal
*/
CanvasTextureImage::CanvasTextureImage(QObject *parent) :
CanvasAbstractObject(parent),
m_requestId(0),
m_state(INITIALIZED),
m_errorString(""),
m_pixelCache(0),
m_pixelCacheFormat(CanvasContext::NONE),
m_pixelCacheFlipY(false)
{
m_networkAccessManager = new QNetworkAccessManager(this);
QObject::connect(m_networkAccessManager, &QNetworkAccessManager::finished,
this, &CanvasTextureImage::handleReply);
}
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
/*!
* \internal
*/
CanvasTextureImage::~CanvasTextureImage()
{
delete m_networkAccessManager;
delete m_pixelCache;
}
/*!
* \qmlproperty url TextureImage::source()
* Contains the url to the image.
*/
/*!
* \internal
*/
const QUrl &CanvasTextureImage::source() const
{
return m_source;
}
/*!
* \internal
*/
void CanvasTextureImage::setSource(const QUrl &url)
{
if (url == m_source)
return;
m_source = url;
emit sourceChanged(m_source);
load();
}
/*!
* \qmlmethod int TextureImage::id()
* Contains the object id.
*/
/*!
* \internal
*/
ulong CanvasTextureImage::id()
{
return ulong(this);
}
/*!
* \internal
*/
void CanvasTextureImage::load()
{
if (m_source.isEmpty()) {
QByteArray array;
m_image.loadFromData(array);
m_glImage = m_image.convertToFormat(QImage::Format_RGBA8888);
setImageState(LOADING_FINISHED);
return;
}
if (m_state == LOADING)
return;
setImageState(LOADING);
QNetworkRequest request(m_source);
m_networkAccessManager->get(request);
}
/*!
* \qmlproperty string TextureImage::errorString()