diff options
Diffstat (limited to 'demos/qt3d/photobrowser3d/imagemanager.cpp')
-rw-r--r-- | demos/qt3d/photobrowser3d/imagemanager.cpp | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/demos/qt3d/photobrowser3d/imagemanager.cpp b/demos/qt3d/photobrowser3d/imagemanager.cpp deleted file mode 100644 index 6f2ec5bc..00000000 --- a/demos/qt3d/photobrowser3d/imagemanager.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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, Nokia gives you certain additional -** rights. These rights are described in the Nokia 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "imagemanager.h" -#include "qatlas.h" -#include "filescanner.h" -#include "threadpool.h" - -#include <QTime> -#include <QTimer> -#include <QDir> - -ImageManager::ImageManager() -{ -} - -ImageManager::~ImageManager() -{ -} - -// INVARIANT: only ever called before the run() function is started -// therefore no need for synchronized url -void ImageManager::setImageBaseUrl(const QUrl &url) -{ - Q_ASSERT(!isRunning()); - m_url = url; -} - -/*! - Stop the running threads if any, then sit waiting in the event loop - for a quit call. -*/ -void ImageManager::stop() -{ - emit stopAll(); -} - -void ImageManager::scanForFiles() -{ - // TODO: In a real app there would be a way to detect new files arriving - // and trigger a rescan to pick these new files up. Here we just scan - // once and then destroy the scanner, to save on resources. - -#ifndef QT_USE_TEST_IMAGES - // TODO: If the amount of files is large and the app is quit early the - // scanner could still be going when the threadpool quits. For now - // assume its ok... - FileScanner *scanner = new FileScanner; - scanner->setBaseUrl(m_url); - connect(scanner, SIGNAL(imageUrl(QUrl)), this, SIGNAL(imageUrl(QUrl))); - connect(scanner, SIGNAL(finished()), scanner, SLOT(deleteLater())); - connect(this, SIGNAL(stopAll()), scanner, SLOT(stop())); - scanner->start(); -#else - QDir testImages(":/pictures"); - QStringList pics = testImages.entryList(); - for (int i = 0; i < pics.size(); ++i) - { - QUrl url; - url.setScheme("file"); - url.setPath(testImages.filePath(pics.at(i))); - emit imageUrl(url); - } - qDebug() << "== test images loaded =="; -#endif -} - -void ImageManager::quit() -{ - QThread::quit(); -} - -void ImageManager::run() -{ - if (m_url.scheme() != "file") - { - qWarning("URL scheme %s not yet supported", qPrintable(m_url.scheme())); - return; - } - - // execute once in the event loop below - QTimer::singleShot(0, this, SLOT(scanForFiles())); - -#ifndef QT_NO_THREADED_FILE_LOAD - ThreadPool pool; - - connect(this, SIGNAL(deployLoader(ThumbnailableImage)), - &pool, SLOT(deployLoader(ThumbnailableImage))); - - connect(this, SIGNAL(stopAll()), &pool, SLOT(stop())); - connect(&pool, SIGNAL(stopped()), this, SLOT(quit())); -#endif - - exec(); -} |