Removing unnecessary chunking and stat'ing when reading QIODevice
[qt-netbsd.git] / demos / qtdemo / score.cpp
blob45e6afafb6e49d5409e6091d3a3c4b624c05606e
1 /****************************************************************************
2 **
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the demonstration applications of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #include "score.h"
43 #include "colors.h"
44 #include "demoitem.h"
46 Score::Score()
50 Score::~Score()
52 // NB! Deleting all movies.
53 qDeleteAll(this->index);
56 void Score::prepare(Movie *movie, RUN_MODE runMode, LOCK_MODE lockMode)
58 if (lockMode == LOCK_ITEMS){
59 for (int i=0; i<movie->size(); ++i){
60 if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
61 continue;
62 movie->at(i)->lockItem(true);
63 movie->at(i)->prepare();
66 else if (lockMode == UNLOCK_ITEMS){
67 for (int i=0; i<movie->size(); ++i){
68 if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
69 continue;
70 movie->at(i)->lockItem(false);
71 movie->at(i)->prepare();
74 else {
75 for (int i=0; i<movie->size(); ++i){
76 if (runMode == ONLY_IF_VISIBLE && !movie->at(i)->demoItem()->isVisible())
77 continue;
78 movie->at(i)->prepare();
83 void Score::play(Movie *movie, RUN_MODE runMode)
85 if (runMode == NEW_ANIMATION_ONLY){
86 for (int i=0; i<movie->size(); ++i)
87 if (movie->at(i)->notOwnerOfItem())
88 movie->at(i)->play(true);
90 else if (runMode == ONLY_IF_VISIBLE){
91 for (int i=0; i<movie->size(); ++i)
92 if (movie->at(i)->demoItem()->isVisible())
93 movie->at(i)->play(runMode == FROM_START);
95 else {
96 for (int i=0; i<movie->size(); ++i)
97 movie->at(i)->play(runMode == FROM_START);
101 void Score::playMovie(const QString &indexName, RUN_MODE runMode, LOCK_MODE lockMode)
103 MovieIndex::iterator movieIterator = this->index.find(indexName);
104 if (movieIterator == this->index.end())
105 return;
107 Movie *movie = *movieIterator;
108 this->prepare(movie, runMode, lockMode);
109 this->play(movie, runMode);
112 void Score::queueMovie(const QString &indexName, RUN_MODE runMode, LOCK_MODE lockMode)
114 MovieIndex::iterator movieIterator = this->index.find(indexName);
115 if (movieIterator == this->index.end()){
116 if (Colors::verbose)
117 qDebug() << "Queuing movie:" << indexName << "(does not exist)";
118 return;
121 Movie *movie = *movieIterator;
122 this->prepare(movie, runMode, lockMode);
123 this->playList.append(PlayListMember(movie, int(runMode)));
124 if (Colors::verbose)
125 qDebug() << "Queuing movie:" << indexName;
128 void Score::playQue()
130 int movieCount = this->playList.size();
131 for (int i=0; i<movieCount; i++)
132 this->play(this->playList.at(i).movie, RUN_MODE(this->playList.at(i).runMode));
133 this->playList.clear();
134 if (Colors::verbose)
135 qDebug() << "********* Playing que *********";
138 void Score::insertMovie(const QString &indexName, Movie *movie)
140 this->index.insert(indexName, movie);
143 Movie *Score::insertMovie(const QString &indexName)
145 Movie *movie = new Movie();
146 insertMovie(indexName, movie);
147 return movie;