QList<CContactItemField *> CntTransformUrl::transformDetailL(const QContactDetail &detail) { if(detail.definitionName() != QContactUrl::DefinitionName) User::Leave(KErrArgument); QList<CContactItemField *> fieldList; //cast to url const QContactUrl &url(static_cast<const QContactUrl&>(detail)); //create new field TPtrC fieldText(reinterpret_cast<const TUint16*>(url.url().utf16())); if(fieldText.Length()) { CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldUrl); newField->TextStorage()->SetTextL(fieldText); newField->SetMapping(KUidContactFieldVCardMapURL); QString subType = url.subType(); const QString& subTypeHomePage(QContactUrl::SubTypeHomePage); if (subType.length() != 0 && subType.compare(subTypeHomePage) != 0) { User::LeaveIfError(KErrNotSupported); } //contexts setContextsL(url, *newField); fieldList.append(newField); CleanupStack::Pop(newField); } return fieldList; }
int SubmitFieldWidgetPrivate::findField(const QString &ft, int excluded) const { const int count = fieldEntries.size(); for (int i = 0; i < count; i++) if (i != excluded && fieldText(i) == ft) return i; return -1; }
static inline bool ReportActionNotArray(struct xkb_keymap *keymap, enum xkb_action_type action, enum action_field field) { log_err(keymap->ctx, "The %s field in the %s action is not an array; " "Action definition ignored\n", fieldText(field), ActionTypeText(action)); return false; }
static inline bool ReportNotFound(struct xkb_keymap *keymap, enum xkb_action_type action, enum action_field field, const char *what, const char *bad) { log_err(keymap->ctx, "%s named %s not found; " "Ignoring the %s field of an %s action\n", what, bad, fieldText(field), ActionTypeText(action)); return false; }
static inline bool ReportIllegal(struct xkb_keymap *keymap, enum xkb_action_type action, enum action_field field) { log_err(keymap->ctx, "Field %s is not defined for an action of type %s; " "Action definition ignored\n", fieldText(field), ActionTypeText(action)); return false; }
static inline bool ReportMismatch(struct xkb_keymap *keymap, enum xkb_action_type action, enum action_field field, const char *type) { log_err(keymap->ctx, "Value of %s field must be of type %s; " "Action %s definition ignored\n", fieldText(field), type, ActionTypeText(action)); return false; }
static bool HandleMovePtr(struct xkb_context *ctx, const struct xkb_mod_set *mods, union xkb_action *action, enum action_field field, const ExprDef *array_ndx, const ExprDef *value) { struct xkb_pointer_action *act = &action->ptr; if (field == ACTION_FIELD_X || field == ACTION_FIELD_Y) { int val; const bool absolute = (value->expr.op != EXPR_NEGATE && value->expr.op != EXPR_UNARY_PLUS); if (array_ndx) return ReportActionNotArray(ctx, action->type, field); if (!ExprResolveInteger(ctx, value, &val)) return ReportMismatch(ctx, action->type, field, "integer"); if (val < INT16_MIN || val > INT16_MAX) { log_err(ctx, "The %s field in the %s action must be in range %d..%d; " "Action definition ignored\n", fieldText(field), ActionTypeText(action->type), INT16_MIN, INT16_MAX); return false; } if (field == ACTION_FIELD_X) { if (absolute) act->flags |= ACTION_ABSOLUTE_X; act->x = (int16_t) val; } else { if (absolute) act->flags |= ACTION_ABSOLUTE_Y; act->y = (int16_t) val; } return true; } else if (field == ACTION_FIELD_ACCEL) { return CheckBooleanFlag(ctx, action->type, field, ACTION_ACCEL, array_ndx, value, &act->flags); } return ReportIllegal(ctx, action->type, field); }
QList<CContactItemField *> CntTransformAvatar::transformDetailL(const QContactDetail &detail) { if(detail.definitionName() != QContactAvatar::DefinitionName) User::Leave(KErrArgument); QList<CContactItemField *> fieldList; //cast to avatar const QContactAvatar &avatar(static_cast<const QContactAvatar&>(detail)); //create new field QString urlString = avatar.imageUrl().toString(); TPtrC fieldText(reinterpret_cast<const TUint16*>(urlString.utf16())); //copy filename and replace slash with a backslash TFileName filename; for(TInt i(0); i < fieldText.Length(); ++i) { if(i >= filename.MaxLength()) User::Leave(KErrTooBig); if(fieldText[i] == '/') { filename.Append('\\'); } else { filename.Append(fieldText[i]); } } if(filename.Length()) { TUid uid(KUidContactFieldCodImage); CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText, uid); newField->SetMapping(KUidContactFieldVCardMapUnknown); newField->TextStorage()->SetTextL(filename); fieldList.append(newField); CleanupStack::Pop(newField); } return fieldList; }
QList<CContactItemField *> CntTransformOnlineAccount::transformDetailL(const QContactDetail &detail) { if(detail.definitionName() != QContactOnlineAccount::DefinitionName) User::Leave(KErrArgument); QList<CContactItemField *> fieldList; //cast to phonenumber const QContactOnlineAccount &onlineAccount(static_cast<const QContactOnlineAccount&>(detail)); //get the subType QStringList subTypes = onlineAccount.subTypes(); //create new field TPtrC fieldText(reinterpret_cast<const TUint16*>(onlineAccount.accountUri().utf16())); if(fieldText.Length()) { HBufC* detailCount = HBufC::NewLC(KMaxDetailCounterLength); detailCount->Des().AppendNum(m_detailCounter); CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText); newField->TextStorage()->SetTextL(fieldText); //no subtype if(!subTypes.count()) { User::LeaveIfError(KErrArgument); } // online account else if (subTypes.contains(QContactOnlineAccount::SubTypeImpp)) { newField->AddFieldTypeL(KUidContactFieldIMPP); newField->SetMapping(KUidContactFieldVCardMapUnknown); } //internet else if (subTypes.contains(QContactOnlineAccount::SubTypeSipVoip)) { newField->AddFieldTypeL(KUidContactFieldSIPID); newField->SetMapping(KUidContactFieldVCardMapSIPID); newField->AddFieldTypeL(KUidContactFieldVCardMapVOIP); } //share video else if (subTypes.contains(QContactOnlineAccount::SubTypeVideoShare)) { newField->AddFieldTypeL(KUidContactFieldSIPID); newField->SetMapping(KUidContactFieldVCardMapSIPID); newField->AddFieldTypeL(KUidContactFieldVCardMapSWIS); } //sip else if (subTypes.contains(QContactOnlineAccount::SubTypeSip)) { newField->AddFieldTypeL(KUidContactFieldSIPID); newField->SetMapping(KUidContactFieldVCardMapSIPID); newField->AddFieldTypeL(KUidContactFieldVCardMapSIPID); } else { User::LeaveIfError(KErrNotSupported); } //contexts setContextsL(onlineAccount, *newField); newField->SetLabelL(*detailCount); fieldList.append(newField); CleanupStack::Pop(newField); // Transform Service Provider Text TPtrC ServiceProviderText(reinterpret_cast<const TUint16*>(onlineAccount.serviceProvider().utf16())); if(ServiceProviderText.Length()) { CContactItemField* serviceProviderField = CContactItemField::NewLC(KStorageTypeText); serviceProviderField->TextStorage()->SetTextL(ServiceProviderText); serviceProviderField->AddFieldTypeL(KUidContactFieldServiceProvider); serviceProviderField->SetLabelL(*detailCount); fieldList.append(serviceProviderField); CleanupStack::Pop(serviceProviderField); } CleanupStack::PopAndDestroy(detailCount); } if(fieldList.count() > 0) { m_detailCounter++; } return fieldList; }
QList<CContactItemField *> CntTransformPhoneNumber::transformDetailL(const QContactDetail &detail) { if(detail.definitionName() != QContactPhoneNumber::DefinitionName) User::Leave(KErrArgument); QList<CContactItemField *> fieldList; //cast to phonenumber const QContactPhoneNumber &phoneNumber(static_cast<const QContactPhoneNumber&>(detail)); //get the subType QStringList subTypes = phoneNumber.subTypes(); //create new field TPtrC fieldText(reinterpret_cast<const TUint16*>(phoneNumber.number().utf16())); if(fieldText.Length()) { CContactItemField* newField = CContactItemField::NewLC(KStorageTypeText); newField->TextStorage()->SetTextL(fieldText); //no subtype if(!subTypes.count()) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); } //landline else if (subTypes.contains(QContactPhoneNumber::SubTypeLandline)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapVOICE); } //mobile else if (subTypes.contains(QContactPhoneNumber::SubTypeMobile)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapCELL); } //fax else if (subTypes.contains(QContactPhoneNumber::SubTypeFax)) { newField->AddFieldTypeL(KUidContactFieldFax); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapFAX); } //pager else if (subTypes.contains(QContactPhoneNumber::SubTypePager)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapPAGER); } //bbs else if (subTypes.contains(QContactPhoneNumber::SubTypeBulletinBoardSystem)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapBBS); } //car else if (subTypes.contains(QContactPhoneNumber::SubTypeCar)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapCAR); } //DTMF else if (subTypes.contains(QContactPhoneNumber::SubTypeDtmfMenu)) { newField->AddFieldTypeL(KUidContactFieldDTMF); newField->SetMapping(KUidContactFieldVCardMapUnknown); } // assistant number else if (subTypes.contains(QContactPhoneNumber::SubTypeAssistant)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapAssistantTel); } // video calls else if (subTypes.contains(QContactPhoneNumber::SubTypeVideo)) { newField->AddFieldTypeL(KUidContactFieldPhoneNumber); newField->SetMapping(KUidContactFieldVCardMapTEL); newField->AddFieldTypeL(KUidContactFieldVCardMapVIDEO); } else { User::LeaveIfError(KErrNotSupported); } //contexts setContextsL(phoneNumber, *newField); fieldList.append(newField); CleanupStack::Pop(newField); } return fieldList; }