Bug 51331 - Project Options -> Doxygen: many settings are not written to Doxyfile
Summary: Project Options -> Doxygen: many settings are not written to Doxyfile
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: kdevelop 2.x (obsolete) (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: KDevelop-Devel List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-11-29 18:05 UTC by Manuel Fierlbeck
Modified: 2003-03-17 21:35 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Fierlbeck 2002-11-29 18:05:24 UTC
Version:            (using KDE KDE 3.0.9)
Installed from:    Compiled From Sources
Compiler:          gcc-2.95.3 
OS:          Linux

happens in gideon alpha 2
<p>
Open "Project Options" and select "Doxygen".
Select some checkboxes e.g. in tab "General".
Click OK. Many settings are not written to "Doxyfile".
<p>
KDevelop seems to abandon settings of checkboxes that map to "yes/no" entries in
Doxyfile. Other data, e.g. application name and version is written.
Comment 1 Amilcar do Carmo Lucas 2003-02-24 17:41:06 UTC
This can be really anoying.
I'll try to fix
Comment 2 Amilcar do Carmo Lucas 2003-02-24 19:38:09 UTC
I've looked around and could not find it.
There are to comments in the doxygenconfigwidget.cpp file that go like this:
// UGLY HACK: assumes each item depends on a boolean without checking!

But I don't know enough QT to fix it.
anyway I updated the config.h file to the latest doxygen version.
Here is the diff:
Index: parts/doxygen/config.h
===================================================================
RCS file: /home/kde/kdevelop/parts/doxygen/config.h,v
retrieving revision 1.2
diff -u -r1.2 config.h
--- parts/doxygen/config.h      23 Jun 2002 13:48:33 -0000      1.2
+++ parts/doxygen/config.h      24 Feb 2003 18:34:52 -0000
@@ -292,7 +292,7 @@
         t << endl;
       }
       t << m_name << m_spaces.left(MAX_OPTION_LENGTH-m_name.length()) << "= ";
-      if (upd)
+      if (upd && !m_valueString.isEmpty())
       {
         writeStringValue(t,m_valueString);
       }
@@ -309,6 +309,7 @@
     QCString m_valueString;
 };

+// some convenience macros
 #define Config_getString(val)  Config::instance()->getString(__FILE__,__LINE__,val)
 #define Config_getInt(val)     Config::instance()->getInt(__FILE__,__LINE__,val)
 #define Config_getList(val)    Config::instance()->getList(__FILE__,__LINE__,val)
@@ -321,6 +322,10 @@
  *  read from a user-supplied configuration file.
  *  The static member instance() can be used to get
  *  a pointer to the one and only instance.
+ *
+ *  Set all variables to their default values by
+ *  calling Config::instance()->init()
+ *
  */
 class Config
 {
@@ -335,6 +340,11 @@
       if (m_instance==0) m_instance = new Config;
       return m_instance;
     }
+    /*! Delete the instance */
+    static void deleteInstance()
+    {
+      delete m_instance;
+    }

     /*! Returns an iterator that can by used to iterate over the
      *  configuration options.
@@ -481,11 +491,34 @@
     // internal API
     /////////////////////////////

+    /*! Converts the string values read from the configuration file
+     *  to real values for non-string type options (like int, and bools)
+     */
     void convertStrToVal();
+
+    /*! Replaces references to environment variable by the actual value
+     *  of the environment variable.
+     */
     void substituteEnvironmentVars();
+
+    /*! Checks if the values of the variable are correct, adjusts them
+     *  if needed, and report any errors.
+     */
     void check();
+
+    /*! Initialize config variables to their default value */
     void init();
-    void parse(const QCString &config,const char *fn);
+
+    /*! Parse a configuration file with name \a fn.
+     *  \returns TRUE if successful, FALSE if the file could not be
+     *  opened or read.
+     */
+    void parse(const QCString &config, const char *fn);
+
+    /*! Called from the constructor, will add doxygen's default options
+     *  to the configuration object
+     */
+    void create();
   protected:
     Config()
     {
@@ -500,7 +533,6 @@
       delete m_options;
       delete m_dict;
     }
-    void create();

   private:
     QList<ConfigOption> *m_options;
Comment 3 Harald Fernengel 2003-03-17 21:35:39 UTC
fixed in CVS, thanks for the patch!