本文整理汇总了C++中MetadataInfo::updatable方法的典型用法代码示例。如果您正苦于以下问题:C++ MetadataInfo::updatable方法的具体用法?C++ MetadataInfo::updatable怎么用?C++ MetadataInfo::updatable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataInfo
的用法示例。
在下文中一共展示了MetadataInfo::updatable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: insertMetadata
/**
* @brief Regola::updateMetadata update the updatable metadata if existing or insert them
* @return
*/
void Regola::insertMetadata(QTreeWidget *tree)
{
//---
/* breakpoint trap
extern bool stopMeta;
if( stopMeta ) {
stopMeta = true ;
}*/
//---
bool found = false;
Element *firstElement = NULL ;
int row = 0 ;
foreach(Element * topLevel, childItems) {
if(topLevel->getType() == Element::ET_PROCESSING_INSTRUCTION) {
if(NULL == firstElement) {
firstElement = topLevel ;
}
if(topLevel->getPITarget() == MetadataInfo::QXMLEDIT_TARGET_PI) {
MetadataInfo info;
if(info.parseUpdatable(topLevel->getPIData(), row)) {
found = true ;
updateMetadataRecord(tree, topLevel, &info, true);
break;
}
}
row ++ ;
}
}
if(!found) {
// insert new metadata
MetadataInfo newInfo;
newInfo.markNewRecord();
QString newData = newInfo.updatable()->toProcessingInstruction();
newInfo.updatable()->update(false);
Element *newPI = new Element(this, Element::ET_PROCESSING_INSTRUCTION, NULL);
newPI->setPITarget(MetadataInfo::QXMLEDIT_TARGET_PI);
newPI->setPIData(newData);
newPI->markEdited();
// at the second place, if possible
int insertIndex = 0 ;
if((NULL != firstElement)
&& (firstElement->getType() == Element::ET_PROCESSING_INSTRUCTION)
&& (firstElement->getPITarget().toLower() == "xml")) {
insertIndex = 1;
}
childItems.insert(insertIndex, newPI);
newPI->caricaFigli(tree, NULL, paintInfo, true, insertIndex);
afterInsertHousekeeping(newPI, tree, true);
}
}