// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::UpdateIconAndBasicLandmarkInfoL( CPosLmLocalDbAccess& aDbAccess, const CPosLandmark& aLandmark, const CPosLandmark& aOldLandmark) { if (!CheckIfIconAndBasicInfoAreEqualL(aLandmark, aOldLandmark)) { TUint32 oldIconId; TBool oldIconExists = ReadIconPathIdL(aDbAccess, aLandmark.LandmarkId(), oldIconId); TPtrC path; TInt iconIndex; TInt maskIndex; TUint32 iconId = 0; if (aLandmark.GetIcon(path, iconIndex, maskIndex) == KErrNone) { PosLmIconHandler::GetIconPathIdL(aDbAccess, path, iconId); } HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlFindUint, &KPosLmSqlAll, &KPosLmLandmarkTable, &KPosLmLandmarkIdCol, aLandmark.LandmarkId()); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EUpdatablePreparation, view, *sql); if (view.NextL()) { view.UpdateL(); SetIconL(view, aLandmark, iconId); SetPositionL(view, aLandmark); SetCoverageRadiusL(view, aLandmark); SetLandmarkNameL(view, aLandmark); SetLandmarkDescriptionL(view, aLandmark); view.PutL(); } else { User::Leave(KErrNotFound); } CleanupStack::PopAndDestroy(2, sql); //&view if (oldIconExists) { PosLmIconHandler::RemoveIconIfNotUsedL(aDbAccess, oldIconId); } } }
// ---------------------------------------------------------------------------- // CAknExQueryContainer::ShowConfirmationQueryL() // Display of Confirmation Query. // ---------------------------------------------------------------------------- // void CAknExQueryContainer::ShowConfirmationQueryL( const TInt aResourceId, const TInt aTextResourceId, const TBool aPromptFlag, const TBool aToneFlag, const TBool aHeaderTextAndImageFlag, const CAknQueryDialog::TTone aTone ) { iDisplayDialog = ETrue; SetTextToLabelL( R_AKNEXQUERY_OPERATE_MESSAGE ); CAknQueryDialog* dlg; if ( aHeaderTextAndImageFlag ) { dlg = CAknQueryDialog::NewL( aTone ); dlg->PrepareLC( aResourceId ); TBuf<KAknExQueryTextBufLength> prompt; iCoeEnv->ReadResource( prompt, R_AKNEXQUERY_NUMQUERY_WITHHEAD_HEAD ); dlg->QueryHeading()->SetTextL( prompt ); SetIconL( dlg, EMbmAknexqueryAnchor_id, EMbmAknexqueryAnchor_id_mask ); dlg->RunLD(); } else { if ( !aTextResourceId ) { dlg = CAknQueryDialog::NewL( aTone ); } else { TBuf<KAknExQueryTextBufLength> prompt; iCoeEnv->ReadResource( prompt, aTextResourceId ); if ( aPromptFlag ) { dlg = CAknQueryDialog::NewL( aTone ); CleanupStack::PushL( dlg ); dlg->SetPromptL( prompt ); CleanupStack::Pop(); } else if ( aToneFlag ) { dlg = new ( ELeave ) CAknQueryDialog( prompt, aTone ); } else { dlg = new ( ELeave ) CAknQueryDialog( prompt ); } } ShowResultMessageL( dlg->ExecuteLD( aResourceId ) ); } iDisplayDialog = EFalse; }
// ----------------------------------------------------------------------------- // ----------------------------------------------------------------------------- // void PosLmLandmarkHandler::AddBasicLandmarkInfoL( CPosLmLocalDbAccess& aDbAccess, CPosLandmark& aLandmark) { TPtrC iconPath; TInt iconIndex; TInt maskIndex; TUint32 iconPathId = 0; // Fetch icon path id if the landmark has an icon. if (aLandmark.GetIcon(iconPath, iconIndex, maskIndex) == KErrNone) { PosLmIconHandler::GetIconPathIdL(aDbAccess, iconPath, iconPathId); } HBufC* sql = HBufC::NewLC(KPosLmSqlStatementMaxLen); sql->Des().Format(KPosLmSqlSelect, &KPosLmSqlAll, &KPosLmLandmarkTable); RDbView view; aDbAccess.PrepareViewLC(CPosLmLocalDbAccess::EAddPreparation, view, *sql); view.InsertL(); SetPositionL(view, aLandmark); SetCoverageRadiusL(view, aLandmark); SetIconL(view, aLandmark, iconPathId); SetLandmarkNameL(view, aLandmark); SetLandmarkDescriptionL(view, aLandmark); view.PutL(); // Fetch and set the landmark id PosLmImplExtension::SetLandmarkIdL(aLandmark, view.ColUint32(EPosLmLcLandmarkIdCol)); CleanupStack::PopAndDestroy(2, sql); //&view }