KDevelop API Documentation

DoxygenPart Class Reference

Integrates Doxygen - http://www.doxygen.org into KDevelop. More...

#include <doxygenpart.h>

Inheritance diagram for DoxygenPart:

KDevPlugin QObject KXMLGUIClient List of all members.

Public Member Functions

 DoxygenPart (QObject *parent, const char *name, const QStringList &)
 ~DoxygenPart ()

Private Slots

void projectConfigWidget (KDialogBase *dlg)
 Configuration dialog under "Project Options..." that alows to specify doxygen configuration options and store them to a configuration file.

void slotDoxygen ()
 run doxygen to generate API documentation

void slotDoxClean ()
 clean the html API docs (delete the generated html files)


Private Member Functions

void adjustDoxyfile ()
 If a Doxygen configuration file doesn't exist, create one.


Private Attributes

DoxygenDialog * m_dialog

Detailed Description

Integrates Doxygen - http://www.doxygen.org into KDevelop.

It allows you to call the Doxygen executable from a KDevelop menu. It integrates a GUI into the "KDevelop Project Configuration dialog" to configure Doxygen (it reads and writes Doxygen Compatible configuration files).

To update to a newer doxygen version:

  1. Merge over the config.h and config.cpp files from the addon/doxywizard/ directory in the doxygen sources. You'll need:
    • GNU bison v1.34 or better
    • GNU flex v2.5.4 or better
    • Kompare from KDEsdk
    You'll have to issue:
    $ ./configure --with-doxywizard && make
    to get the config.h and config.cpp files on this directory. You should also copy config.l if you'd like to do some debugging.
    1. To do the merge on config.cpp you should use:
      $ kompare doxygen-location/addon/doxywizard/config.cpp kdevelop-location/parts/doxygen/config.cpp
      • Be careful because doxygen uses the deprecated QList class while KDevelop uses the new QPtrList so you should not merge certain lines of code!!!
      • Be careful because doxygen uses the deprecated QRegExp::match() method while KDevelop uses the new QRegExp::search() and QRegExp::matchedLength() mehtods instead so you should not merge certain lines of code!!!
      • Be careful because KDevlop uses the QFile::encodeName() function and the original doxygen code doesn't. So do NOT delete the QFile::encodeName() calls.

    2. To do the merge on config.h you should use:
      $ kompare doxygen-location/addon/doxywizard/config.h kdevelop-location/parts/doxygen/config.h
      • Again, be careful because doxygen uses the deprecated QList class while KDevelop uses the new QPtrList so you should not merge certain lines of code!!!

  2. Copy over the file lang_cfg.h from the src/ directory in the doxygen sources.
  3. Add the new i18n strings to messages.cpp. To do so, run KDevelop and go to Project-> Project Options... -> Doxygen. Take a look at KDevelop' console output, it will warn you about the missing messages. Add them to messages.cpp file.
  4. Update version.cpp
  5. Add anything else you needed to do, to get it to compile, to the parts/doxygen/README.dox file.

Everything else we can customize for our look & feel.

Author(s):
Dimitri van Heesch

Maintainer(s):
Bernd Gehrmann

Amilcar Lucas

Feature(s):
Call Doxygen executable from a KDevelop menu.

Configure Doxygen inside KDevelop.

Create a configuration file with correct ProjectName, Author, Version and location of source files whenever a new KDevelop project is created.

Automaticaly generate a Doxygen search database whenever the "search engine" option in Doxygen configuration is activated and you "Run Doxygen".

Requirement(s):
You need to install the Doxygen binaries in your machine. This part supports all versions up to the version stated on the version.cpp file. As usual it is recomended to use the latest version or at least >= 1.3.4.

It is recomended that you also install dot >= 1.8.7 (tool to generate graphical dependencies).

Bug:
doesn't resize the configuration GUI properly.

F.A.Q.:
Do I need to install Doxygen? Yes

Definition at line 22 of file doxygenpart.h.


Constructor & Destructor Documentation

DoxygenPart::DoxygenPart QObject parent,
const char *  name,
const QStringList
 

DoxygenPart::~DoxygenPart  ) 
 

Definition at line 65 of file doxygenpart.cpp.


Member Function Documentation

void DoxygenPart::adjustDoxyfile  )  [private]
 

If a Doxygen configuration file doesn't exist, create one.

And copy some of the project settings to it.

Definition at line 84 of file doxygenpart.cpp.

References ConfigList::addValue(), Config::check(), Config::convertStrToVal(), Config::get(), ConfigList::init(), Config::init(), Config::instance(), Config::parse(), KDevPlugin::project(), KDevProject::projectDirectory(), KDevPlugin::projectDom(), ConfigBool::setValueString(), and Config::writeTemplate().

Referenced by projectConfigWidget(), and slotDoxygen().

void DoxygenPart::projectConfigWidget KDialogBase dlg  )  [private, slot]
 

Configuration dialog under "Project Options..." that alows to specify doxygen configuration options and store them to a configuration file.

The file name is Doxyfile and it's stored in the project root.

Definition at line 70 of file doxygenpart.cpp.

References KDialogBase::addVBoxPage(), adjustDoxyfile(), KDevPlugin::project(), and projectConfigWidget().

Referenced by projectConfigWidget().

void DoxygenPart::slotDoxClean  )  [private, slot]
 

clean the html API docs (delete the generated html files)

Definition at line 236 of file doxygenpart.cpp.

References Config_getBool, Config_getString, endl(), kdDebug(), KDevPlugin::makeFrontend(), KDevPlugin::project(), KDevProject::projectDirectory(), and KDevMakeFrontend::queueCommand().

void DoxygenPart::slotDoxygen  )  [private, slot]
 

run doxygen to generate API documentation

Definition at line 176 of file doxygenpart.cpp.

References adjustDoxyfile(), Config_getBool, Config_getString, Config::convertStrToVal(), endl(), Config::get(), Config::init(), Config::instance(), kdDebug(), KDevPlugin::makeFrontend(), Config::parse(), KDevPlugin::project(), KDevProject::projectDirectory(), and KDevMakeFrontend::queueCommand().


Member Data Documentation

DoxygenDialog* DoxygenPart::m_dialog [private]
 

Definition at line 51 of file doxygenpart.h.


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:24 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003