bool KOfficePlugin::readInfo( KFileMetaInfo& info, uint what) { if ( info.path().isEmpty() ) // remote file return false; KFileMetaInfoGroup group = appendGroup(info, "DocumentInfo"); KoStore* store = KoStore::createStore(info.path(), KoStore::Read); if ( store && store->open( QString("documentinfo.xml") ) ) { KoStoreDevice dev( store ); QDomDocument doc; doc.setContent( &dev ); QDomNode authorNode = doc.namedItem("document-info").namedItem("author"); QDomNode aboutNode = doc.namedItem("document-info").namedItem("about"); QString author = stringFromNode(authorNode, "full-name"); QString title = stringFromNode(aboutNode, "title"); QString abstract = stringFromNode(aboutNode, "abstract"); appendItem(group, "Author", author); appendItem(group, "Title", title); appendItem(group, "Abstract", abstract); store->close(); delete store; return true; } delete store; return false; }
bool KOfficePlugin::readInfo( KFileMetaInfo& info, uint /*what*/) { if ( info.path().isEmpty() ) // remote file return false; KFileMetaInfoGroup group = appendGroup(info, DocumentInfo); QDomDocument doc = getMetaDocument(info.path()); if (doc.isNull()) return false; QDomElement base = getBaseNode(doc).toElement(); if (base.isNull()) return false; for (int i = 0; Information[i]; i+=2) appendItem(group, Information[i], stringFromNode(base, Information[i])); // Special case for keyword QDomNodeList keywordList = base.elementsByTagName( metakeyword ); QString allKeywords; for (uint i = 0; i < keywordList.length(); i++){ QDomNode node = keywordList.item(i); if (node.isElement()){ if (i>0) allKeywords += ", "; allKeywords += node.toElement().text(); } } appendItem(group, metakeyword, allKeywords); KFileMetaInfoGroup group1 = appendGroup(info, DocAdvanced); for (int i = 0; Advanced[i]; i+=2){ QString txt = stringFromNode(base, Advanced[i]); if (!txt.isEmpty()){ // A silly way to do it... switch (i){ case 2: case 4: case 6: getDateTime(group1, Advanced[i], txt); break; case 14: getEditingTime(group1, Advanced[i], txt); break; default: appendItem(group1, Advanced[i], txt);} } } QDomNode dstat = base.namedItem(metadocstat); KFileMetaInfoGroup group2 = appendGroup(info, DocStatistics); if (!dstat.isNull() && dstat.isElement()){ QDomElement dinfo = dstat.toElement(); for (int i = 0; Statistics[i]; i+=2) addAttributeInfo(dinfo, group2, Statistics[i] ); } QDomNodeList userList = base.elementsByTagName( metauserdef ); KFileMetaInfoGroup groupuser = appendGroup(info, UserDefined); for (uint i = 0; i < userList.length(); i++){ QDomNode node = userList.item(i); if (node.isElement()){ appendItem(groupuser, node.toElement().attribute(metaname, QString("User %1").arg(i)), node.toElement().text()); } } return true; }
void Mafw::insertTripleToGraph(LiveNode const &subject, LiveNode const &predicate, LiveNode const &object, RDFGraphImplBase const &graph) { rawInsertTripleToGraph(stringFromNode(subject), stringFromNode(predicate), stringFromNode(object), graph); }
void Mafw::deleteTripleFromGraph(LiveNode const &subject, LiveNode const &predicate, LiveNode const &object, RDFGraphImplBase const &graph) { rawDeleteTripleFromGraph(stringFromNode(subject), stringFromNode(predicate), stringFromNode(object), graph); }
QString Mafw::rawStringFromNode(Node const &node) { return stringFromNode(node); }