📄 todo.cpp
字号:
insertProperty(getVPropertyFromiCalProperty(TEXT("COMMENT"), (iCalProperty*)list[i]));
}
}
void ToDo::setContact(ArrayList& list) {
if (contact) {
contact->clear();
} else {
contact = new ArrayList();
}
removeAllProperies(TEXT("CONTACT"));
int s = list.size();
for (int i=0; i<s; ++i) {
contact->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("CONTACT"), (iCalProperty*)list[i]));
}
}
void ToDo::setExDate(ArrayList& list) {
if (exDate) {
exDate->clear();
} else {
exDate = new ArrayList();
}
removeAllProperies(TEXT("EXDATE"));
int s = list.size();
for (int i=0; i<s; ++i) {
exDate->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("EXDATE"), (iCalProperty*)list[i]));
}
}
void ToDo::setExRule(ArrayList& list) {
if (exRule) {
exRule->clear();
} else {
exRule = new ArrayList();
}
removeAllProperies(TEXT("EXRULE"));
int s = list.size();
for (int i=0; i<s; ++i) {
exRule->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("EXRULE"), (iCalProperty*)list[i]));
}
}
void ToDo::setRStatus(ArrayList& list) {
if (rStatus) {
rStatus->clear();
} else {
rStatus = new ArrayList();
}
removeAllProperies(TEXT("REQUEST-STATUS"));
int s = list.size();
for (int i=0; i<s; ++i) {
rStatus->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("REQUEST-STATUS"), (iCalProperty*)list[i]));
}
}
void ToDo::setRelated(ArrayList& list) {
if (related) {
related->clear();
} else {
related = new ArrayList();
}
removeAllProperies(TEXT("RELATED"));
int s = list.size();
for (int i=0; i<s; ++i) {
related->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("RELATED"), (iCalProperty*)list[i]));
}
}
void ToDo::setResources(ArrayList& list) {
if (resources) {
resources->clear();
} else {
resources = new ArrayList();
}
removeAllProperies(TEXT("RESOURCES"));
int s = list.size();
for (int i=0; i<s; ++i) {
resources->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("RESOURCES"), (iCalProperty*)list[i]));
}
}
void ToDo::setRDate(ArrayList& list) {
if (rDate) {
rDate->clear();
} else {
rDate = new ArrayList();
}
removeAllProperies(TEXT("RDATE"));
int s = list.size();
for (int i=0; i<s; ++i) {
rDate->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("RDATE"), (iCalProperty*)list[i]));
}
}
void ToDo::setRRule(ArrayList& list) {
if (rRule) {
rRule->clear();
} else {
rRule = new ArrayList();
}
removeAllProperies(TEXT("RRULE"));
int s = list.size();
for (int i=0; i<s; ++i) {
rRule->add(*list[i]);
insertProperty(getVPropertyFromiCalProperty(TEXT("RRULE"), (iCalProperty*)list[i]));
}
}
void ToDo::setXProp(ArrayList& list) {
if (xProp) {
xProp->clear();
} else {
xProp = new ArrayList();
}
for(int i = 0, m = propertiesCount(); i < m ; i++)
if(wcsstr(getProperty(i)->getName(),TEXT("X-")) == getProperty(i)->getName()) {
removeProperty(i);
--i;
--m;
}
int s = list.size();
for (int j=0; j<s; ++j) {
xProp->add(*list[j]);
insertProperty(new VProperty(
((WKeyValuePair*)list[j])->getKey(),
((WKeyValuePair*)list[j])->getValue()));
}
}
ArrayElement* ToDo::clone() {
ToDo* ret = new ToDo();
if (getClass()) ret->setClass(*classEvent);
if (getCompleted()) ret->setCompleted(*completed);
if (getCreated()) ret->setCreated(*created);
if (getDescription()) ret->setDescription(*description);
if (getDtStamp()) ret->setDtStamp(*dtStamp);
if (getDtStart()) ret->setDtStart(*dtStart);
if (getGeo()) ret->setGeo(*geo);
if (getLastMod()) ret->setLastMod(*lastMod);
if (getLocation()) ret->setLocation(*location);
if (getOrganizer()) ret->setOrganizer(*organizer);
if (getPercent()) ret->setPercent(*percent);
if (getPriority()) ret->setPriority(*priority);
if (getRecurID()) ret->setRecurID(*recurID);
if (getSequence()) ret->setSequence(*seq);
if (getStatus()) ret->setStatus(*status);
if (getSummary()) ret->setSummary(*summary);
if (getUid()) ret->setUid(*uid);
if (getUrl()) ret->setUrl(*url);
if (getDue()) ret->setDue(*due);
if (getDuration()) ret->setDuration(*duration);
if (getAttach()) ret->setAttach(*attach);
if (getAttendee()) ret->setAttendee(*attendee);
if (getCategories()) ret->setCategories(*categories);
if (getComment()) ret->setComment(*comment);
if (getContact()) ret->setContact(*contact);
if (getExDate()) ret->setExDate(*exDate);
if (getExRule()) ret->setExRule(*exRule);
if (getRStatus()) ret->setRStatus(*rStatus);
if (getRelated()) ret->setRelated(*related);
if (getResources()) ret->setResources(*resources);
if (getRDate()) ret->setRDate(*rDate);
if (getRRule()) ret->setRRule(*rRule);
if (getXProp()) ret->setXProp(*xProp);
return ret;
}
WCHAR* ToDo::toString() {
if(propertiesCount()<1 ||
wcscmp(getProperty(0)->getName(),TEXT("BEGIN")) ||
wcscmp(getProperty(0)->getValue(),TEXT("VTODO")) ||
wcscmp(getProperty(propertiesCount()-1)->getName(),TEXT("END")) ||
wcscmp(getProperty(propertiesCount()-1)->getValue(),TEXT("VTODO"))) {
addFirstProperty(new VProperty(TEXT("BEGIN"), TEXT("VTODO")));
addProperty(new VProperty(TEXT("END"), TEXT("VTODO")));
}
return ((VObject*)this)->toString();
}
iCalProperty* ToDo::getiCalPropertyFromVProperty(VProperty* vp) {
if (vp) {
iCalProperty *prop = new iCalProperty(vp->getValue());
if(vp->getParameterValue(TEXT("ALTREP")))
prop->setAltre(vp->getParameterValue(TEXT("ALTREP")));
if(vp->getParameterValue(TEXT("CN")))
prop->setCn(vp->getParameterValue(TEXT("CN")));
if(vp->getParameterValue(TEXT("CUTYPE")))
prop->setAltre(vp->getParameterValue(TEXT("CUTYPE")));
if(vp->getParameterValue(TEXT("DELEGATED-FROM")))
prop->setDelegatedFrom(vp->getParameterValue(TEXT("DELEGATED-FROM")));
if(vp->getParameterValue(TEXT("DELEGATED-TO")))
prop->setDelegatedTo(vp->getParameterValue(TEXT("DELEGATED-TO")));
if(vp->getParameterValue(TEXT("DIR")))
prop->setDir(vp->getParameterValue(TEXT("DIR")));
if(vp->getParameterValue(TEXT("ENCODING")))
prop->setEncoding(vp->getParameterValue(TEXT("ENCODING")));
if(vp->getParameterValue(TEXT("FMTTYPE")))
prop->setFormatType(vp->getParameterValue(TEXT("FMTTYPE")));
if(vp->getParameterValue(TEXT("FBTYPE")))
prop->setFbType(vp->getParameterValue(TEXT("FBTYPE")));
if(vp->getParameterValue(TEXT("LANGUAGE")))
prop->setLanguage(vp->getParameterValue(TEXT("LANGUAGE")));
if(vp->getParameterValue(TEXT("MEMBER")))
prop->setMember(vp->getParameterValue(TEXT("MEMBER")));
if(vp->getParameterValue(TEXT("PARTSTAT")))
prop->setPartStat(vp->getParameterValue(TEXT("PARTSTAT")));
if(vp->getParameterValue(TEXT("RANGE")))
prop->setRange(vp->getParameterValue(TEXT("RANGE")));
if(vp->getParameterValue(TEXT("RELATED")))
prop->setTrigRel(vp->getParameterValue(TEXT("RELATED")));
if(vp->getParameterValue(TEXT("RELTYPE")))
prop->setRelated(vp->getParameterValue(TEXT("RELTYPE")));
if(vp->getParameterValue(TEXT("ROLE")))
prop->setRole(vp->getParameterValue(TEXT("ROLE")));
if(vp->getParameterValue(TEXT("RSVP")))
prop->setRsvp(vp->getParameterValue(TEXT("RSVP")));
if(vp->getParameterValue(TEXT("SENT-BY")))
prop->setSentBy(vp->getParameterValue(TEXT("SENT-BY")));
if(vp->getParameterValue(TEXT("TZID")))
prop->setTzID(vp->getParameterValue(TEXT("TZID")));
if(vp->getParameterValue(TEXT("VALUE")))
prop->setValueType(vp->getParameterValue(TEXT("VALUE")));
ArrayList* xParamList = NULL;
WKeyValuePair* xTagParam = NULL;
WCHAR* xParamName = NULL;
for(int i = 0; i < vp->parameterCount(); i++) {
if(wcsstr(vp->getParameter(i),TEXT("X-")) == vp->getParameter(i)) {
xParamName = new WCHAR[wcslen(vp->getParameter(i)) + 1];
wcscpy(xParamName, vp->getParameter(i));
xTagParam = new WKeyValuePair();
xTagParam->setKey(xParamName);
if(vp->getParameterValue(xParamName))
xTagParam->setValue(vp->getParameterValue(xParamName));
if(!xParamList)
xParamList = new ArrayList();
xParamList->add((ArrayElement&) *xTagParam);
delete [] xParamName; xParamName = NULL;
delete xTagParam; xTagParam = NULL;
}
}
if(xParamList)
prop->setXParam(*xParamList);
delete xParamList; xParamList = NULL;
return prop;
}
else
return NULL;
}
VProperty* ToDo::getVPropertyFromiCalProperty(WCHAR* name, iCalProperty* prop) {
if(name && prop) {
VProperty *vprop = new VProperty(name, prop->getValue());
if(prop->getAltre())
vprop->addParameter(TEXT("ALTREP"), prop->getAltre());
if(prop->getCn())
vprop->addParameter(TEXT("CN"), prop->getCn());
if(prop->getCutype())
vprop->addParameter(TEXT("CUTYPE"), prop->getCutype());
if(prop->getDelegatedFrom())
vprop->addParameter(TEXT("DELEGATED-FROM"), prop->getDelegatedFrom());
if(prop->getDelegatedTo())
vprop->addParameter(TEXT("DELEGATED-TO"), prop->getDelegatedTo());
if(prop->getDir())
vprop->addParameter(TEXT("DIR"), prop->getDir());
if(prop->getEncoding())
vprop->addParameter(TEXT("ENCODING"), prop->getEncoding());
if(prop->getFormatType())
vprop->addParameter(TEXT("FMTTYPE"), prop->getFormatType());
if(prop->getFbType())
vprop->addParameter(TEXT("FBTYPE"), prop->getFbType());
if(prop->getLanguage())
vprop->addParameter(TEXT("LANGUAGE"), prop->getLanguage());
if(prop->getMember())
vprop->addParameter(TEXT("MEMBER"), prop->getMember());
if(prop->getPartStat())
vprop->addParameter(TEXT("PARTSTAT"), prop->getPartStat());
if(prop->getRange())
vprop->addParameter(TEXT("RANGE"), prop->getRange());
if(prop->getTrigRel())
vprop->addParameter(TEXT("RELATED"), prop->getTrigRel());
if(prop->getRelated())
vprop->addParameter(TEXT("RELTYPE"), prop->getRelated());
if(prop->getRole())
vprop->addParameter(TEXT("ROLE"), prop->getRole());
if(prop->getRsvp())
vprop->addParameter(TEXT("RSVP"), prop->getRsvp());
if(prop->getSentBy())
vprop->addParameter(TEXT("SENT-BY"), prop->getSentBy());
if(prop->getTzID())
vprop->addParameter(TEXT("TZID"), prop->getTzID());
if(prop->getValueType())
vprop->addParameter(TEXT("VALUE"), prop->getValueType());
if(prop->getXParam()) {
ArrayList* xParamList = new ArrayList();
xParamList = prop->getXParam();
for(int i = 0; i<xParamList->size(); i++) {
WKeyValuePair* xParam = (WKeyValuePair*)xParamList->get(i);
if(xParam->getKey())
if(xParam->getValue())
vprop->addParameter(xParam->getKey(), xParam->getValue());
else
vprop->addParameter(xParam->getKey(), NULL);
}
delete xParamList; xParamList = NULL;
}
return vprop;
}
else
return NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -