28 : mNbrEffectRunning( 0 ), |
28 : mNbrEffectRunning( 0 ), |
29 mEffectPlugin( NULL ), |
29 mEffectPlugin( NULL ), |
30 mTransitionEffect( NO_EFFECT ), |
30 mTransitionEffect( NO_EFFECT ), |
31 mEffectResolver( NULL ) |
31 mEffectResolver( NULL ) |
32 { |
32 { |
33 qDebug("GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()"); |
33 qDebug( "GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()" ); |
34 mTransitionEffectList.clear(); |
34 mTransitionEffectList.clear(); |
35 } |
35 } |
36 |
36 |
37 GlxEffectEngine::~GlxEffectEngine() |
37 GlxEffectEngine::~GlxEffectEngine() |
38 { |
38 { |
39 qDebug("GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()"); |
39 qDebug( "GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()" ); |
40 delete mEffectResolver; |
40 delete mEffectResolver; |
41 mEffectResolver = NULL; |
41 mEffectResolver = NULL; |
42 |
42 |
43 cleanTransitionEfffect(); |
43 cleanTransitionEfffect(); |
44 } |
44 } |
45 |
45 |
46 void GlxEffectEngine::registerEffect(const QString &itemType) |
46 void GlxEffectEngine::registerEffect( const QString &itemType ) |
47 { |
47 { |
48 GlxSettingInterface *settingObj = GlxSettingInterface::instance(); // NO ownership |
48 GlxSettingInterface *settingObj = GlxSettingInterface::instance(); // NO ownership |
49 if ( mEffectResolver == NULL ) { |
49 if ( mEffectResolver == NULL ) { |
50 mEffectResolver = new GlxEffectPluginResolver(); |
50 mEffectResolver = new GlxEffectPluginResolver(); |
51 } |
51 } |
52 /* read the selected effect through the centrep and get the effect plugin object through effect plugin resolver*/ |
52 /* read the selected effect through the centrep and get the effect plugin object through effect plugin resolver*/ |
53 mEffectPlugin = mEffectResolver->effectPlugin( settingObj->slideShowEffectId( settingObj->slideShowEffectIndex ( ) ) ); //No ownership |
53 mEffectPlugin = mEffectResolver->effectPlugin( settingObj->slideShowEffectId( settingObj->slideShowEffectIndex ( ) ) ); //No ownership |
54 |
54 |
55 QList <QString > effectPathList = mEffectPlugin->effectFileList(); |
55 QList <QString > effectPathList = mEffectPlugin->effectFileList(); |
56 |
56 |
57 qDebug("GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16()); |
57 qDebug( "GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16() ); |
58 for ( int i = 0; i < effectPathList.count() ; ++i ) { |
58 for ( int i = 0; i < effectPathList.count() ; ++i ) { |
59 HbEffect::add(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i)); |
59 HbEffect::add( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) ); |
60 } |
60 } |
61 } |
61 } |
62 |
62 |
63 void GlxEffectEngine::deRegisterEffect(const QString &itemType) |
63 void GlxEffectEngine::deRegisterEffect( const QString &itemType ) |
64 { |
64 { |
65 qDebug("GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16()); |
65 qDebug( "GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16() ); |
66 QList <QString > effectPathList = mEffectPlugin->effectFileList(); |
66 QList <QString > effectPathList = mEffectPlugin->effectFileList(); |
67 for ( int i = 0; i < effectPathList.count() ; ++i ) { |
67 for ( int i = 0; i < effectPathList.count() ; ++i ) { |
68 HbEffect::remove(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i)); |
68 HbEffect::remove( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) ); |
69 } |
69 } |
70 mEffectPlugin = NULL; |
70 mEffectPlugin = NULL; |
71 } |
71 } |
72 |
72 |
73 void GlxEffectEngine::registerTransitionEffect() |
73 void GlxEffectEngine::registerTransitionEffect() |
74 { |
74 { |
75 qDebug("GlxSlideShowEffectEngine::registerTransitionEffect()"); |
75 qDebug( "GlxSlideShowEffectEngine::registerTransitionEffect()" ); |
76 initTransitionEffect(); |
76 initTransitionEffect(); |
77 } |
77 } |
78 |
78 |
79 void GlxEffectEngine::deregistertransitionEffect() |
79 void GlxEffectEngine::deregistertransitionEffect() |
80 { |
80 { |
81 qDebug("GlxSlideShowEffectEngine::deregisterTransitionEffect()"); |
81 qDebug( "GlxSlideShowEffectEngine::deregisterTransitionEffect()" ); |
82 cleanTransitionEfffect(); |
82 cleanTransitionEfffect(); |
83 } |
83 } |
84 |
84 |
85 void GlxEffectEngine::runEffect(QGraphicsItem * item, const QString & itemType ) |
85 void GlxEffectEngine::runEffect( QGraphicsItem * item, const QString & itemType ) |
86 { |
86 { |
87 qDebug("GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16()); |
87 qDebug( "GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16() ); |
88 HbEffect::start(item, itemType, QString( "Click1" ), this, "slideShowEffectFinished"); |
88 HbEffect::start( item, itemType, QString( "Click1" ), this, "slideShowEffectFinished" ); |
89 ++mNbrEffectRunning; |
89 ++mNbrEffectRunning; |
90 } |
90 } |
91 |
91 |
92 void GlxEffectEngine::runEffect(QList< QGraphicsItem * > & items, const QString & itemType ) |
92 void GlxEffectEngine::runEffect( QList< QGraphicsItem * > & items, const QString & itemType ) |
93 { |
93 { |
94 qDebug("GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16()); |
94 qDebug( "GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16() ); |
95 mEffectPlugin->setUpItems(items); |
95 mEffectPlugin->setUpItems(items); |
96 for ( int i = 0; i < items.count() ; ++i ) { |
96 for ( int i = 0; i < items.count() ; ++i ) { |
97 if ( mEffectPlugin->isAnimationLater(i) == FALSE ) { |
97 if ( mEffectPlugin->isAnimationLater( i ) == FALSE ) { |
98 HbEffect::start(items.at(i), itemType, QString( "Click%1").arg(i), this, "slideShowEffectFinished"); |
98 HbEffect::start( items.at( i ), itemType, QString( "Click%1" ).arg( i ), this, "slideShowEffectFinished" ); |
99 } |
99 } |
100 ++mNbrEffectRunning; |
100 ++mNbrEffectRunning; |
101 } |
101 } |
102 } |
102 } |
103 |
103 |
104 void GlxEffectEngine::runEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect) |
104 void GlxEffectEngine::runEffect( QList< QGraphicsItem * > & items, GlxEffect transitionEffect ) |
105 { |
105 { |
106 qDebug("GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect); |
106 qDebug( "GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect ); |
107 |
107 |
108 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); |
108 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); |
109 |
109 |
110 if ( effectSetting == NULL || items.count() != effectSetting->count() ) { |
110 if ( effectSetting == NULL || items.count() != effectSetting->count() ) { |
111 return; |
111 return; |
114 mTransitionEffect = transitionEffect; |
114 mTransitionEffect = transitionEffect; |
115 for ( int i = 0; i < effectSetting->count() ; ++i) { |
115 for ( int i = 0; i < effectSetting->count() ; ++i) { |
116 ++mNbrEffectRunning; |
116 ++mNbrEffectRunning; |
117 if ( ( i == effectSetting->count() -1) && effectSetting->isTransitionLater() ) |
117 if ( ( i == effectSetting->count() -1) && effectSetting->isTransitionLater() ) |
118 { |
118 { |
119 effectSetting->setAnimationItem( items.at(i) ); |
119 effectSetting->setAnimationItem( items.at( i ) ); |
120 items.at(i)->hide(); |
120 items.at( i )->hide(); |
121 } |
121 } |
122 else { |
122 else { |
123 HbEffect::start(items.at(i), effectSetting->itemType().at(i), effectSetting->eventType().at(i), this, "transitionEffectFinished"); |
123 HbEffect::start( items.at( i ), effectSetting->itemType().at( i ), effectSetting->eventType().at( i ), this, "transitionEffectFinished" ); |
124 } |
124 } |
125 } |
125 } |
126 } |
126 } |
127 |
127 |
128 void GlxEffectEngine::cancelEffect(QGraphicsItem * item) |
128 void GlxEffectEngine::cancelEffect( QGraphicsItem * item ) |
129 { |
129 { |
130 if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { |
130 if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { |
131 HbEffect::cancel( item, QString( "Click1" ) ); |
131 HbEffect::cancel( item, QString( "Click1" ) ); |
132 } |
132 } |
133 } |
133 } |
134 |
134 |
135 void GlxEffectEngine::cancelEffect(const QList< QGraphicsItem * > & items) |
135 void GlxEffectEngine::cancelEffect( const QList< QGraphicsItem * > & items ) |
136 { |
136 { |
137 for ( int i = 0; i < items.count() ; ++i ) { |
137 for ( int i = 0; i < items.count() ; ++i ) { |
138 if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) { |
138 if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) { |
139 HbEffect::cancel( items.at(i), QString( "Click%1").arg(i) ); |
139 HbEffect::cancel( items.at( i ), QString( "Click%1" ).arg( i ) ); |
140 } |
140 } |
141 } |
141 } |
142 } |
142 } |
143 |
143 |
144 void GlxEffectEngine::cancelEffect(QList< QGraphicsItem * > & items, GlxEffect transitionEffect) |
144 void GlxEffectEngine::cancelEffect( QList< QGraphicsItem * > & items, GlxEffect transitionEffect ) |
145 { |
145 { |
146 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); |
146 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect ); |
147 |
147 |
148 if ( effectSetting == NULL || items.count() != effectSetting->count() ) { |
148 if ( effectSetting == NULL || items.count() != effectSetting->count() ) { |
149 return; |
149 return; |
150 } |
150 } |
151 |
151 |
152 for ( int i = 0; i < effectSetting->count() ; ++i) { |
152 for ( int i = 0; i < effectSetting->count() ; ++i) { |
153 HbEffect::cancel(items.at(i), effectSetting->eventType().at(i) ); |
153 HbEffect::cancel(items.at( i ), effectSetting->eventType().at( i ) ); |
154 } |
154 } |
155 } |
155 } |
156 |
156 |
157 bool GlxEffectEngine::isEffectRuning(QGraphicsItem * item) |
157 bool GlxEffectEngine::isEffectRuning( QGraphicsItem * item ) |
158 { |
158 { |
159 if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { |
159 if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) { |
160 return true; |
160 return true; |
161 } |
161 } |
162 return false; |
162 return false; |
163 } |
163 } |
164 |
164 |
165 bool GlxEffectEngine::isEffectRuning(const QList< QGraphicsItem * > & items) |
165 bool GlxEffectEngine::isEffectRuning( const QList< QGraphicsItem * > & items ) |
166 { |
166 { |
167 for ( int i = 0; i < items.count() ; ++i ) { |
167 for ( int i = 0; i < items.count() ; ++i ) { |
168 if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) { |
168 if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) { |
169 return true; |
169 return true; |
170 } |
170 } |
171 } |
171 } |
172 return false; |
172 return false; |
173 } |
173 } |
174 |
174 |
175 void GlxEffectEngine::slideShowEffectFinished( const HbEffect::EffectStatus &status ) |
175 void GlxEffectEngine::slideShowEffectFinished( const HbEffect::EffectStatus &status ) |
176 { |
176 { |
177 Q_UNUSED( status ) |
177 Q_UNUSED( status ) |
178 qDebug("GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning); |
178 qDebug( "GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning); |
179 |
179 |
180 --mNbrEffectRunning; |
180 --mNbrEffectRunning; |
181 |
181 |
182 if ( mEffectPlugin->isAnimationLater( mNbrEffectRunning) ) { |
182 if ( mEffectPlugin->isAnimationLater( mNbrEffectRunning) ) { |
183 HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1").arg(mNbrEffectRunning), this, "slideShowEffectFinished"); |
183 HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1" ).arg(mNbrEffectRunning), this, "slideShowEffectFinished" ); |
184 } |
184 } |
185 |
185 |
186 if (mNbrEffectRunning == 0) { |
186 if (mNbrEffectRunning == 0) { |
187 emit effectFinished(); |
187 emit effectFinished(); |
188 } |
188 } |
189 } |
189 } |
190 |
190 |
191 void GlxEffectEngine::transitionEffectFinished( const HbEffect::EffectStatus &status ) |
191 void GlxEffectEngine::transitionEffectFinished( const HbEffect::EffectStatus &status ) |
192 { |
192 { |
193 Q_UNUSED( status ) |
193 Q_UNUSED( status ) |
194 qDebug("GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason); |
194 qDebug( "GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason); |
195 |
195 |
196 --mNbrEffectRunning; |
196 --mNbrEffectRunning; |
197 if ( mNbrEffectRunning == 1 ) { |
197 if ( mNbrEffectRunning == 1 ) { |
198 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( mTransitionEffect ); |
198 GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( mTransitionEffect ); |
199 if ( effectSetting->isTransitionLater() ){ |
199 if ( effectSetting->isTransitionLater() ){ |
200 effectSetting->animationItem()->show(); |
200 effectSetting->animationItem()->show(); |
201 HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at(1), effectSetting->eventType().at(1), this, "transitionEffectFinished"); |
201 HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at( 1 ), effectSetting->eventType().at( 1 ), this, "transitionEffectFinished" ); |
202 mTransitionEffect = NO_EFFECT; |
202 mTransitionEffect = NO_EFFECT; |
203 } |
203 } |
204 } |
204 } |
205 |
205 |
206 if (mNbrEffectRunning == 0) { |
206 if (mNbrEffectRunning == 0) { |
210 |
210 |
211 void GlxEffectEngine::initTransitionEffect() |
211 void GlxEffectEngine::initTransitionEffect() |
212 { |
212 { |
213 GlxTransitionEffectSetting *effectSetting = NULL; |
213 GlxTransitionEffectSetting *effectSetting = NULL; |
214 |
214 |
215 effectSetting = new GlxTransitionEffectSetting(GRID_TO_FULLSCREEN); |
215 effectSetting = new GlxTransitionEffectSetting( GRID_TO_FULLSCREEN ); |
216 for ( int i = 0; i < effectSetting->count(); ++i ) { |
216 for ( int i = 0; i < effectSetting->count(); ++i ) { |
217 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
217 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
218 } |
218 } |
219 mTransitionEffectList[GRID_TO_FULLSCREEN] = effectSetting; |
219 mTransitionEffectList[ GRID_TO_FULLSCREEN ] = effectSetting; |
220 |
220 |
221 effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID ); |
221 effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID ); |
222 for ( int i = 0; i < effectSetting->count(); ++i ) { |
222 for ( int i = 0; i < effectSetting->count(); ++i ) { |
223 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
223 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
224 } |
224 } |
225 mTransitionEffectList[FULLSCREEN_TO_GRID] = effectSetting; |
225 mTransitionEffectList[ FULLSCREEN_TO_GRID ] = effectSetting; |
|
226 |
|
227 effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID_PORTRAIT ); |
|
228 for ( int i = 0; i < effectSetting->count(); ++i ) { |
|
229 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
|
230 } |
|
231 mTransitionEffectList[ FULLSCREEN_TO_GRID_PORTRAIT ] = effectSetting; |
226 |
232 |
227 effectSetting = new GlxTransitionEffectSetting( GRID_TO_ALBUMLIST ); |
233 effectSetting = new GlxTransitionEffectSetting( GRID_TO_ALBUMLIST ); |
228 for ( int i = 0; i < effectSetting->count(); ++i ) { |
234 for ( int i = 0; i < effectSetting->count(); ++i ) { |
229 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
235 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
230 } |
236 } |
231 mTransitionEffectList[GRID_TO_ALBUMLIST] = effectSetting; |
237 mTransitionEffectList[ GRID_TO_ALBUMLIST ] = effectSetting; |
232 |
238 |
233 effectSetting = new GlxTransitionEffectSetting( ALBUMLIST_TO_GRID ); |
239 effectSetting = new GlxTransitionEffectSetting( ALBUMLIST_TO_GRID ); |
234 for ( int i = 0; i < effectSetting->count(); ++i ) { |
240 for ( int i = 0; i < effectSetting->count(); ++i ) { |
235 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
241 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
236 } |
242 } |
237 mTransitionEffectList[ALBUMLIST_TO_GRID] = effectSetting; |
243 mTransitionEffectList[ ALBUMLIST_TO_GRID ] = effectSetting; |
238 |
244 |
239 effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_DETAIL ); |
245 effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_DETAIL ); |
240 for ( int i = 0; i < effectSetting->count(); ++i ) { |
246 for ( int i = 0; i < effectSetting->count(); ++i ) { |
241 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
247 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
242 } |
248 } |
243 mTransitionEffectList[FULLSCREEN_TO_DETAIL] = effectSetting; |
249 mTransitionEffectList[ FULLSCREEN_TO_DETAIL ] = effectSetting; |
244 |
250 |
245 effectSetting = new GlxTransitionEffectSetting( DETAIL_TO_FULLSCREEN ); |
251 effectSetting = new GlxTransitionEffectSetting( DETAIL_TO_FULLSCREEN ); |
246 for ( int i = 0; i < effectSetting->count(); ++i ) { |
252 for ( int i = 0; i < effectSetting->count(); ++i ) { |
247 HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ; |
253 HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ; |
248 } |
254 } |
249 mTransitionEffectList[DETAIL_TO_FULLSCREEN] = effectSetting; |
255 mTransitionEffectList[ DETAIL_TO_FULLSCREEN ] = effectSetting; |
250 } |
256 } |
251 |
257 |
252 void GlxEffectEngine::cleanTransitionEfffect() |
258 void GlxEffectEngine::cleanTransitionEfffect() |
253 { |
259 { |
254 qDebug("GlxSlideShowEffectEngine::cleanTrnastionEfffect()"); |
260 qDebug( "GlxSlideShowEffectEngine::cleanTrnastionEfffect()" ); |
255 |
261 |
256 QHashIterator<GlxEffect, GlxTransitionEffectSetting *> iter( mTransitionEffectList ); |
262 QHashIterator<GlxEffect, GlxTransitionEffectSetting *> iter( mTransitionEffectList ); |
257 |
263 |
258 while ( iter.hasNext() ) { |
264 while ( iter.hasNext() ) { |
259 iter.next(); |
265 iter.next(); |
260 GlxTransitionEffectSetting *list = iter.value(); |
266 GlxTransitionEffectSetting *list = iter.value(); |
261 for ( int i = 0; i < list->count(); ++i ) { |
267 for ( int i = 0; i < list->count(); ++i ) { |
262 HbEffect::remove( list->itemType().at(i), list->effectFileList().at(i), list->eventType().at(i)) ; |
268 HbEffect::remove( list->itemType().at( i ), list->effectFileList().at( i ), list->eventType().at( i ) ) ; |
263 } |
269 } |
264 delete list; |
270 delete list; |
265 } |
271 } |
266 mTransitionEffectList.clear(); |
272 mTransitionEffectList.clear(); |
267 } |
273 } |