After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 783768 - QCH files: classes & their constructors get conflicting keyword handling
QCH files: classes & their constructors get conflicting keyword handling
Status: RESOLVED OBSOLETE
Product: doxygen
Classification: Other
Component: general
1.8.13
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
[moved_to_github]
Depends on:
Blocks:
 
 
Reported: 2017-06-13 19:10 UTC by kossebau
Modified: 2018-07-30 10:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description kossebau 2017-06-13 19:10:29 UTC
If both classes and their constructors are included in the generated documentation by doxygen, then the created QHP files contain the same keyword both for the class and for its constructors.

Which results in unpleasant behaviour in Qt Assistant when using the Index feature:
when entering a term and selecting the appearing class name, instead of being brought straight to the class' documentation page another dialog pops up, title "Choose Topic", listing two identic items ("BOOK: KEYWORD"), the first pointing to anchor of first constructor, the second to class page in general.

Which is different from the behaviour for Qt classes, where for a keyword matching a class no such dialog is shown, instead one is straight brought to the  class page.

Reason is that doxygen creates and stores more than one keyword per class name compared to Qt.
E.g. for KAboutData from KDE Frameworks, which has three documented constructors (https://api.kde.org/frameworks/kcoreaddons/html/classKAboutData.html), four keywords with same name are created (ids of constructors are identic, but same is seen with Qt):
--- 8< ---
      <keyword name="KAboutData" id="KAboutData" ref="classKAboutData.html" />
      <keyword name="KAboutData" id="KAboutData::KAboutData" ref="classKAboutData.html#ad437b0f36a1d120c45616333c671a059" />
      <keyword name="KAboutData" id="KAboutData::KAboutData" ref="classKAboutData.html#a20efda14b288568a5da5839442827e97" />
      <keyword name="KAboutData" id="KAboutData::KAboutData" ref="classKAboutData.html#aa58f336dc81d52d644a5b840abfe2907" />
--- 8< ---

where the QHP files from Qt for a class skip the constructor methods for each class and only list the class names. E.g. qtcore.qhp for QObject, which has one documented constructor (http://doc.qt.io/qt-5/qobject.html#QObject ) still only has
--- 8< ---
            <keyword name="QObject" id="QObject" ref="qobject.html"/>
--- 8< ---


WANTED:
At least the option to create QHP files matching the behaviour from Qt, by dropping keywords for constructors.
For improving experience with doxygen as used by https://api.kde.org/ecm/module/ECMAddQch.html

I would be willing to come up with a patch for this.
What name would you propose for such a config flag?
Any recommendations/wishes for things the patch should cover otherwise?
Comment 1 kossebau 2017-06-13 22:38:41 UTC
Initial patch (as food for thoughts) proposed at https://github.com/doxygen/doxygen/pull/573
Comment 2 André Klapper 2018-07-30 10:28:31 UTC
As discussed in https://github.com/doxygen/doxygen/pull/734 , Doxygen has moved its issue tracking to 

   https://github.com/doxygen/doxygen/issues

All Doxygen tickets in GNOME Bugzilla have been migrated to Github. You can subscribe and participate in the new ticket in Github. You can find the corresponding Github ticket by searching for its Bugzilla ID (number) in Github.

Hence I am closing this GNOME Bugzilla ticket.
Please use the corresponding ticket in Github instead. Thanks a lot!