Skip to content

Commit d9096c7

Browse files
committed
Handling of multiple <docs> sections in an <option> section
In the doxywizard the from translated configuration files only the first `<docs>` section in an `<option>` section was handled. In the different translated configuration files the handling of the specific parts for the doxywizard was, incorrectly, done with the main `<docs>` part. was missing or was incomplete. In the config.xml a sentence that just belongs to the documentation was placed in a main section and thus visible everywhere.
1 parent fc0164e commit d9096c7

10 files changed

Lines changed: 289 additions & 39 deletions

File tree

addon/doxywizard/expert.cpp

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -117,25 +117,32 @@ static void translateOption(QDomElement &configRoot,const QDomElement &translati
117117
{
118118
QDomElement docsVal = configRoot.firstChildElement();
119119
QDomElement trDocsVal = translationRoot.firstChildElement();
120-
bool first=true;
121-
if (!docsVal.isNull() && docsVal.tagName()==SA("docs") &&
122-
!trDocsVal.isNull() && trDocsVal.tagName()==SA("docs"))
120+
while (!docsVal.isNull() && !trDocsVal.isNull())
123121
{
124-
//qDebug() << "id=" << configRoot.attribute(SA("id")) << "trId=" << translationRoot.attribute(SA("id"));
125-
docsVal.parentNode().replaceChild(trDocsVal,docsVal);
126-
}
127-
docsVal = configRoot.firstChildElement().nextSiblingElement();
128-
// disable options docs (already part of the translation)
129-
while (!docsVal.isNull())
130-
{
131-
//qDebug() << "tagName" << docsVal.tagName();
132122
if (docsVal.tagName()==SA("docs") && getFilter(docsVal, mode))
133123
{
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"));
124+
if (trDocsVal.tagName()==SA("docs") && getFilter(trDocsVal, mode))
125+
{
126+
QDomNode oldText = docsVal.firstChild();
127+
oldText.setNodeValue (trDocsVal.text());
128+
docsVal = docsVal.nextSiblingElement();
129+
trDocsVal = trDocsVal.nextSiblingElement();
130+
}
131+
else
132+
{
133+
trDocsVal = trDocsVal.nextSiblingElement();
134+
}
135+
}
136+
else
137+
{
138+
docsVal = docsVal.nextSiblingElement();
137139
}
138-
else if (docsVal.tagName()==SA("value") && docsVal.hasAttribute(SA("desc")))
140+
}
141+
docsVal = configRoot.firstChildElement();
142+
// Just handle value tags
143+
while (!docsVal.isNull())
144+
{
145+
if (docsVal.tagName()==SA("value") && docsVal.hasAttribute(SA("desc")))
139146
{
140147
//qDebug() << "attribute" << docsVal.attribute(SA("desc"));
141148
translateEnumDescription(docsVal,translationRoot);

src/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3153,11 +3153,11 @@ doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty
31533153
@note The header is subject to change so you typically
31543154
have to regenerate the default header when upgrading to a newer version of
31553155
Doxygen.
3156-
The following commands have a special meaning inside the header (and footer):
31573156
]]>
31583157
</docs>
31593158
<docs filter="documentation">
31603159
<![CDATA[
3160+
The following markers have a special meaning inside the header and footer:
31613161
<dl>
31623162
<dt><code>$title</code><dd>will be replaced with the project name.
31633163
<dt><code>$datetime</code><dd>will be replaced with the current date and time.

src/i18n/config_de.xml

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,15 @@
199199
</option>
200200
<option type="list" id="ALIASES" format="string">
201201
<docs>
202-
<![CDATA[Dieses Tag kann verwendet werden, um eine Reihe von Aliasnamen anzugeben, die als Befehle in der Dokumentation fungieren. Ein Alias hat die Form: \verbatim name=wert\endverbatim Zum Beispiel wurde das Hinzufügen von \verbatim "sideeffect=@par Nebeneffekte:^^"\endverbatim es Ihnen ermöglichen, den Befehl \c \sideeffect (oder \c \@sideeffect) in der Dokumentation zu platzieren, was einen benutzerdefinierten Absatz mit der Überschrift "Nebeneffekte:" erzeugt. Beachten Sie, dass Sie im Werteteil eines Alias kein \ref cmdn "\n" einfügen können, um einen Zeilenumbruch einzufügen (in der resultierenden Ausgabe). Sie können `^^` im Werteteil eines Alias einfügen, um einen Zeilenumbruch einzufügen, als ob ein physikalischer Zeilenumbruch in der Originaldatei vorhanden wäre. Wenn Sie ein wörtliches `{` oder `}` oder `,` im Werteteil eines Alias benötigen, müssen Sie diese mit einem Backslash maskieren (\c \\).]]>
202+
<![CDATA[Dieses Tag kann verwendet werden, um eine Reihe von Aliasnamen anzugeben, die als Befehle in der Dokumentation fungieren. Ein Alias hat die Form: \verbatim name=wert\endverbatim Zum Beispiel wurde das Hinzufügen von \verbatim "sideeffect=@par Nebeneffekte:^^"\endverbatim es Ihnen ermöglichen, den Befehl \c \sideeffect (oder \c \@sideeffect) in der Dokumentation zu platzieren, was einen benutzerdefinierten Absatz mit der Überschrift "Nebeneffekte:" erzeugt. Beachten Sie, dass Sie im Werteteil eines Alias kein \ref cmdn "\n" einfügen können, um einen Zeilenumbruch einzufügen (in der resultierenden Ausgabe). Sie können `^^` im Werteteil eines Alias einfügen, um einen Zeilenumbruch einzufügen, als ob ein physikalischer Zeilenumbruch in der Originaldatei vorhanden wäre.]]>
203203
</docs>
204+
<docs>
205+
<![CDATA[
206+
Wenn Sie in einem Alias im Wertteil ein Literal wie `{`, `}` oder `,` benötigen, müssen Sie diese
207+
mit einem Backslash (\c \\) maskieren. Dies kann zu Konflikten mit den
208+
Befehlen \c \\{ und \c \\} führen. Für diese empfiehlt es sich, die Versionen \c @@{ und \c @@} zu verwenden oder
209+
eine doppelte Maskierung (\c \\\\{ und \c \\\\}) zu verwenden.]]>
210+
</docs>
204211
</option>
205212
<option type="bool" id="OPTIMIZE_OUTPUT_FOR_C" defval="0">
206213
<docs>
@@ -544,7 +551,12 @@
544551
</option>
545552
<option type="string" id="FILE_VERSION_FILTER" format="file" defval="">
546553
<docs>
547-
<![CDATA[Das \c FILE_VERSION_FILTER-Tag kann verwendet werden, um ein Programm oder Skript anzugeben, das Doxygen aufrufen soll, um die aktuelle Version für jede Datei zu erhalten (typischerweise vom Versionskontrollsystem). Doxygen ruft das Programm auf, indem es (über <code>popen()</code>) den Befehl <code>command input_file</code> ausführt, wobei \c command der Wert des \c FILE_VERSION_FILTER-Tags ist und \c input_file der Name einer von Doxygen bereitgestellten Eingabedatei ist. Was auch immer das Programm auf die Standardausgabe schreibt, wird als Dateiversion verwendet. Für ein Beispiel siehe die Dokumentation.]]>
554+
<![CDATA[Das \c FILE_VERSION_FILTER-Tag kann verwendet werden, um ein Programm oder Skript anzugeben, das Doxygen aufrufen soll, um die aktuelle Version für jede Datei zu erhalten (typischerweise vom Versionskontrollsystem). Doxygen ruft das Programm auf, indem es (über <code>popen()</code>) den Befehl <code>command input_file</code> ausführt, wobei \c command der Wert des \c FILE_VERSION_FILTER-Tags ist und \c input_file der Name einer von Doxygen bereitgestellten Eingabedatei ist. Was auch immer das Programm auf die Standardausgabe schreibt, wird als Dateiversion verwendet.]]>
555+
</docs>
556+
<docs filter="doxyfile,doxywizard">
557+
<![CDATA[
558+
Für ein Beispiel siehe die Dokumentation.
559+
]]>
548560
</docs>
549561
</option>
550562
<option type="string" id="LAYOUT_FILE" format="file" defval="">
@@ -879,7 +891,12 @@
879891
</option>
880892
<option type="string" id="HTML_HEADER" format="file" defval="" depends="GENERATE_HTML">
881893
<docs>
882-
<![CDATA[Das \c HTML_HEADER-Tag kann verwendet werden, um eine benutzerdefinierte HTML-Header-Datei für jede generierte HTML-Seite anzugeben. Wenn das Tag leer gelassen wird, generiert Doxygen einen Standard-Header. <br>Um gültiges HTML zu erhalten, muss die Header-Datei alle Skripte und Stylesheets enthalten, die Doxygen benötigt, was von den verwendeten Konfigurationsoptionen abhängt (z.B. die Einstellung \ref cfg_generate_treeview "GENERATE_TREEVIEW"). Es wird dringend empfohlen, mit einem Standard-Header zu beginnen, indem Sie \verbatim doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile \endverbatim verwenden und dann die Datei \c new_header.html ändern. Siehe auch Abschnitt \ref doxygen_usage für Informationen zum Generieren des Standard-Headers, den Doxygen normalerweise verwendet. @note Der Header kann sich ändern, daher müssen Sie normalerweise den Standard-Header regenerieren, wenn Sie auf eine neuere Version von Doxygen aktualisieren. Für eine Beschreibung der möglichen Marker und Blocknamen siehe die Dokumentation.]]>
894+
<![CDATA[Das \c HTML_HEADER-Tag kann verwendet werden, um eine benutzerdefinierte HTML-Header-Datei für jede generierte HTML-Seite anzugeben. Wenn das Tag leer gelassen wird, generiert Doxygen einen Standard-Header. <br>Um gültiges HTML zu erhalten, muss die Header-Datei alle Skripte und Stylesheets enthalten, die Doxygen benötigt, was von den verwendeten Konfigurationsoptionen abhängt (z.B. die Einstellung \ref cfg_generate_treeview "GENERATE_TREEVIEW"). Es wird dringend empfohlen, mit einem Standard-Header zu beginnen, indem Sie \verbatim doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile \endverbatim verwenden und dann die Datei \c new_header.html ändern. Siehe auch Abschnitt \ref doxygen_usage für Informationen zum Generieren des Standard-Headers, den Doxygen normalerweise verwendet. @note Der Header kann sich ändern, daher müssen Sie normalerweise den Standard-Header regenerieren, wenn Sie auf eine neuere Version von Doxygen aktualisieren.]]>
895+
</docs>
896+
<docs filter="doxyfile,doxywizard">
897+
<![CDATA[
898+
Für eine Beschreibung der möglichen Marker und Blocknamen siehe die Dokumentation.
899+
]]>
883900
</docs>
884901
</option>
885902
<option type="string" id="HTML_FOOTER" format="file" defval="" depends="GENERATE_HTML">
@@ -894,7 +911,12 @@
894911
</option>
895912
<option type="list" id="HTML_EXTRA_STYLESHEET" format="file" defval="" depends="GENERATE_HTML">
896913
<docs>
897-
<![CDATA[Das \c HTML_EXTRA_STYLESHEET-Tag kann verwendet werden, um zusätzliche benutzerdefinierte Cascading Stylesheets anzugeben, die nach den von Doxygen erstellten Standard-Stylesheets eingebunden werden. Mit dieser Option können bestimmte Stilaspekte überschrieben werden. Dies ist der Verwendung von \ref cfg_html_stylesheet "HTML_STYLESHEET" vorzuziehen, da es das Standard-Stylesheet nicht ersetzt und daher robuster gegen zukünftige Updates ist. Doxygen kopiert die Stylesheet-Dateien in das Ausgabeverzeichnis. \note Die Reihenfolge der zusätzlichen Stylesheet-Dateien ist wichtig (z.B. überschreibt das letzte Stylesheet in der Liste die Einstellungen der vorherigen in der Liste). \note Da die Gestaltung von Scrollleisten in Webkit/Chromium derzeit nicht überschrieben werden kann, wird die Gestaltung aus der Standard-datei doxygen.css weggelassen, wenn ein oder mehrere zusätzliche Stylesheets angegeben wurden. Wenn also eine Anpassung der Scrollleisten gewünscht wird, muss diese explizit hinzugefügt werden. Für ein Beispiel siehe die Dokumentation.]]>
914+
<![CDATA[Das \c HTML_EXTRA_STYLESHEET-Tag kann verwendet werden, um zusätzliche benutzerdefinierte Cascading Stylesheets anzugeben, die nach den von Doxygen erstellten Standard-Stylesheets eingebunden werden. Mit dieser Option können bestimmte Stilaspekte überschrieben werden. Dies ist der Verwendung von \ref cfg_html_stylesheet "HTML_STYLESHEET" vorzuziehen, da es das Standard-Stylesheet nicht ersetzt und daher robuster gegen zukünftige Updates ist. Doxygen kopiert die Stylesheet-Dateien in das Ausgabeverzeichnis. \note Die Reihenfolge der zusätzlichen Stylesheet-Dateien ist wichtig (z.B. überschreibt das letzte Stylesheet in der Liste die Einstellungen der vorherigen in der Liste). \note Da die Gestaltung von Scrollleisten in Webkit/Chromium derzeit nicht überschrieben werden kann, wird die Gestaltung aus der Standard-datei doxygen.css weggelassen, wenn ein oder mehrere zusätzliche Stylesheets angegeben wurden. Wenn also eine Anpassung der Scrollleisten gewünscht wird, muss diese explizit hinzugefügt werden.]]>
915+
</docs>
916+
<docs filter="doxyfile,doxywizard">
917+
<![CDATA[
918+
Für ein Beispiel siehe die Dokumentation.
919+
]]>
898920
</docs>
899921
</option>
900922
<option type="list" id="HTML_EXTRA_FILES" format="file" depends="GENERATE_HTML">
@@ -1161,7 +1183,7 @@
11611183
<value name="chtml" desc="(Dies ist der Name für MathJax Version 3, für MathJax Version 2 wird dies in &lt;code&gt;HTML-CSS&lt;/code&gt; übersetzt)"/>
11621184
<value name="SVG"/>
11631185
</option>
1164-
<option type="string" id="MATHJAX_RELPATH" format="string" depends="USE_MATHJAX">
1186+
<option type="string" id="MATHJAX_RELPATH" format="string" depends="USE_MATHJAX">
11651187
<docs>
11661188
<![CDATA[
11671189
Wenn MathJax aktiviert ist, müssen Sie den Speicherort relativ zum HTML-Ausgabeverzeichnis
@@ -1188,7 +1210,12 @@
11881210
</option>
11891211
<option type="string" id="MATHJAX_CODEFILE" format="string" depends="USE_MATHJAX">
11901212
<docs>
1191-
<![CDATA[Das \c MATHJAX_CODEFILE-Tag kann verwendet werden, um eine Datei mit JavaScript-Code-Stucken anzugeben, die beim Start des MathJax-Codes verwendet werden. Siehe die MathJax-Website für weitere Details: - <a href="https://docs.mathjax.org/en/v2.7/">MathJax version 2</a> - <a href="https://docs.mathjax.org/en/v3.2/">MathJax version 3</a> - <a href="https://docs.mathjax.org/en/v4.0/">MathJax version 4</a> Für ein Beispiel siehe die Dokumentation.]]>
1213+
<![CDATA[Das \c MATHJAX_CODEFILE-Tag kann verwendet werden, um eine Datei mit JavaScript-Code-Stucken anzugeben, die beim Start des MathJax-Codes verwendet werden. Siehe die MathJax-Website für weitere Details: - <a href="https://docs.mathjax.org/en/v2.7/">MathJax version 2</a> - <a href="https://docs.mathjax.org/en/v3.2/">MathJax version 3</a> - <a href="https://docs.mathjax.org/en/v4.0/">MathJax version 4</a>]]>
1214+
</docs>
1215+
<docs filter="doxyfile,doxywizard">
1216+
<![CDATA[
1217+
Für ein Beispiel siehe die Dokumentation.
1218+
]]>
11921219
</docs>
11931220
</option>
11941221
<option type="bool" id="SEARCHENGINE" defval="1" depends="GENERATE_HTML">
@@ -1274,7 +1301,12 @@
12741301
</option>
12751302
<option type="string" id="LATEX_HEADER" format="file" defval="" depends="GENERATE_LATEX">
12761303
<docs>
1277-
<![CDATA[Das \c LATEX_HEADER-Tag kann verwendet werden, um einen benutzerdefinierten \f$\mbox{\LaTeX}\f$-Header für das generierte \f$\mbox{\LaTeX}\f$-Dokument anzugeben. Der Header sollte alles bis zum ersten Kapitel enthalten. Wenn er leer gelassen wird, generiert Doxygen einen Standard-Header. Es wird dringend empfohlen, mit einem Standard-Header zu beginnen, indem Sie \verbatim doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty \endverbatim verwenden und dann die Datei \c new_header.tex ändern. Siehe auch Abschnitt \ref doxygen_usage für Informationen zum Generieren des Standard-Headers, den Doxygen normalerweise verwendet. <br>Hinweis: Verwenden Sie nur einen benutzerdefinierten Header, wenn Sie wissen, was Sie tun! @note Der Header kann sich ändern, daher müssen Sie normalerweise den Standard-Header regenerieren, wenn Sie auf eine neuere Version von Doxygen aktualisieren. Für eine Beschreibung der möglichen Marker und Blocknamen siehe die Dokumentation.]]>
1304+
<![CDATA[Das \c LATEX_HEADER-Tag kann verwendet werden, um einen benutzerdefinierten \f$\mbox{\LaTeX}\f$-Header für das generierte \f$\mbox{\LaTeX}\f$-Dokument anzugeben. Der Header sollte alles bis zum ersten Kapitel enthalten. Wenn er leer gelassen wird, generiert Doxygen einen Standard-Header. Es wird dringend empfohlen, mit einem Standard-Header zu beginnen, indem Sie \verbatim doxygen -w latex new_header.tex new_footer.tex new_stylesheet.sty \endverbatim verwenden und dann die Datei \c new_header.tex ändern. Siehe auch Abschnitt \ref doxygen_usage für Informationen zum Generieren des Standard-Headers, den Doxygen normalerweise verwendet. <br>Hinweis: Verwenden Sie nur einen benutzerdefinierten Header, wenn Sie wissen, was Sie tun! @note Der Header kann sich ändern, daher müssen Sie normalerweise den Standard-Header regenerieren, wenn Sie auf eine neuere Version von Doxygen aktualisieren.]]>
1305+
</docs>
1306+
<docs filter="doxyfile,doxywizard">
1307+
<![CDATA[
1308+
Für eine Beschreibung der möglichen Marker und Blocknamen siehe die Dokumentation.
1309+
]]>
12781310
</docs>
12791311
</option>
12801312
<option type="string" id="LATEX_FOOTER" format="file" defval="" depends="GENERATE_LATEX">

0 commit comments

Comments
 (0)