diff -r 57d77d90783b -r 97d7f0705d0a userguide/src/HelpDataProvider.cpp --- a/userguide/src/HelpDataProvider.cpp Tue Jun 01 23:20:16 2010 +0300 +++ b/userguide/src/HelpDataProvider.cpp Tue Jun 08 18:34:07 2010 +0800 @@ -255,9 +255,8 @@ void HelpDataProvider::constructBuiltInCategoryItem(const QString& uid, const QString& title) { - int featureId; int priority; - parseBuiltInMetaxml(uid, featureId, priority); + parseBuiltInMetaxml(uid, priority); HelpStandardItem* item = NULL; item = new HelpStandardItem(title); @@ -346,6 +345,33 @@ { return; } + + QStringList featureIdLst; + + query.setQuery("doc($inputdoc)/collections/collection/number(@FeatureId)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&featureIdLst)) + { + return; + } + + if(featureIdLst.count() != uidList.count()) + { + return; + } + + for(int i = featureIdLst.count() - 1; i <= 0; i--) + { + int featureID = featureIdLst.at(i).toInt(); + if(!HelpUtils::suppportFeatureID(featureID)) + { + uidList.removeAt(i); + titleList.removeAt(i); + } + } } void HelpDataProvider::parseCategory2IndexXml(const QString& path, QStringList& hrefList, QStringList& titleList) @@ -361,7 +387,6 @@ //parse index xml to a stringlist, each string include href and navtitle and seperate by "specilchar" QXmlQuery query; - QXmlItem xmlItem(SPECIALCHAR); query.bindVariable("inputdoc", &file); query.setQuery("doc($inputdoc)/topics/topicref/xs:string(@href)"); @@ -383,15 +408,41 @@ { return; } + + QStringList featureIdLst; + + query.setQuery("doc($inputdoc)/topics/topicref/number(@FeatureId)"); + if(!query.isValid()) + { + return; + } + if(!query.evaluateTo(&featureIdLst)) + { + return; + } + + if(featureIdLst.count() != hrefList.count()) + { + return; + } + + for(int i = featureIdLst.count() - 1; i <= 0; i--) + { + int featureID = featureIdLst.at(i).toInt(); + if(!HelpUtils::suppportFeatureID(featureID)) + { + hrefList.removeAt(i); + titleList.removeAt(i); + } + } } -void HelpDataProvider::parseBuiltInMetaxml(const QString& path, int& featureId, int& priority) +void HelpDataProvider::parseBuiltInMetaxml(const QString& path, int& priority) { QString pathMetaxml(path); pathMetaxml.append(BACKSLASH); pathMetaxml.append(METAXML); - featureId = -1; priority = -1; QFile file(pathMetaxml); @@ -404,12 +455,6 @@ QString str; query.bindVariable("inputdoc", &file); - query.setQuery("doc($inputdoc)/meta/title/number(@FeatureId)"); - if(query.isValid() && query.evaluateTo(&str)) - { - featureId = str.toInt(); - } - query.setQuery("doc($inputdoc)/meta/number(priority)"); if(query.isValid() && query.evaluateTo(&str)) {