79 |
79 |
80 // --------------------------------------------------------- |
80 // --------------------------------------------------------- |
81 // CMenuEngObject::CMenuEngObject |
81 // CMenuEngObject::CMenuEngObject |
82 // --------------------------------------------------------- |
82 // --------------------------------------------------------- |
83 // |
83 // |
84 CMenuEngObject::CMenuEngObject( CMenuEng& aEng ): iEng( aEng ), iNative( ETrue ) |
84 CMenuEngObject::CMenuEngObject( CMenuEng& aEng ): iEng( aEng ), |
|
85 iAppType( ENoTypeApp ) |
85 { |
86 { |
86 } |
87 } |
87 |
88 |
88 // --------------------------------------------------------- |
89 // --------------------------------------------------------- |
89 // CMenuEngObject::ConstructL |
90 // CMenuEngObject::ConstructL |
141 |
142 |
142 // --------------------------------------------------------- |
143 // --------------------------------------------------------- |
143 // CMenuEngObject::ParseHiddenFoldersL |
144 // CMenuEngObject::ParseHiddenFoldersL |
144 // --------------------------------------------------------- |
145 // --------------------------------------------------------- |
145 // |
146 // |
146 void CMenuEngObject::ParseHiddenFoldersL( |
147 void CMenuEngObject::ParseHiddenFoldersL( |
147 const TDesC& aHiddenFolders, |
148 const TDesC& aHiddenFolders, |
148 RArray<TPtrC>& aHiddenFoldersArray ) const |
149 RArray<TPtrC>& aHiddenFoldersArray ) const |
149 { |
150 { |
150 TLex input( aHiddenFolders ); |
151 TLex input( aHiddenFolders ); |
151 TLexMark startMark; |
152 TLexMark startMark; |
152 input.Mark( startMark ); |
153 input.Mark( startMark ); |
153 TBool notEmpty = EFalse; |
154 TBool notEmpty = EFalse; |
154 while ( !input.Eos() ) |
155 while ( !input.Eos() ) |
155 { |
156 { |
156 if( input.Peek() == ',') |
157 if( input.Peek() == ',') |
157 { |
158 { |
158 User::LeaveIfError( aHiddenFoldersArray. |
159 User::LeaveIfError( aHiddenFoldersArray. |
159 Append( input.MarkedToken( startMark ) ) ); |
160 Append( input.MarkedToken( startMark ) ) ); |
160 input.Inc(); |
161 input.Inc(); |
161 input.Mark( startMark ); |
162 input.Mark( startMark ); |
162 } |
163 } |
163 input.Inc(); |
164 input.Inc(); |
164 notEmpty = ETrue; |
165 notEmpty = ETrue; |
165 } |
166 } |
166 if ( notEmpty ) |
167 if ( notEmpty ) |
167 { |
168 { |
168 User::LeaveIfError( aHiddenFoldersArray. |
169 User::LeaveIfError( aHiddenFoldersArray. |
169 Append( input.MarkedToken( startMark ) ) ); |
170 Append( input.MarkedToken( startMark ) ) ); |
170 } |
171 } |
171 } |
172 } |
172 |
173 |
173 // --------------------------------------------------------- |
174 // --------------------------------------------------------- |
174 // CMenuEngObject::IsInCrL |
175 // CMenuEngObject::IsInCrL |
177 TBool CMenuEngObject::IsInCrL( const TDesC& aFolderName ) const |
178 TBool CMenuEngObject::IsInCrL( const TDesC& aFolderName ) const |
178 { |
179 { |
179 RBuf hiddenCRFolders; |
180 RBuf hiddenCRFolders; |
180 CleanupClosePushL( hiddenCRFolders ); |
181 CleanupClosePushL( hiddenCRFolders ); |
181 hiddenCRFolders.CreateL( KCenRepBufferSize ); |
182 hiddenCRFolders.CreateL( KCenRepBufferSize ); |
182 |
183 |
183 CRepository* cenRepSession = CRepository::NewLC( KCRUidMenu ); |
184 CRepository* cenRepSession = CRepository::NewLC( KCRUidMenu ); |
184 cenRepSession->Get( KMenuHideCPFolder, hiddenCRFolders ); |
185 cenRepSession->Get( KMenuHideCPFolder, hiddenCRFolders ); |
185 CleanupStack::PopAndDestroy( cenRepSession ); |
186 CleanupStack::PopAndDestroy( cenRepSession ); |
186 |
187 |
187 RArray<TPtrC> hiddenFoldersArray; |
188 RArray<TPtrC> hiddenFoldersArray; |
188 CleanupClosePushL( hiddenFoldersArray ); |
189 CleanupClosePushL( hiddenFoldersArray ); |
189 ParseHiddenFoldersL( hiddenCRFolders, hiddenFoldersArray ); |
190 ParseHiddenFoldersL( hiddenCRFolders, hiddenFoldersArray ); |
190 |
191 |
191 TBool result(EFalse); |
192 TBool result(EFalse); |
192 TInt id = hiddenFoldersArray.Find(aFolderName); |
193 TInt id = hiddenFoldersArray.Find(aFolderName); |
193 if (KErrNotFound != id ) |
194 if (KErrNotFound != id ) |
194 { |
195 { |
195 TPtrC folderName(KNullDesC); |
196 TPtrC folderName(KNullDesC); |
276 } |
277 } |
277 } |
278 } |
278 |
279 |
279 // ---------------------------------------------------------------------------- |
280 // ---------------------------------------------------------------------------- |
280 // CMenuEngObject::SetAttributeL |
281 // CMenuEngObject::SetAttributeL |
281 // Menu item lock flags are checked (e.g. can rename), but only when the |
282 // Menu item lock flags are checked (e.g. can rename), but only when the |
282 // current SetAttributeL call is not made from the object factories. |
283 // current SetAttributeL call is not made from the object factories. |
283 // If it is called from there, no flags checking is made. |
284 // If it is called from there, no flags checking is made. |
284 // This method is called from object factories when the engine is in |
285 // This method is called from object factories when the engine is in |
285 // ELoadRamFile or ELoadRomFile states. |
286 // ELoadRamFile or ELoadRomFile states. |
286 // ---------------------------------------------------------------------------- |
287 // ---------------------------------------------------------------------------- |
287 // |
288 // |
288 EXPORT_C void CMenuEngObject::SetAttributeL |
289 EXPORT_C void CMenuEngObject::SetAttributeL |
289 ( const TDesC& aAttrName, const TDesC& aAttrValue, TBool aLocalized ) |
290 ( const TDesC& aAttrName, const TDesC& aAttrValue, TBool aLocalized ) |
295 |
296 |
296 void CMenuEngObject::SetInitialAttributeL |
297 void CMenuEngObject::SetInitialAttributeL |
297 ( const TDesC& aAttrName, const TDesC& aAttrValue, TBool aLocalized ) |
298 ( const TDesC& aAttrName, const TDesC& aAttrValue, TBool aLocalized ) |
298 { |
299 { |
299 CheckAttrNameL( aAttrName ); |
300 CheckAttrNameL( aAttrName ); |
300 |
301 |
301 if ( iEng.State() != CMenuEng::ELoadRamFile && |
302 if ( iEng.State() != CMenuEng::ELoadRamFile && |
302 iEng.State() != CMenuEng::ELoadRomFile && |
303 iEng.State() != CMenuEng::ELoadRomFile && |
303 Flags() & TMenuItem::ELockName && |
304 Flags() & TMenuItem::ELockName && |
304 ( 0 == aAttrName.Compare( KMenuAttrShortName ) || |
305 ( 0 == aAttrName.Compare( KMenuAttrShortName ) || |
305 0 == aAttrName.Compare( KMenuAttrLongName ) || |
306 0 == aAttrName.Compare( KMenuAttrLongName ) || |
306 0 == aAttrName.Compare( KMenuAttrTitleName ) ) ) |
307 0 == aAttrName.Compare( KMenuAttrTitleName ) ) ) |
307 { |
308 { |
308 User::Leave( KErrAccessDenied ); |
309 User::Leave( KErrAccessDenied ); |
309 } |
310 } |
310 |
311 |
327 |
328 |
328 // --------------------------------------------------------- |
329 // --------------------------------------------------------- |
329 // CMenuEngObject::SetNative |
330 // CMenuEngObject::SetNative |
330 // --------------------------------------------------------- |
331 // --------------------------------------------------------- |
331 // |
332 // |
332 EXPORT_C void CMenuEngObject::SetNative( TBool aNative ) |
333 EXPORT_C void CMenuEngObject::SetAppType( TAppType aAppType ) |
333 { |
334 { |
334 iNative = aNative; |
335 iAppType = aAppType; |
335 } |
336 } |
336 |
337 |
337 // --------------------------------------------------------- |
338 // --------------------------------------------------------- |
338 // CMenuEngObject::GetNative |
339 // CMenuEngObject::GetNative |
339 // --------------------------------------------------------- |
340 // --------------------------------------------------------- |
340 // |
341 // |
341 EXPORT_C TBool CMenuEngObject::GetNative() const |
342 EXPORT_C CMenuEngObject::TAppType CMenuEngObject::GetAppType() const |
342 { |
343 { |
343 return iNative; |
344 return iAppType; |
344 } |
345 } |
345 |
346 |
346 // --------------------------------------------------------- |
347 // --------------------------------------------------------- |
347 // CMenuEngObject::RemoveAttribute |
348 // CMenuEngObject::RemoveAttribute |
348 // --------------------------------------------------------- |
349 // --------------------------------------------------------- |