Index: doc/config.doc
===================================================================
RCS file: /cvsroot/doxygen/doc/config.doc,v
retrieving revision 1.123
diff -u -p -r1.123 config.doc
--- doc/config.doc	15 Mar 2007 10:12:10 -0000	1.123
+++ doc/config.doc	5 Apr 2007 20:22:16 -0000
@@ -178,6 +178,7 @@ followed by the descriptions of the tags
 \refitem cfg_predefined PREDEFINED
 \refitem cfg_project_name PROJECT_NAME
 \refitem cfg_project_number PROJECT_NUMBER
+\refitem cfg_qt_autobrief QT_AUTOBRIEF
 \refitem cfg_quiet QUIET
 \refitem cfg_recursive RECURSIVE
 \refitem cfg_referenced_by_relation REFERENCED_BY_RELATION
@@ -382,7 +383,17 @@ followed by the descriptions of the tags
   If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen
   will interpret the first line (until the first dot) of a JavaDoc-style
   comment as the brief description. If set to NO (the default), the 
-  Javadoc-style will behave just like the Qt-style comments.
+  Javadoc-style will behave just like regular Qt-style comments
+  (thus requiring an explicit \@brief command for a brief description.)
+
+\anchor cfg_qt_autobrief
+<dt>\c QT_AUTOBRIEF <dd>
+ \addindex QT_AUTOBRIEF
+  If the \c QT_AUTOBRIEF is set to \c YES then doxygen
+  will interpret the first line (until the first dot) of a Qt-style
+  comment as the brief description. If set to NO (the default), the
+  Qt-style will behave just like regular Qt-style comments (thus
+  requiring an explicit \\brief command for a brief description.)
 
 \anchor cfg_builtin_stl_support
 <dt>\c BUILTIN_STL_SUPPORT <dd>
Index: doc/docblocks.doc
===================================================================
RCS file: /cvsroot/doxygen/doc/docblocks.doc,v
retrieving revision 1.23
diff -u -p -r1.23 docblocks.doc
--- doc/docblocks.doc	19 Feb 2007 18:47:45 -0000	1.23
+++ doc/docblocks.doc	5 Apr 2007 20:22:16 -0000
@@ -209,6 +209,10 @@ JavaDoc style and \ref cfg_javadoc_autob
  for the corresponding HTML documentation that is generated by doxygen.
  \endhtmlonly
 
+Similarly, if one wishes the first sentence of a Qt style documentation
+block to automatically be treated as a brief description, one may set
+\ref cfg_qt_autobrief "QT_AUTOBRIEF" to YES in the configuration file.
+
 Unlike most other documentation systems, doxygen also allows you to put
 the documentation of members (including global functions) in front of 
 the \e definition. This way the documentation can be placed in the source 
Index: src/commentscan.l
===================================================================
RCS file: /cvsroot/doxygen/src/commentscan.l,v
retrieving revision 1.32
diff -u -p -r1.32 commentscan.l
--- src/commentscan.l	15 Mar 2007 10:12:11 -0000	1.32
+++ src/commentscan.l	5 Apr 2007 20:22:17 -0000
@@ -2281,15 +2281,15 @@ bool parseCommentBlock(/* in */     Pars
 		       /* in */     const QCString &fileName,
 		       /* in */     int lineNr,
 		       /* in */     bool isBrief,
-		       /* in */     bool isJavaDocStyle,
+		       /* in */     bool isAutoBriefOn,
 		       /* in */     bool isInbody,
 		       /* in,out */ Protection &prot,
 		       /* in,out */ int &position,
 		       /* out */    bool &newEntryNeeded
 		      )
 {
-  //printf("parseCommentBlock() isBrief=%d isJavaDocStyle=%d lineNr=%d\n",
-  //    isBrief,isJavaDocStyle,lineNr);
+  //printf("parseCommentBlock() isBrief=%d isAutoBriefOn=%d lineNr=%d\n",
+  //    isBrief,isAutoBriefOn,lineNr);
 
   initParser();
   guards.setAutoDelete(TRUE);
@@ -2310,8 +2310,8 @@ bool parseCommentBlock(/* in */     Pars
   parseMore      = FALSE;
   inBody         = isInbody;
   outputXRef.resize(0);
-  setOutput( isBrief || isJavaDocStyle ? OutputBrief : OutputDoc );
-  briefEndsAtDot = isJavaDocStyle;
+  setOutput( isBrief || isAutoBriefOn ? OutputBrief : OutputDoc );
+  briefEndsAtDot = isAutoBriefOn;
 
   if (!current->inbodyDocs.isEmpty() && isInbody) // separate in body fragments
   {
Index: src/config.l
===================================================================
RCS file: /cvsroot/doxygen/src/config.l,v
retrieving revision 1.158
diff -u -p -r1.158 config.l
--- src/config.l	4 Apr 2007 19:15:19 -0000	1.158
+++ src/config.l	5 Apr 2007 20:22:18 -0000
@@ -1574,8 +1574,17 @@ void Config::create()
                     "If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen \n"
                     "will interpret the first line (until the first dot) of a JavaDoc-style \n"
                     "comment as the brief description. If set to NO, the JavaDoc \n"
-                    "comments will behave just like the Qt-style comments (thus requiring an \n"
-                    "explicit @brief command for a brief description. \n",
+                    "comments will behave just like regular Qt-style comments \n"
+                    "(thus requiring an explicit @brief command for a brief description.) \n",
+                    FALSE
+                 );
+  cb = addBool(
+                    "QT_AUTOBRIEF",
+                    "If the QT_AUTOBRIEF tag is set to YES then Doxygen will \n"
+                    "interpret the first line (until the first dot) of a Qt-style \n"
+                    "comment as the brief description. If set to NO, the comments \n"
+                    "will behave just like regular Qt-style comments (thus requiring \n"
+                    "an explicit \\brief command for a brief description.) \n",
                     FALSE
                  );
   cb = addBool(
Index: src/scanner.l
===================================================================
RCS file: /cvsroot/doxygen/src/scanner.l,v
retrieving revision 1.212
diff -u -p -r1.212 scanner.l
--- src/scanner.l	4 Apr 2007 19:15:20 -0000	1.212
+++ src/scanner.l	5 Apr 2007 20:22:19 -0000
@@ -160,7 +160,7 @@ static int              docBlockContext;
 static QCString         docBlock;
 static QCString         docBlockName;
 static bool             docBlockInBody;
-static bool             docBlockJavaStyle;
+static bool             docBlockAutoBrief;
 static char             docBlockTerm;
 
 static QCString         idlAttr;
@@ -1992,7 +1992,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					  }
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = FALSE;
-					  docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					  docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                      ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					  docBlock.resize(0);
 					  docBlockTerm = ';';
 					  if (yytext[yyleng-3]=='/')
@@ -2010,7 +2011,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
   					  lineCount();
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = FALSE;
-					  docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					  docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                      ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					  docBlock.resize(0);
 					  docBlockTerm = ',';
 					  if (yytext[yyleng-3]=='/')
@@ -2032,7 +2034,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					  }
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = FALSE;
-					  docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					  docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                      ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					  docBlock.resize(0);
 					  docBlockTerm = 0;
 					  if (yytext[yyleng-3]=='/')
@@ -2072,7 +2075,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					    {
 					      docBlockContext   = YY_START;
 					      docBlockInBody    = FALSE;
-					      docBlockJavaStyle = FALSE;
+					      docBlockAutoBrief = FALSE;
 					      docBlock.resize(0);
 					      docBlockTerm = 0;
 					      startCommentBlock(TRUE);
@@ -2091,7 +2094,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					      docBlockContext   = YY_START;
 					      docBlockInBody    = FALSE;
 					      docBlock.resize(0);
-					      docBlockJavaStyle = yytext[2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					      docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                          ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					      docBlockTerm = 0;
 					      startCommentBlock(FALSE);
 					      BEGIN(DocBlock);
@@ -3884,7 +3888,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 
 					    docBlockContext   = SkipCurlyEndDoc;
 					    docBlockInBody    = FALSE;
-					    docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					    docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                        ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					    docBlock.resize(0);
 					    docBlockTerm = '}';
 					    if (yytext[yyleng-3]=='/')
@@ -3902,7 +3907,8 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 <SkipCurlyEndDoc>"}"{BN}*("/*!"|"/**"|"//!"|"///")"<" { // desc is followed by another one
 					  docBlockContext   = SkipCurlyEndDoc;
 					  docBlockInBody    = FALSE;
-					  docBlockJavaStyle = yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF");
+					  docBlockAutoBrief = ( yytext[yyleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
+					                      ( yytext[yyleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
 					  docBlock.resize(0);
 					  docBlockTerm = '}';
 					  if (yytext[yyleng-3]=='/')
@@ -4493,8 +4499,21 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
                                           }
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = YY_START==SkipCurly;
-					  docBlockJavaStyle = FALSE;
+					  docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
 					  docBlock.resize(0);
+					  if (docBlockAutoBrief)
+					  {
+					    current->briefLine = yyLineNr;
+					    current->briefFile = yyFileName;
+					  }
+					  if (!docBlockInBody)
+					  {
+					    current->doc.resize(0);
+					    if (docBlockAutoBrief)
+					    {
+					      current->brief.resize(0);
+					    }
+					  }
 					  startCommentBlock(FALSE);
 					  BEGIN( DocBlock );
 					}
@@ -4514,9 +4533,9 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					  current->docFile = yyFileName;
 					  docBlockContext = YY_START;
 					  docBlockInBody  = YY_START==SkipCurly;
-					  docBlockJavaStyle = Config_getBool("JAVADOC_AUTOBRIEF");
+					  docBlockAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
 					  docBlock.resize(0);
-					  if (docBlockJavaStyle)
+					  if (docBlockAutoBrief)
 					  {
 					    current->briefLine = yyLineNr;
 					    current->briefFile = yyFileName;
@@ -4524,7 +4543,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
 					  if (!docBlockInBody)
 					  {
 					    current->doc.resize(0);
-					    if (docBlockJavaStyle)
+					    if (docBlockAutoBrief)
 					    {
 					      current->brief.resize(0);
 					    }
@@ -4551,7 +4570,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
                                           }
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = YY_START==SkipCurly;
-					  docBlockJavaStyle = FALSE;
+					  docBlockAutoBrief = FALSE;
 					  docBlock.resize(0);
 					  startCommentBlock(TRUE);
 					  BEGIN( DocLine );
@@ -4575,7 +4594,7 @@ TYPEDEFPREFIX (("typedef"{BN}+)?)((("vol
                                           }
 					  docBlockContext   = YY_START;
 					  docBlockInBody    = YY_START==SkipCurly;
-					  docBlockJavaStyle = FALSE;
+					  docBlockAutoBrief = FALSE;
 					  docBlock.resize(0);
 					  startCommentBlock(TRUE);
 					  BEGIN( DocLine );
@@ -4932,7 +4951,7 @@ static void handleCommentBlock(const QCS
 	yyFileName, // file
 	brief ? current->briefLine : current->docLine,   // line of block start
 	docBlockInBody ? FALSE : brief, 
-	docBlockInBody ? FALSE : docBlockJavaStyle,
+	docBlockInBody ? FALSE : docBlockAutoBrief,
 	docBlockInBody,
 	protection,
         position,
