void MetaEditor::selectElement() { QStringList codes; { AddMetadata addelement(GetElementMap(), this); if (addelement.exec() == QDialog::Accepted) { codes = addelement.GetSelectedEntries(); } } foreach(QString code, codes) { if (code == "dc:language") { QStringList langcodes; AddMetadata addvalue(Language::instance()->GetLangMap(), this); if (addvalue.exec() == QDialog::Accepted) { langcodes = addvalue.GetSelectedEntries(); } QString lang = "en"; if (!langcodes.isEmpty()) { lang = langcodes.at(0); } insertRow(code, lang); } else if (code == "dc:identifier-isbn") { QString content = "urn:isbn:[No data]"; code = "dc:identifier"; insertRow(code, content); } else if (code == "dc:identifier-issn") { QString content = "urn:issn:[No data]"; code = "dc:identifier"; insertRow(code, content); } else if (code == "dc:identifier-doi") { QString content = "urn:doi:[No data]"; code = "dc:identifier"; insertRow(code, content); } else if (code == "dc:identifier-uuid") { QString content = "urn:uuid:[No data]"; code = "dc:identifier"; insertRow(code, content); } else if ((code == "dc:date") || (code == "dcterms:issued") || (code == "dcterms:created")) { QString content = QDate::currentDate().toString(Qt::ISODate); insertRow(code, content); } else if (code == "dc:type") { QString content = "[dictionary,index]"; insertRow(code, content); } else if (code == "dc:creator-aut") { code = "dc:creator"; insertRow(code); insertChild(QString("role"),QString("aut")); insertChild(QString("scheme"),QString("marc:relators")); } else { insertRow(code); } } }
static void addfromarray(struct bintree* tree, struct bintree_node** root, int* keys, int* values, int lower, int higher) { if(higher < lower) return; int median = lower + (higher-lower) / 2; addelement(tree, root, keys[median], values[median]); //Left side addfromarray(tree, &(*root)->left, keys, values, lower, median-1); //Right side addfromarray(tree, &(*root)->right, keys, values, median+1, higher); }
void MetaEditor::selectE2Element() { QStringList codes; { AddMetadata addelement(GetElementMap(), this); if (addelement.exec() == QDialog::Accepted) { codes = addelement.GetSelectedEntries(); } } foreach(QString code, codes) { if (code == "dc:language") { QStringList langcodes; AddMetadata addvalue(Language::instance()->GetLangMap(), this); if (addvalue.exec() == QDialog::Accepted) { langcodes = addvalue.GetSelectedEntries(); } QString lang = "en"; if (!langcodes.isEmpty()) { lang = langcodes.at(0); } insertRow(code, lang); } else if (code == "dc:identifier-isbn") { QString content = tr("[ISBN here]"); code = "dc:identifier"; insertRow(code, content); insertChild(QString("opf:scheme"), QString("ISBN")); } else if (code == "dc:identifier-issn") { QString content = tr("[ISSN here]"); code = "dc:identifier"; insertRow(code, content); insertChild(QString("opf:scheme"), QString("ISSN")); } else if (code == "dc:identifier-doi") { QString content = tr("[DOI here]"); code = "dc:identifier"; insertRow(code, content); insertChild(QString("opf:scheme"), QString("DOI")); } else if (code == "dc:identifier-uuid") { QString content = tr("[UUID here]"); code = "dc:identifier"; insertRow(code, content); insertChild(QString("opf:scheme"), QString("UUID")); } else if (code == "dc:identifier-custom") { QString content = tr("[Custom identifier here]"); code = "dc:identifier"; insertRow(code, content); insertChild(QString("opf:scheme")); } else if (code.startsWith("dc:date-")) { QStringList parts = code.split('-'); QString dc_event = parts.at(1); code = "dc:date"; QString content = QDate::currentDate().toString(Qt::ISODate); insertRow(code,content); insertChild(QString("opf:event"),dc_event); } else if (code == "dc:creator-aut") { code = "dc:creator"; QString content = tr("[Author name here]"); insertRow(code, content); insertChild(QString("opf:role"),QString("aut")); } else if (code == "dc:creator") { code = "dc:creator"; QString content = tr("[Creator name here]"); insertRow(code, content); } else if (code == "dc:contributor") { code = "dc:contributor"; QString content = tr("[Contributor name here]"); insertRow(code, content); } else { insertRow(code); } } }