@@ -107,7 +107,13 @@ static void translateEnumDescription(QDomElement &valueElem,const QDomElement &t
107107 }
108108}
109109
110- static void translateOption (QDomElement &configRoot,const QDomElement &translationRoot)
110+ static bool getFilter (QDomElement docsVal, const QString &mode)
111+ {
112+ QString attr = docsVal.attribute (SA (" filter" ));
113+ return attr.isEmpty () || attr.contains (mode);
114+ }
115+
116+ static void translateOption (QDomElement &configRoot,const QDomElement &translationRoot, const QString &mode)
111117{
112118 QDomElement docsVal = configRoot.firstChildElement ();
113119 QDomElement trDocsVal = translationRoot.firstChildElement ();
@@ -123,9 +129,11 @@ static void translateOption(QDomElement &configRoot,const QDomElement &translati
123129 while (!docsVal.isNull ())
124130 {
125131 // qDebug() << "tagName" << docsVal.tagName();
126- if (docsVal.tagName ()==SA (" docs" ) && docsVal. attribute ( SA ( " doxywizard " ))!= SA ( " 0 " ))
132+ if (docsVal.tagName ()==SA (" docs" ) && getFilter (docsVal, mode ))
127133 {
128- docsVal.setAttribute (SA (" doxywizard" ),SA (" 0" ));
134+ docsVal.removeAttribute (SA (" filter" ));
135+ // we just need a value so we don't have an empty filter (and thus potential a match on doxywizard later on).
136+ docsVal.setAttribute (SA (" filter" ),SA (" dummy" ));
129137 }
130138 else if (docsVal.tagName ()==SA (" value" ) && docsVal.hasAttribute (SA (" desc" )))
131139 {
@@ -136,7 +144,7 @@ static void translateOption(QDomElement &configRoot,const QDomElement &translati
136144 }
137145}
138146
139- static void translateTopics (QDomElement &configRoot,const QDomElement &translationRoot)
147+ static void translateTopics (QDomElement &configRoot,const QDomElement &translationRoot, const QString &mode )
140148{
141149 struct GroupInfo
142150 {
@@ -196,7 +204,7 @@ static void translateTopics(QDomElement &configRoot,const QDomElement &translati
196204 QString id = optionElem.attribute (SA (" id" ));
197205 if (groupMap[name].options .contains (id))
198206 {
199- translateOption (groupMap[name].options [id],optionElem);
207+ translateOption (groupMap[name].options [id],optionElem,mode );
200208 }
201209 else
202210 {
@@ -287,6 +295,8 @@ Expert::Expert()
287295 mainLayout->addWidget (m_searchBox);
288296 mainLayout->addWidget (m_splitter);
289297
298+ QString mode = SA (" doxywizard" );
299+
290300 QFile file (SA (" :/config.xml" ));
291301 QString err = tr (" Error" );
292302 int errLine=0 ,errCol=0 ;
@@ -330,7 +340,7 @@ Expert::Expert()
330340 childElem = childElem.nextSiblingElement ();
331341 }
332342 // overrule english text with translations
333- translateTopics (m_rootElement,trConfigXml.documentElement ());
343+ translateTopics (m_rootElement,trConfigXml.documentElement (),mode );
334344 }
335345 else
336346 {
@@ -342,7 +352,7 @@ Expert::Expert()
342352 // createGroups() activates group 0 (lazy), but the Wizard needs all m_options
343353 // populated before it is constructed, so we create all cards eagerly here.
344354 createGroups (m_rootElement);
345- ensureAllGroupsCreated ();
355+ ensureAllGroupsCreated (mode );
346356
347357 // --- Wire up signals ---
348358 m_filterTimer = new QTimer (this );
@@ -436,14 +446,14 @@ void Expert::createGroups(const QDomElement &rootElem)
436446 }
437447}
438448
439- void Expert::createOptionCard (GroupEntry &group, const QDomElement &child)
449+ void Expert::createOptionCard (GroupEntry &group, const QDomElement &child, const QString &mode )
440450{
441451 QString setting = child.attribute (SA (" setting" ));
442452 if (!setting.isEmpty () && !IS_SUPPORTED (setting.toLatin1 ())) return ;
443453
444454 QString type = child.attribute (SA (" type" ));
445455 QString id = child.attribute (SA (" id" ));
446- QString docs = getDocsForNode (child);
456+ QString docs = getDocsForNode (child, mode );
447457
448458 // Each option gets its own control layout
449459 QWidget *ctrlWidget = new QWidget;
@@ -658,7 +668,7 @@ void Expert::wireDependencies()
658668}
659669
660670// Create option cards for 'group' if they haven't been created yet.
661- void Expert::ensureGroupCardsCreated (GroupEntry &group)
671+ void Expert::ensureGroupCardsCreated (GroupEntry &group, const QString &mode )
662672{
663673 if (group.cardsCreated ) return ;
664674 group.cardsCreated = true ;
@@ -668,7 +678,7 @@ void Expert::ensureGroupCardsCreated(GroupEntry &group)
668678 {
669679 if (optElem.tagName () == SA (" option" ))
670680 {
671- createOptionCard (group, optElem);
681+ createOptionCard (group, optElem, mode );
672682 }
673683 optElem = optElem.nextSiblingElement ();
674684 }
@@ -720,11 +730,11 @@ void Expert::setDocumentationVisibility(bool hidden)
720730
721731// Create cards for every group that hasn't been created yet, then do a full
722732// dependency update (needed when cross-group deps span newly-created groups).
723- void Expert::ensureAllGroupsCreated ()
733+ void Expert::ensureAllGroupsCreated (const QString &mode )
724734{
725735 for (GroupEntry &group : m_groups)
726736 {
727- ensureGroupCardsCreated (group);
737+ ensureGroupCardsCreated (group, mode );
728738 }
729739
730740 // Re-run update so cross-group dependencies are fully applied
@@ -773,7 +783,7 @@ void Expert::nextGroup()
773783}
774784
775785
776- QString Expert::getDocsForNode (const QDomElement &child) const
786+ QString Expert::getDocsForNode (const QDomElement &child, const QString &mode ) const
777787{
778788 QString type = child.attribute (SA (" type" ));
779789 QString docs = SA (" " );
@@ -782,8 +792,7 @@ QString Expert::getDocsForNode(const QDomElement &child) const
782792 bool first = true ;
783793 while (!docsVal.isNull ())
784794 {
785- if (docsVal.tagName ()==SA (" docs" ) &&
786- docsVal.attribute (SA (" doxywizard" )) != SA (" 0" ))
795+ if (docsVal.tagName ()==SA (" docs" ) && getFilter (docsVal, mode))
787796 {
788797 if (!first) docs += SA (" <br/>" );
789798 first = false ;
0 commit comments