Commit c1605e5b authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.3.7-20040704

parent 6b195c8d
# Doxyfile 1.3.5 # Doxyfile 1.3.7
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Project related configuration options # Project related configuration options
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
PROJECT_NAME = Doxygen PROJECT_NAME = Doxygen
PROJECT_NUMBER = PROJECT_NUMBER =
OUTPUT_DIRECTORY = doxygen_docs OUTPUT_DIRECTORY = doxygen_docs
CREATE_SUBDIRS = YES
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
...@@ -15,6 +16,7 @@ ALWAYS_DETAILED_SEC = NO ...@@ -15,6 +16,7 @@ ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES FULL_PATH_NAMES = YES
STRIP_FROM_PATH = $(PWD)/ STRIP_FROM_PATH = $(PWD)/
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO MULTILINE_CPP_IS_BRIEF = NO
...@@ -33,6 +35,7 @@ EXTRACT_ALL = YES ...@@ -33,6 +35,7 @@ EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
...@@ -44,6 +47,7 @@ SHOW_INCLUDE_FILES = YES ...@@ -44,6 +47,7 @@ SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES INLINE_INFO = YES
SORT_MEMBER_DOCS = YES SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES GENERATE_BUGLIST = YES
......
DOXYGEN Version 1.3.7-20040617 DOXYGEN Version 1.3.7-20040704
Please read the installation section of the manual Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions. (http://www.doxygen.org/install.html) for instructions.
-------- --------
Dimitri van Heesch (17 June 2004) Dimitri van Heesch (04 July 2004)
DOXYGEN Version 1.3.7_20040617 DOXYGEN Version 1.3.7_20040704
Please read INSTALL for compilation instructions. Please read INSTALL for compilation instructions.
...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives. ...@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy, Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (17 June 2004) Dimitri van Heesch (dimitri@stack.nl) (04 July 2004)
1.3.7-20040617 1.3.7-20040704
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
all: config.h config.l version.cpp Makefile.doxywizard all: config.h config.l version.cpp Makefile.doxywizard
$(MAKE) -f Makefile.doxywizard $@ $(MAKE) -f Makefile.doxywizard QTDIR=$(QTDIR) $@
config.h: ../../src/config.h config.h: ../../src/config.h
$(CP) ../../src/config.h config.h $(CP) ../../src/config.h config.h
......
Doxywizard is a graphical front-end to read/edit/write doxygen configuration Doxywizard is a graphical front-end to read/edit/write doxygen configuration
files. It requires Qt version 2.1.0 or higher. files. It requires Qt version 3.x or higher.
As a special exception, Dimitri van Heesch gives permission to link this
program with Qt non-commercial edition, and distribute the resulting
executable, without including the source code for the Qt non-commercial
edition in the source distribution.
This diff is collapsed.
This diff is collapsed.
...@@ -23,23 +23,21 @@ CONFIG = qt warn_on $extraopts ...@@ -23,23 +23,21 @@ CONFIG = qt warn_on $extraopts
# header file for the project # header file for the project
HEADERS = doxywizard.h \ HEADERS = doxywizard.h \
version.h \ version.h \
pagewidget.h \
inputstring.h \ inputstring.h \
inputbool.h \ inputbool.h \
inputstrlist.h \ inputstrlist.h \
inputint.h \ inputint.h \
pixmaps.h \ expert.h \
config.h config.h
# source flle for the project # source flle for the project
SOURCES = doxywizard.cpp \ SOURCES = doxywizard.cpp \
version.cpp \ version.cpp \
pagewidget.cpp \
inputstring.cpp \ inputstring.cpp \
inputbool.cpp \ inputbool.cpp \
inputstrlist.cpp \ inputstrlist.cpp \
inputint.cpp \ inputint.cpp \
pixmaps.cpp \ expert.cpp \
config.cpp config.cpp
# where to put the objects # where to put the objects
...@@ -52,8 +50,10 @@ MOC_DIR = moc ...@@ -52,8 +50,10 @@ MOC_DIR = moc
INCLUDEPATH += ../../src INCLUDEPATH += ../../src
win32:TMAKE_CXXFLAGS += -DQT_DLL win32:TMAKE_CXXFLAGS += -DQT_DLL
win32:INCLUDEPATH += . win32:INCLUDEPATH += .
macosx-c++:LIBS+=-framework CoreFoundation -framework ApplicationServices
# extra link options # extra link options
win32:TMAKE_LIBS = $(QTDIR)\lib\qtmain.lib $(QTDIR)\lib\qt-mt230nc.lib user32.lib gdi32.lib comdlg32.lib imm32.lib ole32.lib uuid.lib wsock32.lib win32:TMAKE_LFLAGS = /NODEFAULTLIB:msvcrt.lib
win32:TMAKE_LIBS = $(QTDIR)\lib\qtmain.lib $(QTDIR)\lib\qt-mt332.lib user32.lib gdi32.lib comdlg32.lib imm32.lib ole32.lib uuid.lib wsock32.lib
win32:TMAKE_LIBS_QT = win32:TMAKE_LIBS_QT =
/******************************************************************************
*
*
*
* Copyright (C) 1997-2004 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <qmainwindow.h>
#include <qpopupmenu.h>
#include <qfileinfo.h>
#include <qmenubar.h>
#include <qstatusbar.h>
#include <qfiledialog.h>
#include <qmessagebox.h>
#include <qapplication.h>
#include <qwhatsthis.h>
#include <qlayout.h>
#include <qtabwidget.h>
#include <qtoolbar.h>
#include <qtoolbutton.h>
#include <qscrollview.h>
#include <qlayout.h>
#include "expert.h"
#include "inputbool.h"
#include "inputstring.h"
#include "inputstrlist.h"
#include "inputint.h"
#include "config.h"
#include "version.h"
//-------------------------------------------------------------------------
Expert::Expert( QWidget *parent ) : QTabDialog( parent )
{
m_dependencies = new QDict< QList<IInput> >(257);
m_dependencies->setAutoDelete(TRUE);
m_inputWidgets = new QDict< IInput >;
m_switches = new QDict< QObject >;
setHelpButton();
QListIterator<ConfigOption> options = Config::instance()->iterator();
QVBoxLayout *pageLayout = 0;
QFrame *page = 0;
ConfigOption *option = 0;
for (options.toFirst();(option=options.current());++options)
{
switch(option->kind())
{
case ConfigOption::O_Info:
{
if (pageLayout) pageLayout->addStretch(1);
QScrollView *view = new QScrollView(this);
view->setVScrollBarMode(QScrollView::Auto);
view->setHScrollBarMode(QScrollView::AlwaysOff);
view->setResizePolicy(QScrollView::AutoOneFit);
page = new QFrame( view->viewport(), option->name() );
pageLayout = new QVBoxLayout(page);
pageLayout->setMargin(10);
view->addChild(page);
addTab(view,option->name());
QWhatsThis::add(page, option->docs().simplifyWhiteSpace() );
}
break;
case ConfigOption::O_String:
{
ASSERT(page!=0);
InputString::StringMode sm=InputString::StringFree;
switch(((ConfigString *)option)->widgetType())
{
case ConfigString::String: sm=InputString::StringFree; break;
case ConfigString::File: sm=InputString::StringFile; break;
case ConfigString::Dir: sm=InputString::StringDir; break;
}
InputString *inputString = new InputString(
option->name(), // name
page, // widget
*((ConfigString *)option)->valueRef(), // variable
sm // type
);
pageLayout->addWidget(inputString);
QWhatsThis::add(inputString, option->docs().simplifyWhiteSpace() );
connect(inputString,SIGNAL(changed()),SIGNAL(changed()));
m_inputWidgets->insert(option->name(),inputString);
addDependency(m_switches,option->dependsOn(),option->name());
}
break;
case ConfigOption::O_Enum:
{
ASSERT(page!=0);
InputString *inputString = new InputString(
option->name(), // name
page, // widget
*((ConfigEnum *)option)->valueRef(), // variable
InputString::StringFixed // type
);
pageLayout->addWidget(inputString);
QStrListIterator sli=((ConfigEnum *)option)->iterator();
for (sli.toFirst();sli.current();++sli)
{
inputString->addValue(sli.current());
}
inputString->init();
QWhatsThis::add(inputString, option->docs().simplifyWhiteSpace() );
connect(inputString,SIGNAL(changed()),SIGNAL(changed()));
m_inputWidgets->insert(option->name(),inputString);
addDependency(m_switches,option->dependsOn(),option->name());
}
break;
case ConfigOption::O_List:
{
ASSERT(page!=0);
InputStrList::ListMode lm=InputStrList::ListString;
switch(((ConfigList *)option)->widgetType())
{
case ConfigList::String: lm=InputStrList::ListString; break;
case ConfigList::File: lm=InputStrList::ListFile; break;
case ConfigList::Dir: lm=InputStrList::ListDir; break;
case ConfigList::FileAndDir: lm=InputStrList::ListFileDir; break;
}
InputStrList *inputStrList = new InputStrList(
option->name(), // name
page, // widget
*((ConfigList *)option)->valueRef(), // variable
lm // type
);
pageLayout->addWidget(inputStrList);
QWhatsThis::add(inputStrList, option->docs().simplifyWhiteSpace() );
connect(inputStrList,SIGNAL(changed()),SIGNAL(changed()));
m_inputWidgets->insert(option->name(),inputStrList);
addDependency(m_switches,option->dependsOn(),option->name());
}
break;
break;
case ConfigOption::O_Bool:
{
ASSERT(page!=0);
InputBool *inputBool = new InputBool(
option->name(), // name
page, // widget
*((ConfigBool *)option)->valueRef() // variable
);
pageLayout->addWidget(inputBool);
QWhatsThis::add(inputBool, option->docs().simplifyWhiteSpace() );
connect(inputBool,SIGNAL(changed()),SIGNAL(changed()));
m_inputWidgets->insert(option->name(),inputBool);
addDependency(m_switches,option->dependsOn(),option->name());
}
break;
case ConfigOption::O_Int:
{
ASSERT(page!=0);
InputInt *inputInt = new InputInt(
option->name(), // name
page, // widget
*((ConfigInt *)option)->valueRef(), // variable
((ConfigInt *)option)->minVal(), // min value
((ConfigInt *)option)->maxVal() // max value
);
pageLayout->addWidget(inputInt);
QWhatsThis::add(inputInt, option->docs().simplifyWhiteSpace() );
connect(inputInt,SIGNAL(changed()),SIGNAL(changed()));
m_inputWidgets->insert(option->name(),inputInt);
addDependency(m_switches,option->dependsOn(),option->name());
}
break;
case ConfigOption::O_Obsolete:
break;
}
}
if (pageLayout) pageLayout->addStretch(1);
QDictIterator<QObject> di(*m_switches);
QObject *obj = 0;
for (di.toFirst();(obj=di.current());++di)
{
connect(obj,SIGNAL(toggle(const char *,bool)),SLOT(toggle(const char *,bool)));
// UGLY HACK: assumes each item depends on a boolean without checking!
emit toggle(di.currentKey(),((InputBool *)obj)->getState());
}
connect(this,SIGNAL(helpButtonPressed()),
this,SLOT(handleHelp()));
}
Expert::~Expert()
{
delete m_dependencies;
delete m_inputWidgets;
delete m_switches;
}
void Expert::handleHelp()
{
QWhatsThis::enterWhatsThisMode();
}
void Expert::addDependency(QDict<QObject> *switches,
const QCString &dep,const QCString &name)
{
if (!dep.isEmpty())
{
//printf("Expert::addDependency(%s)\n",name.data());
IInput *parent = m_inputWidgets->find(dep);
ASSERT(parent!=0);
IInput *child = m_inputWidgets->find(name);
ASSERT(child!=0);
if (switches->find(dep)==0)
{
switches->insert(dep,parent->qobject());
}
QList<IInput> *list = m_dependencies->find(dep);
if (list==0)
{
list = new QList<IInput>;
m_dependencies->insert(dep,list);
}
list->append(child);
}
}
void Expert::toggle(const char *name,bool state)
{
QList<IInput> *inputs = m_dependencies->find(name);
ASSERT(inputs!=0);
IInput *input = inputs->first();
while (input)
{
input->setEnabled(state);
input = inputs->next();
}
}
void Expert::init()
{
QDictIterator<IInput> di(*m_inputWidgets);
IInput *input = 0;
for (di.toFirst();(input=di.current());++di)
{
input->init();
}
QDictIterator<QObject> dio(*m_switches);
QObject *obj = 0;
for (dio.toFirst();(obj=dio.current());++dio)
{
connect(obj,SIGNAL(toggle(const char *,bool)),SLOT(toggle(const char *,bool)));
// UGLY HACK: assumes each item depends on a boolean without checking!
emit toggle(dio.currentKey(),((InputBool *)obj)->getState());
}
}
...@@ -12,52 +12,71 @@ ...@@ -12,52 +12,71 @@
* *
*/ */
#ifndef _PAGEWIDGET_H #ifndef EXPERT_H
#define _PAGEWIDGET_H #define EXPERT_H
#include <qscrollview.h> #include <qtabdialog.h>
#include <qlist.h>
#include <qdict.h>
class QTabWidget; class IInput;
class QVBoxLayout; class QWidget;
class QObject;
class InputBool;
class InputString;
class InputStrList;
class InputFile;
class InputDir;
class InputInt;
class FrameLayout : public QFrame class ConfigWidget
{ {
Q_OBJECT
public: public:
FrameLayout(QWidget *parent=0, const char *name=0, WFlags g=0); enum Kind { Int, String, StrList, Bool };
~FrameLayout();
void addStretch(int s=0); ConfigWidget(QWidget *w,Kind k) : m_widget(w), m_kind(k) {}
void addWidget(QWidget *w);
Kind kind() const { return m_kind; }
InputString *getString() const
{ return m_kind==String ? (InputString *)m_widget : 0; }
InputBool *getBool() const
{ return m_kind==Bool ? (InputBool *)m_widget : 0; }
InputStrList *getStrList() const
{ return m_kind==StrList ? (InputStrList *)m_widget : 0; }
InputInt *getInt() const
{ return m_kind==Int ? (InputInt *)m_widget : 0; }
private: private:
QVBoxLayout *lay; QWidget *m_widget;
Kind m_kind;
}; };
class PageWidget : public QScrollView class Expert : public QTabDialog
{ {
Q_OBJECT Q_OBJECT
public: public:
PageWidget( QTabWidget *parent, const char *name ); Expert(QWidget *parent=0);
~PageWidget() {}; ~Expert();
//void frameChanged() void init();
//{ void addDependency(QDict<QObject> *switches,
// if (!layout()) return; const QCString &dep,const QCString &name);
// layout()->setMargin(frameWidth());
//}
void addStretch(int stretch=0);
void addWidget(QWidget *w);
QWidget *getLayout() const;
protected:
void resizeEvent(QResizeEvent *e);
void paintEvent(QPaintEvent *e);
private: signals:
FrameLayout *lay; void changed();
QTabWidget *m_parent;
private slots:
void toggle(const char *,bool);
void handleHelp();
private:
QDict<IInput> *m_inputWidgets;
QDict< QList<IInput> > *m_dependencies;
QDict<QObject> *m_switches;
}; };
#endif #endif
...@@ -13,35 +13,32 @@ ...@@ -13,35 +13,32 @@
*/ */
#include "inputbool.h" #include "inputbool.h"
#include "pagewidget.h" //#if QT_VERSION >= 300
#if QT_VERSION >= 300 //#include <qstylefactory.h>
#include <qstylefactory.h> //#else
#else //#include <qwindowsstyle.h>
#include <qwindowsstyle.h> //#endif
#endif
#include <qlayout.h> #include <qlayout.h>
InputBool::InputBool( const QString & text, PageWidget * parent, bool &flag ) InputBool::InputBool( const QString & text, QWidget * parent, bool &flag )
: /*QCheckBox( text, parent->getLayout() )*/ QWidget(parent->getLayout()), state(flag) : QWidget(parent), state(flag)
{ {
QBoxLayout *layout = new QHBoxLayout(this); QBoxLayout *layout = new QHBoxLayout(this);
cb = new QCheckBox(text,this); cb = new QCheckBox(text,this);
layout->addWidget(cb); layout->addWidget(cb);
layout->addStretch(10); layout->addStretch(10);
#if QT_VERSION >= 300 //#if QT_VERSION >= 300
QStyle *winStyle = QStyleFactory::create("windows"); // QStyle *winStyle = QStyleFactory::create("windows");
#else //#else
QWindowsStyle *winStyle = new QWindowsStyle(); // QWindowsStyle *winStyle = new QWindowsStyle();
#endif //#endif
cb->setChecked( flag ); cb->setChecked( flag );
if (winStyle) cb->setStyle( winStyle ); // if (winStyle) cb->setStyle( winStyle );
cb->setMinimumSize( sizeHint() ); cb->setMinimumSize( sizeHint() );
connect( cb, SIGNAL(toggled(bool)), SLOT(setState(bool)) ); connect( cb, SIGNAL(toggled(bool)), SLOT(setState(bool)) );
parent->addWidget(this);
layout->activate(); layout->activate();
} }
......
...@@ -27,7 +27,7 @@ class InputBool : public QWidget, /*QCheckBox,*/ public IInput ...@@ -27,7 +27,7 @@ class InputBool : public QWidget, /*QCheckBox,*/ public IInput
Q_OBJECT Q_OBJECT
public: public:
InputBool( const QString &text, PageWidget *parent, bool &flag ); InputBool( const QString &text, QWidget *parent, bool &flag );
~InputBool(){}; ~InputBool(){};
void init(); void init();
void setEnabled(bool b) { cb->setEnabled(b); } void setEnabled(bool b) { cb->setEnabled(b); }
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
*/ */
#include "inputint.h" #include "inputint.h"
#include "pagewidget.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -22,8 +21,8 @@ ...@@ -22,8 +21,8 @@
#include <qwindowsstyle.h> #include <qwindowsstyle.h>
#include <qspinbox.h> #include <qspinbox.h>
InputInt::InputInt( const QString & label, PageWidget *parent, int &val, int minVal,int maxVal ) InputInt::InputInt( const QString & label, QWidget *parent, int &val, int minVal,int maxVal )
: QWidget( parent->getLayout() ), m_val(val), m_minVal(minVal), m_maxVal(maxVal) : QWidget( parent), m_val(val), m_minVal(minVal), m_maxVal(maxVal)
{ {
QHBoxLayout *layout = new QHBoxLayout( this, 5 ); QHBoxLayout *layout = new QHBoxLayout( this, 5 );
...@@ -44,7 +43,6 @@ InputInt::InputInt( const QString & label, PageWidget *parent, int &val, int min ...@@ -44,7 +43,6 @@ InputInt::InputInt( const QString & label, PageWidget *parent, int &val, int min
connect(sp, SIGNAL(valueChanged(int)), connect(sp, SIGNAL(valueChanged(int)),
this, SLOT(valueChanged(int)) ); this, SLOT(valueChanged(int)) );
parent->addWidget(this);
} }
void InputInt::valueChanged(int val) void InputInt::valueChanged(int val)
......
...@@ -22,14 +22,13 @@ ...@@ -22,14 +22,13 @@
class QLabel; class QLabel;
class QSpinBox; class QSpinBox;
class PageWidget;
class InputInt : public QWidget, public IInput class InputInt : public QWidget, public IInput
{ {
Q_OBJECT Q_OBJECT
public: public:
InputInt( const QString &text, PageWidget *parent, int &val, InputInt( const QString &text, QWidget *parent, int &val,
int minVal, int maxVal ); int minVal, int maxVal );
~InputInt(){}; ~InputInt(){};
void setEnabled(bool); void setEnabled(bool);
......
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
*/ */
#include "inputstring.h" #include "inputstring.h"
#include "pagewidget.h" //#include "pixmaps.h"
#include "pixmaps.h"
#include <qlabel.h> #include <qlabel.h>
#include <qlayout.h> #include <qlayout.h>
...@@ -28,8 +27,8 @@ ...@@ -28,8 +27,8 @@
InputString::InputString( const QString & label, InputString::InputString( const QString & label,
PageWidget *parent, QCString &s, StringMode m ) QWidget *parent, QCString &s, StringMode m )
: QWidget( parent->getLayout() ), str(s), sm(m), m_values(0), m_index(0) : QWidget( parent ), str(s), sm(m), m_values(0), m_index(0)
{ {
if (m==StringFixed) if (m==StringFixed)
{ {
...@@ -38,6 +37,7 @@ InputString::InputString( const QString & label, ...@@ -38,6 +37,7 @@ InputString::InputString( const QString & label,
lab->setMinimumSize( lab->sizeHint() ); lab->setMinimumSize( lab->sizeHint() );
layout->addWidget( lab ); layout->addWidget( lab );
com = new QComboBox( this ); com = new QComboBox( this );
com->setMinimumSize(com->sizeHint());
layout->addWidget( com ); layout->addWidget( com );
layout->addStretch( 1 ); layout->addStretch( 1 );
le=0; le=0;
...@@ -57,16 +57,21 @@ InputString::InputString( const QString & label, ...@@ -57,16 +57,21 @@ InputString::InputString( const QString & label,
layout->addWidget( le,0,1 ); layout->addWidget( le,0,1 );
if (m==StringFile || m==StringDir) if (m==StringFile || m==StringDir)
{ {
QPixmap pixmap = QPixmap(m==StringFile ? //QPixmap pixmap = QPixmap(m==StringFile ?
file_xpm : // file_xpm :
folder_xpm ); // folder_xpm );
br = new QPushButton( this ); br = new QPushButton( this );
br->setPixmap(pixmap);
br->setMinimumSize( br->sizeHint() ); br->setMinimumSize( br->sizeHint() );
if (m==StringFile) if (m==StringFile)
{
br->setText("File...");
QToolTip::add(br,"Browse to a file"); QToolTip::add(br,"Browse to a file");
}
else else
{
br->setText("Folder...");
QToolTip::add(br,"Browse to a folder"); QToolTip::add(br,"Browse to a folder");
}
layout->addWidget( br,0,2 ); layout->addWidget( br,0,2 );
} }
else else
...@@ -83,8 +88,6 @@ InputString::InputString( const QString & label, ...@@ -83,8 +88,6 @@ InputString::InputString( const QString & label,
if (br) connect( br, SIGNAL(clicked()), this, SLOT(browse()) ); if (br) connect( br, SIGNAL(clicked()), this, SLOT(browse()) );
if (com) connect( com, SIGNAL(activated(const QString &)), if (com) connect( com, SIGNAL(activated(const QString &)),
this, SLOT(textChanged(const QString &)) ); this, SLOT(textChanged(const QString &)) );
parent->addWidget(this);
} }
InputString::~InputString() InputString::~InputString()
......
...@@ -26,7 +26,6 @@ class QLabel; ...@@ -26,7 +26,6 @@ class QLabel;
class QLineEdit; class QLineEdit;
class QPushButton; class QPushButton;
class QComboBox; class QComboBox;
class PageWidget;
class InputString : public QWidget, public IInput class InputString : public QWidget, public IInput
{ {
...@@ -39,7 +38,7 @@ class InputString : public QWidget, public IInput ...@@ -39,7 +38,7 @@ class InputString : public QWidget, public IInput
StringFixed=3 StringFixed=3
}; };
InputString( const QString &text, PageWidget *parent, QCString &s, InputString( const QString &text, QWidget *parent, QCString &s,
StringMode m=StringFree ); StringMode m=StringFree );
~InputString(); ~InputString();
void setEnabled(bool); void setEnabled(bool);
......
...@@ -13,8 +13,7 @@ ...@@ -13,8 +13,7 @@
*/ */
#include "inputstrlist.h" #include "inputstrlist.h"
#include "pagewidget.h" //#include "pixmaps.h"
#include "pixmaps.h"
#include <qlabel.h> #include <qlabel.h>
#include <qlayout.h> #include <qlayout.h>
...@@ -27,8 +26,8 @@ ...@@ -27,8 +26,8 @@
#include <qtooltip.h> #include <qtooltip.h>
InputStrList::InputStrList( const QString & label, InputStrList::InputStrList( const QString & label,
PageWidget *parent, QStrList &sl, ListMode lm) QWidget *parent, QStrList &sl, ListMode lm)
: QWidget(parent->getLayout()), strList(sl) : QWidget(parent), strList(sl)
{ {
QGridLayout *layout = new QGridLayout( this, 2, 2, 5 ); QGridLayout *layout = new QGridLayout( this, 2, 2, 5 );
lab = new QLabel( label, this ); lab = new QLabel( label, this );
...@@ -42,19 +41,22 @@ InputStrList::InputStrList( const QString & label, ...@@ -42,19 +41,22 @@ InputStrList::InputStrList( const QString & label,
boxlayout->addWidget( le, 1 ); boxlayout->addWidget( le, 1 );
add = new QPushButton( dw ); add = new QPushButton( dw );
add->setPixmap( QPixmap( add_xpm )); //add->setPixmap( QPixmap( add_xpm ));
add->setText( "+" );
add->setMinimumSize( add->sizeHint() ); add->setMinimumSize( add->sizeHint() );
QToolTip::add(add,"Add item"); QToolTip::add(add,"Add item");
boxlayout->addWidget( add ); boxlayout->addWidget( add );
del = new QPushButton( dw ); del = new QPushButton( dw );
del->setPixmap( QPixmap( del_xpm )); //del->setPixmap( QPixmap( del_xpm ));
del->setText( "-" );
del->setMinimumSize( del->sizeHint() ); del->setMinimumSize( del->sizeHint() );
QToolTip::add(del,"Delete selected item"); QToolTip::add(del,"Delete selected item");
boxlayout->addWidget( del ); boxlayout->addWidget( del );
upd = new QPushButton( dw ); upd = new QPushButton( dw );
upd->setPixmap( QPixmap( update_xpm )); //upd->setPixmap( QPixmap( update_xpm ));
upd->setText( "*" );
upd->setMinimumSize( upd->sizeHint() ); upd->setMinimumSize( upd->sizeHint() );
QToolTip::add(upd,"Update selected item"); QToolTip::add(upd,"Update selected item");
boxlayout->addWidget( upd ); boxlayout->addWidget( upd );
...@@ -72,7 +74,8 @@ InputStrList::InputStrList( const QString & label, ...@@ -72,7 +74,8 @@ InputStrList::InputStrList( const QString & label,
if (lm&ListFile) if (lm&ListFile)
{ {
brFile = new QPushButton(dw); brFile = new QPushButton(dw);
brFile->setPixmap( QPixmap(file_xpm) ); //brFile->setPixmap( QPixmap(file_xpm) );
brFile->setText("Select...");
brFile->setMinimumSize(brFile->sizeHint()); brFile->setMinimumSize(brFile->sizeHint());
QToolTip::add(brFile,"Browse to a file"); QToolTip::add(brFile,"Browse to a file");
boxlayout->addWidget( brFile ); boxlayout->addWidget( brFile );
...@@ -80,7 +83,8 @@ InputStrList::InputStrList( const QString & label, ...@@ -80,7 +83,8 @@ InputStrList::InputStrList( const QString & label,
if (lm&ListDir) if (lm&ListDir)
{ {
brDir = new QPushButton(dw); brDir = new QPushButton(dw);
brDir->setPixmap( QPixmap(folder_xpm) ); //brDir->setPixmap( QPixmap(folder_xpm) );
brDir->setText("Select...");
brDir->setMinimumSize(brDir->sizeHint()); brDir->setMinimumSize(brDir->sizeHint());
QToolTip::add(brDir,"Browse to a folder"); QToolTip::add(brDir,"Browse to a folder");
boxlayout->addWidget( brDir ); boxlayout->addWidget( brDir );
...@@ -111,10 +115,6 @@ InputStrList::InputStrList( const QString & label, ...@@ -111,10 +115,6 @@ InputStrList::InputStrList( const QString & label,
} }
connect(lb, SIGNAL(selected(const QString &)), connect(lb, SIGNAL(selected(const QString &)),
this, SLOT(selectText(const QString &))); this, SLOT(selectText(const QString &)));
parent->addWidget(this);
strList=sl;
} }
void InputStrList::addString() void InputStrList::addString()
......
...@@ -24,7 +24,6 @@ class QLabel; ...@@ -24,7 +24,6 @@ class QLabel;
class QLineEdit; class QLineEdit;
class QPushButton; class QPushButton;
class QListBox; class QListBox;
class PageWidget;
class QStrList; class QStrList;
class InputStrList : public QWidget, public IInput class InputStrList : public QWidget, public IInput
...@@ -38,7 +37,7 @@ class InputStrList : public QWidget, public IInput ...@@ -38,7 +37,7 @@ class InputStrList : public QWidget, public IInput
ListFileDir=ListFile|ListDir ListFileDir=ListFile|ListDir
}; };
InputStrList( const QString &text, PageWidget *parent, InputStrList( const QString &text, QWidget *parent,
QStrList &sl, ListMode v=ListString ); QStrList &sl, ListMode v=ListString );
~InputStrList() {}; ~InputStrList() {};
void setEnabled(bool); void setEnabled(bool);
......
/******************************************************************************
*
*
*
* Copyright (C) 1997-2004 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
*/
#include <stdio.h>
#include <qtabwidget.h>
#include <qlayout.h>
#include "pagewidget.h"
FrameLayout::FrameLayout(QWidget *parent,const char *name,WFlags f)
: QFrame(parent,name,f)
{
lay = new QVBoxLayout(this,5,3,name);
}
FrameLayout::~FrameLayout()
{
}
void FrameLayout::addStretch(int stretch)
{
lay->addStretch(stretch);
}
void FrameLayout::addWidget(QWidget *w)
{
lay->addWidget(w);
}
PageWidget::PageWidget( QTabWidget *parent, const char *name )
: QScrollView ( parent,name )
{
// the Qt docs say that one has to insert the viewport() as a parent
// here but this does not work! Insert 0 does give the proper result!
lay = new FrameLayout(this);
addChild(lay);
setVScrollBarMode(QScrollView::Auto);
setHScrollBarMode(QScrollView::AlwaysOff);
m_parent=parent;
m_parent->addTab( this, name );
}
void PageWidget::addStretch(int stretch)
{
lay->addStretch(stretch);
//printf("Viewport SizeHint %d,%d\n",viewport()->sizeHint().width(),viewport()->sizeHint().height());
}
void PageWidget::addWidget(QWidget *w)
{
//printf("Adding widget height=%d\n",w->sizeHint().height());
lay->addWidget(w);
}
QWidget *PageWidget::getLayout() const
{
return lay;
}
void PageWidget::resizeEvent(QResizeEvent *e)
{
QScrollView::resizeEvent(e);
//printf("PageWidget::resizeEvent!\n");
lay->resize(viewport()->width(),QMAX(lay->height(),viewport()->height()));
}
void PageWidget::paintEvent(QPaintEvent *e)
{
QScrollView::paintEvent(e);
//printf("PageWidget::paintEvent()\n");
lay->resize(viewport()->width(),QMAX(lay->height(),viewport()->height()));
}
/******************************************************************************
*
*
*
* Copyright (C) 1997-2004 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
*/
#include "pixmaps.h"
static const char * const folder_xpm_data[] =
{
"16 16 6 1",
". c None",
"b c #ffff00",
"d c #000000",
"* c #999999",
"a c #cccccc",
"c c #ffffff",
"................",
"................",
"..*****.........",
".*ababa*........",
"*abababa******..",
"*cccccccccccc*d.",
"*cbababababab*d.",
"*cabababababa*d.",
"*cbababababab*d.",
"*cabababababa*d.",
"*cbababababab*d.",
"*cabababababa*d.",
"*cbababababab*d.",
"**************d.",
".dddddddddddddd.",
"................"
};
const char **folder_xpm = (const char **)folder_xpm_data;
static const char* const file_xpm_data[] =
{
"16 16 5 1",
". c #7f7f7f",
"# c None",
"c c #000000",
"b c #bfbfbf",
"a c #ffffff",
"################",
"#..........#####",
"#.aaaaaaaab.####",
"#.aaaaaaaaba.###",
"#.aaaaaaaacccc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.aaaaaaaaaabc##",
"#.bbbbbbbbbbbc##",
"#ccccccccccccc##",
"################"
};
const char **file_xpm = (const char **)file_xpm_data;
static const char * const add_xpm_data[] =
{
"16 16 5 1",
". c None",
"* c #0328f9",
"# c #354396",
"a c #353740",
"c c #999999",
"................",
"......###.......",
"......#*ac......",
"......#*ac......",
"......#*ac......",
"......#*ac......",
".######*a#####..",
".#***********ac.",
".#aaaaa*aaaaaac.",
"..cccc#*acccccc.",
"......#*ac......",
"......#*ac......",
"......#*ac......",
"......#aac......",
".......ccc......",
"................"
};
const char **add_xpm = (const char **)add_xpm_data;
static const char * const del_xpm_data[] =
{
"16 16 5 1",
". c None",
"* c #0328f9",
"# c #354396",
"a c #353740",
"c c #999999",
"................",
"................",
"................",
"................",
"................",
"................",
".#############..",
".#***********ac.",
".aaaaaaaaaaaaac.",
"..ccccccccccccc.",
"................",
"................",
"................",
"................",
"................",
"................"
};
const char **del_xpm = (const char **)del_xpm_data;
static char *update_xpm_data[] =
{
"16 16 5 1",
/* colors */
". c #0328f9",
"# c #354396",
"a c #353740",
"b c None",
"c c #999999",
/* pixels */
"bbbbbbbbbbbbbbbb",
"bbbbbbbb#####acb",
"bbbbbbbb#....abb",
"bbc##cbb#...acbb",
"bb#..abb#....abb",
"bc#..abb#.a..acb",
"b#..acbbaac#..ab",
"b#..abbbcbb#..ab",
"b#..abbbbbb#..ab",
"b#..acbbbbc#..ab",
"bc#..#cbbc#..acb",
"bb#...####...acb",
"bbca........acbb",
"bbbbaa....aaccbb",
"bbbbbcaaaaccbbbb",
"bbbbbbbbbbbbbbbb"
};
const char **update_xpm = (const char **)update_xpm_data;
static const char *fileopen_xpm_data[] =
{
"16 13 5 1",
". c #040404",
"# c #808304",
"a c None",
"b c #f3f704",
"c c #f3f7f3",
"aaaaaaaaa...aaaa",
"aaaaaaaa.aaa.a.a",
"aaaaaaaaaaaaa..a",
"a...aaaaaaaa...a",
".bcb.......aaaaa",
".cbcbcbcbc.aaaaa",
".bcbcbcbcb.aaaaa",
".cbcb...........",
".bcb.#########.a",
".cb.#########.aa",
".b.#########.aaa",
"..#########.aaaa",
"...........aaaaa"
};
const char **fileopen_xpm = (const char **)fileopen_xpm_data;
/* XPM */
static const char *filesave_xpm_data[] =
{
"14 14 4 1",
". c #040404",
"# c #808304",
"a c #bfc2bf",
"b c None",
"..............",
".#.aaaaaaaa.a.",
".#.aaaaaaaa...",
".#.aaaaaaaa.#.",
".#.aaaaaaaa.#.",
".#.aaaaaaaa.#.",
".#.aaaaaaaa.#.",
".##........##.",
".############.",
".##.........#.",
".##......aa.#.",
".##......aa.#.",
".##......aa.#.",
"b............."
};
const char **filesave_xpm = (const char **)filesave_xpm_data;
/* XPM */
static const char *rundoxygen_xpm_data[] =
{
"16 16 11 1",
" c None",
". c #000000",
"+ c #DCDCDC",
"@ c #A0A0A0",
"# c #C3C3C3",
"$ c #808080",
"% c #FFA858",
"& c #FFDCA8",
"* c #FFFFC0",
"= c #FFFFFF",
"- c #585858",
" .. ",
" .. .++. .. ",
" .+@.@##@.@+. ",
" .@+$@%%@$+@. ",
" .$%%&%&%$. ",
" ..+@%&$$%&@+.. ",
".+#@%&%@@&*%@#+.",
".$@+$&*&&=*$+@$.",
" .--+$&*=&$+--. ",
" .$#++$$++#$. ",
" .@=$-$++$-$=@. ",
" .+@-..@@..-@+. ",
" ... .+=. ... ",
" .-$. ",
" .. ",
" "
};
const char **rundoxygen_xpm = (const char **)rundoxygen_xpm_data;
/******************************************************************************
*
*
*
* Copyright (C) 1997-2004 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
*/
#ifndef _PIXMAPS_H
#define _PIXMAPS_H
extern const char** folder_xpm;
extern const char** file_xpm;
extern const char** add_xpm;
extern const char** del_xpm;
extern const char** update_xpm;
extern const char** fileopen_xpm;
extern const char** filesave_xpm;
extern const char** rundoxygen_xpm;
#endif
/******************************************************************************
*
*
*
* Copyright (C) 1997-2004 by Dimitri van Heesch.
*
* Permission to use, copy, modify, and distribute this software and its
* documentation under the terms of the GNU General Public License is hereby
* granted. No representations are made about the suitability of this software
* for any purpose. It is provided "as is" without express or implied warranty.
* See the GNU General Public License for more details.
*
* Documents produced by Doxygen are derivative works derived from the
* input used in their production; they are not affected by this license.
*
*/
#ifndef VERSION_H #ifndef VERSION_H
#define VERSION_H #define VERSION_H
......
...@@ -27,6 +27,7 @@ f_prefix=/usr/local ...@@ -27,6 +27,7 @@ f_prefix=/usr/local
f_insttool=NO f_insttool=NO
f_english=NO f_english=NO
f_wizard=NO f_wizard=NO
f_thread=NO
f_langs=nl,se,cz,fr,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt f_langs=nl,se,cz,fr,it,de,jp,je,es,fi,ru,hr,pl,pt,hu,kr,ke,ro,si,cn,no,br,dk,sk,ua,gr,tw,sr,ca,lt
while test -n "$1"; do while test -n "$1"; do
...@@ -233,21 +234,21 @@ if test "$f_wizard" = YES; then ...@@ -233,21 +234,21 @@ if test "$f_wizard" = YES; then
if test -d "/usr/lib/qt3/lib"; then if test -d "/usr/lib/qt3/lib"; then
if test -d "/usr/lib/qt3/include"; then if test -d "/usr/lib/qt3/include"; then
if test -x "/usr/lib/qt3/bin/moc"; then if test -x "/usr/lib/qt3/bin/moc"; then
QTDIR="/usr/lib/qt3"; QTDIR="/usr/lib/qt3"
fi fi
fi fi
fi fi
if test -d "/usr/lib/qt2/lib"; then if test -d "/usr/lib/qt2/lib"; then
if test -d "/usr/lib/qt2/include"; then if test -d "/usr/lib/qt2/include"; then
if test -x "/usr/lib/qt2/bin/moc"; then if test -x "/usr/lib/qt2/bin/moc"; then
QTDIR="/usr/lib/qt2"; QTDIR="/usr/lib/qt2"
fi fi
fi fi
fi fi
if test -d "/usr/lib/qt/lib"; then if test -d "/usr/lib/qt/lib"; then
if test -d "/usr/lib/qt/include"; then if test -d "/usr/lib/qt/include"; then
if test -x "/usr/lib/qt/bin/moc"; then if test -x "/usr/lib/qt/bin/moc"; then
QTDIR="/usr/lib/qt"; QTDIR="/usr/lib/qt"
fi fi
fi fi
fi fi
...@@ -260,19 +261,22 @@ if test "$f_wizard" = YES; then ...@@ -260,19 +261,22 @@ if test "$f_wizard" = YES; then
exit 2 exit 2
else else
if test ! -d "$QTDIR/lib"; then if test ! -d "$QTDIR/lib"; then
echo "QTDIR is set, but library directory does not exist!" echo "QTDIR is set to $QTDIR, but library directory $QTDIR/lib does not exist!"
exit 2 exit 2
fi fi
if test ! -d "$QTDIR/include"; then if test ! -d "$QTDIR/include"; then
echo "QTDIR is set, but include directory does not exist!" echo "QTDIR is set to $QTDIR, but include directory $QTDIR/include does not exist!"
exit 2 exit 2
fi fi
if test ! -x "$QTDIR/bin/moc"; then if test ! -x "$QTDIR/bin/moc"; then
echo "QTDIR is set, but the moc tool could not be found in $QTDIR/bin!" echo "QTDIR is set to $QTDIR, but the moc tool could not be found in $QTDIR/bin!"
exit 2 exit 2
fi fi
echo " headers $QTDIR/include," echo " headers $QTDIR/include,"
echo " libraries $QTDIR/lib" echo " libraries $QTDIR/lib"
if test -n "`ls $QTDIR/lib/* | grep qt-mt`"; then
f_thread=YES
fi
fi fi
fi fi
...@@ -418,6 +422,7 @@ INSTALL = $f_prefix ...@@ -418,6 +422,7 @@ INSTALL = $f_prefix
INSTTOOL = $f_insttool INSTTOOL = $f_insttool
DOXYDOCS = .. DOXYDOCS = ..
DOCDIR = $f_docdir DOCDIR = $f_docdir
QTDIR = $QTDIR
EOF EOF
if test "$f_dot" != NO; then if test "$f_dot" != NO; then
...@@ -505,10 +510,14 @@ for i in $f_inprofiles ; do ...@@ -505,10 +510,14 @@ for i in $f_inprofiles ; do
EOF EOF
if test "$f_debug" = NO; then if test "$f_debug" = NO; then
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/release/g" >> $DST realopts="release"
else else
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/debug/g" >> $DST realopts="debug"
fi
if test "$f_thread" = YES; then
realopts="$realopts thread"
fi fi
cat $SRC .tmakeconfig | sed -e "s/\$extraopts/$realopts/g" >> $DST
echo " Created $DST from $SRC..." echo " Created $DST from $SRC..."
done done
......
...@@ -239,7 +239,7 @@ followed by the descriptions of the tags grouped by category. ...@@ -239,7 +239,7 @@ followed by the descriptions of the tags grouped by category.
<dt>\c CREATE_SUBDIRS <dd> <dt>\c CREATE_SUBDIRS <dd>
\addindex CREATE_SUBDIRS \addindex CREATE_SUBDIRS
If the \c CREATE_SUBDIRS tag is set to \c YES, then doxygen will create If the \c CREATE_SUBDIRS tag is set to \c YES, then doxygen will create
2 levels of 10 sub-directories under the output directory of each output 4096 sub-directories (in 2 levels) under the output directory of each output
format and will distribute the generated files over these directories. format and will distribute the generated files over these directories.
Enabling this option can be useful when feeding doxygen a huge amount of source Enabling this option can be useful when feeding doxygen a huge amount of source
files, where putting all generated files in the same directory would otherwise files, where putting all generated files in the same directory would otherwise
......
...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other ...@@ -23,7 +23,7 @@ text fragments, generated by doxygen, can be produced in languages other
than English (the default). The output language is chosen through the than English (the default). The output language is chosen through the
configuration file (with default name and known as Doxyfile). configuration file (with default name and known as Doxyfile).
Currently (version 1.3.7-20040616), 29 languages Currently (version 1.3.7), 29 languages
are supported (sorted alphabetically): are supported (sorted alphabetically):
Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian, Brazilian Portuguese, Catalan, Chinese, Chinese Traditional, Croatian,
Czech, Danish, Dutch, English, Finnish, French, German, Greek, Czech, Danish, Dutch, English, Finnish, French, German, Greek,
......
Summary: A documentation system for C/C++. Summary: A documentation system for C/C++.
Name: doxygen Name: doxygen
Version: 1.3.7_20040617 Version: 1.3.7_20040704
Release: 1 Release: 1
Epoch: 1 Epoch: 1
Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz Source0: ftp://ftp.stack.nl/pub/users/dimitri/%{name}-%{version}.src.tar.gz
......
...@@ -1348,7 +1348,7 @@ void Config::create() ...@@ -1348,7 +1348,7 @@ void Config::create()
cb = addBool( cb = addBool(
"CREATE_SUBDIRS", "CREATE_SUBDIRS",
"If the CREATE_SUBDIRS tag is set to YES, then doxygen will create \n" "If the CREATE_SUBDIRS tag is set to YES, then doxygen will create \n"
"2 levels of 10 sub-directories under the output directory of each output \n" "4096 sub-directories (in 2 levels) under the output directory of each output \n"
"format and will distribute the generated files over these directories. \n" "format and will distribute the generated files over these directories. \n"
"Enabling this option can be useful when feeding doxygen a huge amount of source \n" "Enabling this option can be useful when feeding doxygen a huge amount of source \n"
"files, where putting all generated files in the same directory would otherwise \n" "files, where putting all generated files in the same directory would otherwise \n"
...@@ -1361,10 +1361,11 @@ void Config::create() ...@@ -1361,10 +1361,11 @@ void Config::create()
"documentation generated by doxygen is written. Doxygen will use this \n" "documentation generated by doxygen is written. Doxygen will use this \n"
"information to generate all constant output in the proper language. \n" "information to generate all constant output in the proper language. \n"
"The default language is English, other supported languages are: \n" "The default language is English, other supported languages are: \n"
"Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, \n" "Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, \n"
"Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en \n" "Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, \n"
"(Japanese with English messages), Korean, Korean-en, Norwegian, Polish, Portuguese, \n" "Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, \n"
"Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.\n", "Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, \n"
"Swedish, and Ukrainian.\n",
"English" "English"
); );
#ifdef LANG_BR #ifdef LANG_BR
...@@ -1513,7 +1514,7 @@ void Config::create() ...@@ -1513,7 +1514,7 @@ void Config::create()
"If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full \n" "If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full \n"
"path before files name in the file list and in the header files. If set \n" "path before files name in the file list and in the header files. If set \n"
"to NO the shortest path that makes the file name unique will be used. \n", "to NO the shortest path that makes the file name unique will be used. \n",
FALSE TRUE
); );
cl = addList( cl = addList(
"STRIP_FROM_PATH", "STRIP_FROM_PATH",
......
...@@ -193,6 +193,48 @@ static bool convertMapFile(QTextStream &t,const char *mapName, ...@@ -193,6 +193,48 @@ static bool convertMapFile(QTextStream &t,const char *mapName,
return TRUE; return TRUE;
} }
static QArray<int> * s_newNumber = new QArray<int>();
static int s_max_newNumber=0;
inline int reNumberNode(int number, bool doReNumbering)
{
if (!doReNumbering)
{
return number;
}
else
{
int s = s_newNumber->size();
if (number>=s)
{
int ns=0;
ns = s * 3 / 2 + 5; // new size
if (number>=ns) // number still doesn't fit
{
ns = number * 3 / 2 + 5;
}
s_newNumber->resize(ns);
for (int i=s;i<ns;i++) // clear new part of the array
{
s_newNumber->at(i)=0;
}
}
int i = s_newNumber->at(number);
if (i == 0) // not yet mapped
{
i = ++s_max_newNumber; // start from 1
s_newNumber->at(number) = i;
}
return i;
}
}
static void resetReNumbering()
{
s_max_newNumber=0;
s_newNumber->resize(s_max_newNumber);
}
static bool readBoundingBoxDot(const char *fileName,int *width,int *height) static bool readBoundingBoxDot(const char *fileName,int *width,int *height)
{ {
QFile f(fileName); QFile f(fileName);
...@@ -497,14 +539,15 @@ static void writeBoxMemberList(QTextStream &t,char prot,MemberList &ml,ClassDef ...@@ -497,14 +539,15 @@ static void writeBoxMemberList(QTextStream &t,char prot,MemberList &ml,ClassDef
void DotNode::writeBox(QTextStream &t, void DotNode::writeBox(QTextStream &t,
GraphType gt, GraphType gt,
GraphOutputFormat /*format*/, GraphOutputFormat /*format*/,
bool hasNonReachableChildren) bool hasNonReachableChildren,
bool reNumber)
{ {
const char *labCol = const char *labCol =
m_url.isEmpty() ? "grey75" : // non link m_url.isEmpty() ? "grey75" : // non link
( (
(hasNonReachableChildren) ? "red" : "black" (hasNonReachableChildren) ? "red" : "black"
); );
t << " Node" << m_number << " [label=\""; t << " Node" << reNumberNode(m_number,reNumber) << " [label=\"";
if (Config_getBool("UML_LOOK") && (gt==Inheritance || gt==Collaboration)) if (Config_getBool("UML_LOOK") && (gt==Inheritance || gt==Collaboration))
{ {
...@@ -567,13 +610,14 @@ void DotNode::writeArrow(QTextStream &t, ...@@ -567,13 +610,14 @@ void DotNode::writeArrow(QTextStream &t,
DotNode *cn, DotNode *cn,
EdgeInfo *ei, EdgeInfo *ei,
bool topDown, bool topDown,
bool pointBack bool pointBack,
bool reNumber
) )
{ {
t << " Node"; t << " Node";
if (topDown) t << cn->number(); else t << m_number; if (topDown) t << reNumberNode(cn->number(),reNumber); else t << reNumberNode(m_number,reNumber);
t << " -> Node"; t << " -> Node";
if (topDown) t << m_number; else t << cn->number(); if (topDown) t << reNumberNode(m_number,reNumber); else t << reNumberNode(cn->number(),reNumber);
t << " ["; t << " [";
if (pointBack) t << "dir=back,"; if (pointBack) t << "dir=back,";
t << "color=\"" << edgeColorMap[ei->m_color] t << "color=\"" << edgeColorMap[ei->m_color]
...@@ -603,7 +647,8 @@ void DotNode::write(QTextStream &t, ...@@ -603,7 +647,8 @@ void DotNode::write(QTextStream &t,
bool topDown, bool topDown,
bool toChildren, bool toChildren,
int distance, int distance,
bool backArrows bool backArrows,
bool reNumber
) )
{ {
//printf("DotNode::write(%d) name=%s this=%p written=%d\n",distance,m_label.data(),this,m_written); //printf("DotNode::write(%d) name=%s this=%p written=%d\n",distance,m_label.data(),this,m_written);
...@@ -620,7 +665,7 @@ void DotNode::write(QTextStream &t, ...@@ -620,7 +665,7 @@ void DotNode::write(QTextStream &t,
if (cn->m_distance>distance) hasNonReachableChildren=TRUE; if (cn->m_distance>distance) hasNonReachableChildren=TRUE;
} }
} }
writeBox(t,gt,format,hasNonReachableChildren); writeBox(t,gt,format,hasNonReachableChildren,reNumber);
m_written=TRUE; m_written=TRUE;
if (nl) if (nl)
{ {
...@@ -634,9 +679,9 @@ void DotNode::write(QTextStream &t, ...@@ -634,9 +679,9 @@ void DotNode::write(QTextStream &t,
if (cn->m_distance<=distance) if (cn->m_distance<=distance)
{ {
//printf("write arrow %s%s%s\n",label().data(),backArrows?"<-":"->",cn->label().data()); //printf("write arrow %s%s%s\n",label().data(),backArrows?"<-":"->",cn->label().data());
writeArrow(t,gt,format,cn,dnli2.current(),topDown,backArrows); writeArrow(t,gt,format,cn,dnli2.current(),topDown,backArrows,reNumber);
} }
cn->write(t,gt,format,topDown,toChildren,distance,backArrows); cn->write(t,gt,format,topDown,toChildren,distance,backArrows,reNumber);
} }
} }
else // render parents else // render parents
...@@ -654,10 +699,11 @@ void DotNode::write(QTextStream &t, ...@@ -654,10 +699,11 @@ void DotNode::write(QTextStream &t,
pn, pn,
pn->m_edgeInfo->at(pn->m_children->findRef(this)), pn->m_edgeInfo->at(pn->m_children->findRef(this)),
FALSE, FALSE,
backArrows backArrows,
reNumber
); );
} }
pn->write(t,gt,format,TRUE,FALSE,distance,backArrows); pn->write(t,gt,format,TRUE,FALSE,distance,backArrows,reNumber);
} }
} }
} }
...@@ -946,9 +992,10 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -946,9 +992,10 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
{ {
if (node->m_subgraphId==n->m_subgraphId) if (node->m_subgraphId==n->m_subgraphId)
{ {
node->write(md5stream,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE); node->write(md5stream,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE,TRUE);
} }
} }
resetReNumbering();
uchar md5_sig[16]; uchar md5_sig[16];
QCString sigStr(33); QCString sigStr(33);
MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig); MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig);
...@@ -974,11 +1021,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path) ...@@ -974,11 +1021,12 @@ void DotGfxHierarchyTable::writeGraph(QTextStream &out,const char *path)
{ {
if (node->m_subgraphId==n->m_subgraphId) if (node->m_subgraphId==n->m_subgraphId)
{ {
node->write(t,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE); node->write(t,DotNode::Hierarchy,BITMAP,FALSE,TRUE,1000,TRUE,TRUE);
} }
} }
writeGraphFooter(t); writeGraphFooter(t);
f.close(); f.close();
resetReNumbering();
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
dotArgs.sprintf("\"%s\" -T%s -o \"%s\" -Timap -o \"%s\"", dotArgs.sprintf("\"%s\" -T%s -o \"%s\" -Timap -o \"%s\"",
...@@ -1407,7 +1455,8 @@ void writeDotGraph(DotNode *root, ...@@ -1407,7 +1455,8 @@ void writeDotGraph(DotNode *root,
bool lrRank, bool lrRank,
bool renderParents, bool renderParents,
int distance, int distance,
bool backArrows bool backArrows,
bool reNumber
) )
{ {
// generate the graph description for dot // generate the graph description for dot
...@@ -1423,7 +1472,7 @@ void writeDotGraph(DotNode *root, ...@@ -1423,7 +1472,7 @@ void writeDotGraph(DotNode *root,
t << " rankdir=LR;" << endl; t << " rankdir=LR;" << endl;
} }
root->clearWriteFlag(); root->clearWriteFlag();
root->write(t,gt,format,gt!=DotNode::CallGraph,TRUE,distance,backArrows); root->write(t,gt,format,gt!=DotNode::CallGraph,TRUE,distance,backArrows,reNumber);
if (renderParents && root->m_parents) if (renderParents && root->m_parents)
{ {
//printf("rendering parents!\n"); //printf("rendering parents!\n");
...@@ -1439,10 +1488,11 @@ void writeDotGraph(DotNode *root, ...@@ -1439,10 +1488,11 @@ void writeDotGraph(DotNode *root,
pn, pn,
pn->m_edgeInfo->at(pn->m_children->findRef(root)), pn->m_edgeInfo->at(pn->m_children->findRef(root)),
FALSE, FALSE,
backArrows backArrows,
reNumber
); );
} }
pn->write(t,gt,format,TRUE,FALSE,distance,backArrows); pn->write(t,gt,format,TRUE,FALSE,distance,backArrows,reNumber);
} }
} }
writeGraphFooter(t); writeGraphFooter(t);
...@@ -1462,6 +1512,8 @@ QCString computeMd5Signature(DotNode *root, ...@@ -1462,6 +1512,8 @@ QCString computeMd5Signature(DotNode *root,
bool backArrows bool backArrows
) )
{ {
bool reNumber=TRUE;
//printf("computeMd5Signature\n"); //printf("computeMd5Signature\n");
QString buf; QString buf;
QTextStream md5stream(&buf,IO_WriteOnly); QTextStream md5stream(&buf,IO_WriteOnly);
...@@ -1470,7 +1522,7 @@ QCString computeMd5Signature(DotNode *root, ...@@ -1470,7 +1522,7 @@ QCString computeMd5Signature(DotNode *root,
md5stream << "rankdir=LR;" << endl; md5stream << "rankdir=LR;" << endl;
} }
root->clearWriteFlag(); root->clearWriteFlag();
root->write(md5stream,gt,format,gt!=DotNode::CallGraph,TRUE,distance,backArrows); root->write(md5stream,gt,format,gt!=DotNode::CallGraph,TRUE,distance,backArrows,reNumber);
if (renderParents && root->m_parents) if (renderParents && root->m_parents)
{ {
QListIterator<DotNode> dnli(*root->m_parents); QListIterator<DotNode> dnli(*root->m_parents);
...@@ -1485,16 +1537,21 @@ QCString computeMd5Signature(DotNode *root, ...@@ -1485,16 +1537,21 @@ QCString computeMd5Signature(DotNode *root,
pn, pn,
pn->m_edgeInfo->at(pn->m_children->findRef(root)), pn->m_edgeInfo->at(pn->m_children->findRef(root)),
FALSE, FALSE,
backArrows backArrows,
reNumber
); );
} }
pn->write(md5stream,gt,format,TRUE,FALSE,distance,backArrows); pn->write(md5stream,gt,format,TRUE,FALSE,distance,backArrows,reNumber);
} }
} }
uchar md5_sig[16]; uchar md5_sig[16];
QCString sigStr(33); QCString sigStr(33);
MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig); MD5Buffer((const unsigned char *)buf.ascii(),buf.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.data(),33); MD5SigToString(md5_sig,sigStr.data(),33);
if (reNumber)
{
resetReNumbering();
}
//printf("md5: %s | file: %s\n",sigStr,baseName.data()); //printf("md5: %s | file: %s\n",sigStr,baseName.data());
return sigStr; return sigStr;
} }
...@@ -1510,6 +1567,7 @@ static bool findMaximalDotGraph(DotNode *root, ...@@ -1510,6 +1567,7 @@ static bool findMaximalDotGraph(DotNode *root,
bool backArrows /*=TRUE*/ bool backArrows /*=TRUE*/
) )
{ {
bool reNumber=TRUE;
int minDistance=1; // min distance that shows only direct children. int minDistance=1; // min distance that shows only direct children.
int curDistance; //=QMIN(2,maxDist); // current distance to try int curDistance; //=QMIN(2,maxDist); // current distance to try
int maxDistance=maxDist; // max distance that show whole graph int maxDistance=maxDist; // max distance that show whole graph
...@@ -1526,7 +1584,7 @@ static bool findMaximalDotGraph(DotNode *root, ...@@ -1526,7 +1584,7 @@ static bool findMaximalDotGraph(DotNode *root,
curDistance = (minDistance+maxDistance)/2; curDistance = (minDistance+maxDistance)/2;
writeDotGraph(root,gt,format,baseName,lrRank,renderParents, writeDotGraph(root,gt,format,baseName,lrRank,renderParents,
curDistance,backArrows); curDistance,backArrows,reNumber);
QCString dotArgs(maxCmdLine); QCString dotArgs(maxCmdLine);
// create annotated dot file // create annotated dot file
...@@ -1576,8 +1634,13 @@ static bool findMaximalDotGraph(DotNode *root, ...@@ -1576,8 +1634,13 @@ static bool findMaximalDotGraph(DotNode *root,
hasLRRank, hasLRRank,
renderParents, renderParents,
lastFit, lastFit,
backArrows backArrows,
reNumber
); );
if (reNumber)
{
resetReNumbering();
}
return TRUE; return TRUE;
} }
......
...@@ -65,7 +65,7 @@ class DotNode ...@@ -65,7 +65,7 @@ class DotNode
void removeChild(DotNode *n); void removeChild(DotNode *n);
void removeParent(DotNode *n); void removeParent(DotNode *n);
void write(QTextStream &t,GraphType gt,GraphOutputFormat f, void write(QTextStream &t,GraphType gt,GraphOutputFormat f,
bool topDown,bool toChildren,int maxDistance,bool backArrows); bool topDown,bool toChildren,int maxDistance,bool backArrows,bool reNumber);
int m_subgraphId; int m_subgraphId;
void clearWriteFlag(); void clearWriteFlag();
void writeXML(QTextStream &t,bool isClassGraph); void writeXML(QTextStream &t,bool isClassGraph);
...@@ -76,9 +76,9 @@ class DotNode ...@@ -76,9 +76,9 @@ class DotNode
private: private:
void colorConnectedNodes(int curColor); void colorConnectedNodes(int curColor);
void writeBox(QTextStream &t,GraphType gt,GraphOutputFormat f, void writeBox(QTextStream &t,GraphType gt,GraphOutputFormat f,
bool hasNonReachableChildren); bool hasNonReachableChildren, bool reNumber=FALSE);
void writeArrow(QTextStream &t,GraphType gt,GraphOutputFormat f,DotNode *cn, void writeArrow(QTextStream &t,GraphType gt,GraphOutputFormat f,DotNode *cn,
EdgeInfo *ei,bool topDown, bool pointBack=TRUE); EdgeInfo *ei,bool topDown, bool pointBack=TRUE, bool reNumber=FALSE);
const DotNode *findDocNode() const; // only works for acyclic graphs! const DotNode *findDocNode() const; // only works for acyclic graphs!
int m_number; int m_number;
QCString m_label; //!< label text QCString m_label; //!< label text
...@@ -102,7 +102,7 @@ class DotNode ...@@ -102,7 +102,7 @@ class DotNode
DotNode *root, GraphType gt, DotNode *root, GraphType gt,
GraphOutputFormat f, const QCString &baseName, GraphOutputFormat f, const QCString &baseName,
bool lrRank, bool renderParents, bool lrRank, bool renderParents,
int distance, bool backArrows int distance, bool backArrows, bool reNumber
); );
friend QCString computeMd5Signature( friend QCString computeMd5Signature(
DotNode *root, GraphType gt, DotNode *root, GraphType gt,
......
...@@ -810,9 +810,9 @@ static void addClassToContext(Entry *root) ...@@ -810,9 +810,9 @@ static void addClassToContext(Entry *root)
} }
} }
// if the class is not in a namespace then we insert // add the class to the file (we do this even if we have already inserted
// it in the file definition // it into the namespace)
if (!found && fd && (root->section & Entry::COMPOUND_MASK)) if (fd && (root->section & Entry::COMPOUND_MASK))
{ {
//printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n", //printf(">> Inserting class `%s' in file `%s' (root->fileName=`%s')\n",
// cd->name().data(), // cd->name().data(),
...@@ -1677,14 +1677,13 @@ static MemberDef *addVariableToFile( ...@@ -1677,14 +1677,13 @@ static MemberDef *addVariableToFile(
nd->insertMember(md); nd->insertMember(md);
md->setNamespace(nd); md->setNamespace(nd);
} }
else
// add member to the file (we do this even if we have already inserted
// it into the namespace.
if (fd)
{ {
// find file definition fd->insertMember(md);
if (fd) md->setFileDef(fd);
{
fd->insertMember(md);
md->setFileDef(fd);
}
} }
// add member definition to the list of globals // add member definition to the list of globals
...@@ -1739,6 +1738,8 @@ static bool isVarWithConstructor(Entry *root) ...@@ -1739,6 +1738,8 @@ static bool isVarWithConstructor(Entry *root)
Definition *ctx = 0; Definition *ctx = 0;
FileDef *fd = 0; FileDef *fd = 0;
bool ambig; bool ambig;
int ti;
if (root->parent && root->parent->section&Entry::COMPOUND_MASK) if (root->parent && root->parent->section&Entry::COMPOUND_MASK)
{ // inside a class { // inside a class
result=FALSE; result=FALSE;
...@@ -1760,6 +1761,10 @@ static bool isVarWithConstructor(Entry *root) ...@@ -1760,6 +1761,10 @@ static bool isVarWithConstructor(Entry *root)
type = root->type; type = root->type;
if (type.left(6)=="const ") type=type.right(type.length()-6); if (type.left(6)=="const ") type=type.right(type.length()-6);
typeIsClass=getResolvedClass(ctx,fd,type)!=0; typeIsClass=getResolvedClass(ctx,fd,type)!=0;
if (!typeIsClass && (ti=type.find('<'))!=-1)
{
typeIsClass=getResolvedClass(ctx,fd,type.left(ti))!=0;
}
if (typeIsClass) // now we still have to check if the arguments are if (typeIsClass) // now we still have to check if the arguments are
// types or values. Since we do not have complete type info // types or values. Since we do not have complete type info
// we need to rely on heuristics :-( // we need to rely on heuristics :-(
...@@ -2453,9 +2458,11 @@ static void buildFunctionList(Entry *root) ...@@ -2453,9 +2458,11 @@ static void buildFunctionList(Entry *root)
nd->insertMember(md); nd->insertMember(md);
md->setNamespace(nd); md->setNamespace(nd);
} }
else if (fd)
if (fd)
{ {
// add member to the file // add member to the file (we do this even if we have already
// inserted it into the namespace)
fd->insertMember(md); fd->insertMember(md);
md->setFileDef(fd); md->setFileDef(fd);
} }
...@@ -5367,10 +5374,14 @@ static void findEnums(Entry *root) ...@@ -5367,10 +5374,14 @@ static void findEnums(Entry *root)
nd->insertMember(md); nd->insertMember(md);
md->setNamespace(nd); md->setNamespace(nd);
} }
else if (isGlobal)
// even if we have already added the enum to a namespace, we still
// also want to add it to other appropriate places such as file
// or class.
if (isGlobal)
{ {
md->setDefinition(name); md->setDefinition(name);
if (fd==0 && root->tagInfo) if (fd==0 && root->parent)
{ {
bool ambig; bool ambig;
QCString filePathName = root->parent->fileName; QCString filePathName = root->parent->fileName;
......
...@@ -27,6 +27,9 @@ ...@@ -27,6 +27,9 @@
#include "message.h" #include "message.h"
#include "config.h" #include "config.h"
#define PREFRAG_START "<div class=\"fragment\"><pre>"
#define PREFRAG_END "</pre></div"
static QString htmlAttribsToString(const HtmlAttribList &attribs) static QString htmlAttribsToString(const HtmlAttribList &attribs)
{ {
QString result; QString result;
...@@ -189,14 +192,14 @@ void HtmlDocVisitor::visit(DocVerbatim *s) ...@@ -189,14 +192,14 @@ void HtmlDocVisitor::visit(DocVerbatim *s)
switch(s->type()) switch(s->type())
{ {
case DocVerbatim::Code: // fall though case DocVerbatim::Code: // fall though
m_t << "<pre><div class=\"fragment\">"; m_t << PREFRAG_START;
parseCode(m_ci,s->context(),s->text().latin1(),s->isExample(),s->exampleFile()); parseCode(m_ci,s->context(),s->text().latin1(),s->isExample(),s->exampleFile());
m_t << "</div></pre>"; m_t << PREFRAG_END;
break; break;
case DocVerbatim::Verbatim: case DocVerbatim::Verbatim:
m_t << "<pre><div class=\"fragment\">"; m_t << PREFRAG_START;
filter(s->text()); filter(s->text());
m_t << "</div></pre>"; m_t << PREFRAG_END;
break; break;
case DocVerbatim::HtmlOnly: case DocVerbatim::HtmlOnly:
m_t << s->text(); m_t << s->text();
...@@ -246,17 +249,17 @@ void HtmlDocVisitor::visit(DocInclude *inc) ...@@ -246,17 +249,17 @@ void HtmlDocVisitor::visit(DocInclude *inc)
switch(inc->type()) switch(inc->type())
{ {
case DocInclude::Include: case DocInclude::Include:
m_t << "<pre><div class=\"fragment\">"; m_t << PREFRAG_START;
parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile()); parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile());
m_t << "</div></pre>"; m_t << PREFRAG_END;
break; break;
case DocInclude::IncWithLines: case DocInclude::IncWithLines:
{ {
m_t << "<pre><div class=\"fragment\">"; m_t << PREFRAG_START;
QFileInfo cfi( inc->file() ); QFileInfo cfi( inc->file() );
FileDef fd( cfi.dirPath(), cfi.fileName() ); FileDef fd( cfi.dirPath(), cfi.fileName() );
parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile(), &fd); parseCode(m_ci,inc->context(),inc->text().latin1(),inc->isExample(),inc->exampleFile(), &fd);
m_t << "</div></pre>"; m_t << PREFRAG_END;
} }
break; break;
case DocInclude::DontInclude: case DocInclude::DontInclude:
...@@ -265,9 +268,9 @@ void HtmlDocVisitor::visit(DocInclude *inc) ...@@ -265,9 +268,9 @@ void HtmlDocVisitor::visit(DocInclude *inc)
m_t << inc->text(); m_t << inc->text();
break; break;
case DocInclude::VerbInclude: case DocInclude::VerbInclude:
m_t << "<pre><div class=\"fragment\">"; m_t << PREFRAG_START;
filter(inc->text()); filter(inc->text());
m_t << "</div></pre>"; m_t << PREFRAG_END;
break; break;
} }
} }
...@@ -278,7 +281,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op) ...@@ -278,7 +281,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op)
// op->type(),op->isFirst(),op->isLast(),op->text().data()); // op->type(),op->isFirst(),op->isLast(),op->text().data());
if (op->isFirst()) if (op->isFirst())
{ {
if (!m_hide) m_t << "<pre><div class=\"fragment\">"; if (!m_hide) m_t << PREFRAG_START;
pushEnabled(); pushEnabled();
m_hide=TRUE; m_hide=TRUE;
} }
...@@ -292,7 +295,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op) ...@@ -292,7 +295,7 @@ void HtmlDocVisitor::visit(DocIncOperator *op)
if (op->isLast()) if (op->isLast())
{ {
popEnabled(); popEnabled();
if (!m_hide) m_t << "</div></pre>"; if (!m_hide) m_t << PREFRAG_END;
} }
else else
{ {
......
...@@ -5500,12 +5500,23 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;] ...@@ -5500,12 +5500,23 @@ PHPKW ("require"|"require_once"|"include"|"include_once"|"echo")[^a-zA-Z0-9_;]
} }
<Doc>"*/" { <Doc>"*/" {
checkDocs(); checkDocs();
current->doc += "\n\n";
//printf("End of docs at line %d: %s\n",yyLineNr,current->doc.data()); //printf("End of docs at line %d: %s\n",yyLineNr,current->doc.data());
if (lastDocContext==SkipCurly && Config_getBool("HIDE_IN_BODY_DOCS")) if (lastDocContext==SkipCurly)
{ {
if (!Config_getBool("HIDE_IN_BODY_DOCS"))
{
if (!previous->doc.isEmpty())
{
previous->doc+="<p>";
}
previous->doc += current->doc;
}
current->doc.resize(0); current->doc.resize(0);
} }
else
{
current->doc += "\n\n";
}
if (current->section==Entry::GROUPDOC_SEC) if (current->section==Entry::GROUPDOC_SEC)
{ {
current_root->addSubEntry(current); current_root->addSubEntry(current);
......
...@@ -352,19 +352,4 @@ class TranslatorAdapter_1_2_2 : public TranslatorAdapter_1_2_4 ...@@ -352,19 +352,4 @@ class TranslatorAdapter_1_2_2 : public TranslatorAdapter_1_2_4
{ return english.trPropertyDocumentation(); } { return english.trPropertyDocumentation(); }
}; };
/*! \brief Translator adapter class for release 1.2.1
*
* Translator adapter for dealing with translator changes since
* release 1.2.1
*/
class TranslatorAdapter_1_2_1 : public TranslatorAdapter_1_2_2
{
public:
virtual QCString updateNeededMessage()
{ return createUpdateNeededMessage(idLanguage(),"release 1.2.1"); }
virtual QCString trDCOPMethods()
{ return english.trDCOPMethods(); }
};
#endif #endif
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#ifndef TRANSLATOR_CZ_H #ifndef TRANSLATOR_CZ_H
#define TRANSLATOR_CZ_H #define TRANSLATOR_CZ_H
// $Id$ //
// //
// The first translation from English to Czech was started by // The first translation from English to Czech was started by
// Vlastimil Havran (1999--2000). The prototype version of Czech strings // Vlastimil Havran (1999--2000). The prototype version of Czech strings
...@@ -129,6 +129,7 @@ ...@@ -129,6 +129,7 @@
// 2003/08/13 - Four new methods "since 1.3.3" implemented. // 2003/08/13 - Four new methods "since 1.3.3" implemented.
// 2004/02/26 - trLegendDocs() updated. // 2004/02/26 - trLegendDocs() updated.
// 2004/02/27 - Text inside the trCallGraph() corrected. // 2004/02/27 - Text inside the trCallGraph() corrected.
// 2004/06/16 - The new method "since 1.3.8" implemented.
// Todo // Todo
// ---- // ----
...@@ -148,7 +149,7 @@ ...@@ -148,7 +149,7 @@
// Windows version. The version which does not call the function is // Windows version. The version which does not call the function is
// probably slightly faster. // probably slightly faster.
class TranslatorCzech : public TranslatorAdapter_1_3_8 class TranslatorCzech : public Translator
{ {
private: private:
/*! The decode() inline assumes the source written in the /*! The decode() inline assumes the source written in the
...@@ -1660,6 +1661,18 @@ class TranslatorCzech : public TranslatorAdapter_1_3_8 ...@@ -1660,6 +1661,18 @@ class TranslatorCzech : public TranslatorAdapter_1_3_8
{ {
return decode("Nalezená slova:"); return decode("Nalezená slova:");
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return decode("Zdrojový soubor ") + filename;
}
}; };
#endif // TRANSLATOR_CZ_H #endif // TRANSLATOR_CZ_H
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#ifndef TRANSLATOR_ES_H #ifndef TRANSLATOR_ES_H
#define TRANSLATOR_ES_H #define TRANSLATOR_ES_H
class TranslatorSpanish : public TranslatorAdapter_1_3_3 class TranslatorSpanish : public TranslatorAdapter_1_3_8
{ {
public: public:
virtual QCString idLanguage() virtual QCString idLanguage()
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
* *
* Revision history * Revision history
* *
* 2004/06: translated new items used since version 1.3.8
* 2003/11: translated new items used since version 1.3.3 * 2003/11: translated new items used since version 1.3.3
* 2003/06: translated new items used since version 1.3.1 * 2003/06: translated new items used since version 1.3.1
* 2003/04: translated new items used since version 1.3 * 2003/04: translated new items used since version 1.3
...@@ -70,7 +71,7 @@ ...@@ -70,7 +71,7 @@
#ifndef TRANSLATOR_IT_H #ifndef TRANSLATOR_IT_H
#define TRANSLATOR_IT_H #define TRANSLATOR_IT_H
class TranslatorItalian : public TranslatorAdapter_1_3_8 class TranslatorItalian : public Translator
{ {
public: public:
...@@ -1504,6 +1505,17 @@ class TranslatorItalian : public TranslatorAdapter_1_3_8 ...@@ -1504,6 +1505,17 @@ class TranslatorItalian : public TranslatorAdapter_1_3_8
return "Corrispondenze:"; return "Corrispondenze:";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return " File sorgente " + filename ;
}
}; };
#endif #endif
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#ifndef TRANSLATOR_NL_H #ifndef TRANSLATOR_NL_H
#define TRANSLATOR_NL_H #define TRANSLATOR_NL_H
class TranslatorDutch : public TranslatorAdapter_1_3_8 class TranslatorDutch : public Translator
{ {
public: public:
QCString idLanguage() QCString idLanguage()
...@@ -1143,6 +1143,17 @@ class TranslatorDutch : public TranslatorAdapter_1_3_8 ...@@ -1143,6 +1143,17 @@ class TranslatorDutch : public TranslatorAdapter_1_3_8
return "Gevonden:"; return "Gevonden:";
} }
//////////////////////////////////////////////////////////////////////////
// new since 1.3.8
//////////////////////////////////////////////////////////////////////////
/*! This is used in HTML as the title of page with source code for file filename
*/
virtual QCString trSourceFile(QCString& filename)
{
return filename + " Bron Bestand";
}
}; };
......
...@@ -21,6 +21,8 @@ ...@@ -21,6 +21,8 @@
#include <windows.h> #include <windows.h>
#endif #endif
#include <md5.h>
#include "qtbc.h" #include "qtbc.h"
#include <qregexp.h> #include <qregexp.h>
#include <qfileinfo.h> #include <qfileinfo.h>
...@@ -60,6 +62,19 @@ extern char **environ; ...@@ -60,6 +62,19 @@ extern char **environ;
//------------------------------------------------------------------------ //------------------------------------------------------------------------
// selects one of the name to sub-dir mapping algorithms that is used
// to select a sub directory when CREATE_SUBDIRS is set to YES.
#define ALGO_COUNT 1
#define ALGO_CRC16 2
#define ALGO_MD5 3
//#define MAP_ALGO ALGO_COUNT
//#define MAP_ALGO ALGO_CRC16
#define MAP_ALGO ALGO_MD5
//------------------------------------------------------------------------
struct LookupInfo struct LookupInfo
{ {
LookupInfo(ClassDef *cd=0,MemberDef *td=0,QCString ts="") LookupInfo(ClassDef *cd=0,MemberDef *td=0,QCString ts="")
...@@ -326,24 +341,6 @@ QCString replaceAnonymousScopes(const QCString &s) ...@@ -326,24 +341,6 @@ QCString replaceAnonymousScopes(const QCString &s)
// strip annonymous left hand side part of the scope // strip annonymous left hand side part of the scope
QCString stripAnonymousNamespaceScope(const QCString &s) QCString stripAnonymousNamespaceScope(const QCString &s)
{ {
#if 0
int oi=0,i=0,p=0;
p=s.find('@');
if (p==-1) return s;
while (s.at(p)=='@' && (i=s.find("::@",p))!=-1 &&
Doxygen::namespaceDict[s.left(i)]!=0) { oi=i; p=i+2; }
if (oi==0)
{
//printf("stripAnonymousNamespaceScope(`%s')=`%s'\n",s.data(),s.data());
return s;
}
else
{
//printf("stripAnonymousNamespaceScope(`%s')=`%s'\n",s.data(),s.right(s.length()-oi-2).data());
return s.right(s.length()-oi-2);
}
#endif
int i,p=0,l; int i,p=0,l;
QCString newScope; QCString newScope;
while ((i=getScopeFragment(s,p,&l))!=-1) while ((i=getScopeFragment(s,p,&l))!=-1)
...@@ -3639,6 +3636,11 @@ QCString convertNameToFile(const char *name,bool allowDots) ...@@ -3639,6 +3636,11 @@ QCString convertNameToFile(const char *name,bool allowDots)
} }
if (createSubdirs) if (createSubdirs)
{ {
int l1Dir=0,l2Dir=0;
#if MAP_ALGO==ALGO_COUNT
// old algorithm, has the problem that after regeneration the
// output can be located in a different dir.
if (Doxygen::htmlDirMap==0) if (Doxygen::htmlDirMap==0)
{ {
Doxygen::htmlDirMap=new QDict<int>(100003); Doxygen::htmlDirMap=new QDict<int>(100003);
...@@ -3646,20 +3648,31 @@ QCString convertNameToFile(const char *name,bool allowDots) ...@@ -3646,20 +3648,31 @@ QCString convertNameToFile(const char *name,bool allowDots)
} }
static int curDirNum=0; static int curDirNum=0;
int *dirNum = Doxygen::htmlDirMap->find(result); int *dirNum = Doxygen::htmlDirMap->find(result);
int l1Dir=0,l2Dir=0;
if (dirNum==0) // new name if (dirNum==0) // new name
{ {
Doxygen::htmlDirMap->insert(result,new int(curDirNum)); Doxygen::htmlDirMap->insert(result,new int(curDirNum));
l1Dir = (curDirNum)%10; l1Dir = (curDirNum)&0xf; // bits 0-3
l2Dir = ((curDirNum)/10)%10; l2Dir = (curDirNum>>4)&0xff; // bits 4-11
curDirNum++; curDirNum++;
} }
else // existing name else // existing name
{ {
l1Dir = (*dirNum)%10; l1Dir = (*dirNum)&0xf; // bits 0-3
l2Dir = ((*dirNum)/10)%10; l2Dir = ((*dirNum)>>4)&0xff; // bits 4-11
} }
result.prepend(QCString().sprintf("d%d/d%d/",l1Dir,l2Dir)); #elif MAP_ALGO==ALGO_CRC16
// second algorithm based on CRC-16 checksum
int dirNum = qChecksum(result,result.length());
l1Dir = dirNum&0xf;
l2Dir = (dirNum>>4)&0xff;
#elif MAP_ALGO==ALGO_MD5
// third algorithm based on MD5 hash
uchar md5_sig[16];
MD5Buffer((const unsigned char *)result.data(),result.length(),md5_sig);
l1Dir = md5_sig[14]&0xf;
l2Dir = md5_sig[15];
#endif
result.prepend(QCString().sprintf("d%x/d%02x/",l1Dir,l2Dir));
} }
return result; return result;
} }
...@@ -3690,14 +3703,14 @@ void createSubDirs(QDir &d) ...@@ -3690,14 +3703,14 @@ void createSubDirs(QDir &d)
{ {
if (Config_getBool("CREATE_SUBDIRS")) if (Config_getBool("CREATE_SUBDIRS"))
{ {
// create 100 subdirectories // create 4096 subdirectories
int l1,l2; int l1,l2;
for (l1=0;l1<10;l1++) for (l1=0;l1<16;l1++)
{ {
d.mkdir(QString().sprintf("d%d",l1)); d.mkdir(QString().sprintf("d%x",l1));
for (l2=0;l2<10;l2++) for (l2=0;l2<256;l2++)
{ {
d.mkdir(QString().sprintf("d%d/d%d",l1,l2)); d.mkdir(QString().sprintf("d%x/d%02x",l1,l2));
} }
} }
} }
......
...@@ -1557,6 +1557,7 @@ void generateXML() ...@@ -1557,6 +1557,7 @@ void generateXML()
} }
} }
QDir xmlDir(outputDirectory); QDir xmlDir(outputDirectory);
createSubDirs(xmlDir);
QCString fileName=outputDirectory+"/index.xsd"; QCString fileName=outputDirectory+"/index.xsd";
QFile f(fileName); QFile f(fileName);
if (!f.open(IO_WriteOnly)) if (!f.open(IO_WriteOnly))
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -51,6 +51,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -51,6 +51,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -40,6 +40,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -40,6 +40,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_MOC = moc TMAKE_MOC = moc
......
...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-h, ...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-h,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SHLIB = -shared ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SHLIB = -shared
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1 ...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl -lGL TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
TMAKE_LIBS_YACC = -ly TMAKE_LIBS_YACC = -ly
......
...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1 ...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1 ...@@ -46,6 +46,7 @@ TMAKE_HPUX_SHLIB = 1
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = TMAKE_LIBS_OPENGL =
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl -lGL TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_LIBS = ...@@ -46,6 +46,7 @@ TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_X11SM = -lICE -lSM TMAKE_LIBS_X11SM = -lICE -lSM
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SHLIB = -shared ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SHLIB = -shared
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = TMAKE_LIBS_X11 =
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -48,6 +48,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -47,6 +47,7 @@ END ...@@ -47,6 +47,7 @@ END
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname, ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = -Wl,-soname,
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = -lunix TMAKE_LIBS = -lunix
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = -lC TMAKE_LIBS = -lC
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM TMAKE_LIBS_X11 = -lXext -lX11 -lm -lICE -lSM
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl -lGL TMAKE_LIBS_QT_OPENGL = -lqgl -lGL
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -46,6 +46,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu TMAKE_LIBS_OPENGL = -lGL -lGLU -lXmu
......
...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_DEBUG = ...@@ -45,6 +45,7 @@ TMAKE_LFLAGS_DEBUG =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lm TMAKE_LIBS_X11 = -lXext -lX11 -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu
......
...@@ -47,7 +47,11 @@ ...@@ -47,7 +47,11 @@
if ( !((Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG")) ) { if ( !((Project("TARGET") eq "qt") && Project("TMAKE_LIB_FLAG")) ) {
Project("TMAKE_LIBDIR_QT") && Project("TMAKE_LIBDIR_QT") &&
Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_QT'); Project('TMAKE_LIBS *= -L$$TMAKE_LIBDIR_QT');
Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT'); if ( Config("thread") ) {
Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT_MT');
} else {
Project('TMAKE_LIBS *= $$TMAKE_LIBS_QT');
}
} }
} }
if ( Config("opengl") ) { if ( Config("opengl") ) {
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = -lc TMAKE_LIBS = -lc
TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = TMAKE_LIBS =
TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt
......
...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME = ...@@ -47,6 +47,7 @@ TMAKE_LFLAGS_SONAME =
TMAKE_LIBS = -lc TMAKE_LIBS = -lc
TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm TMAKE_LIBS_X11 = -lXext -lX11 -lsocket -lnsl -lm
TMAKE_LIBS_QT = -lqt TMAKE_LIBS_QT = -lqt
TMAKE_LIBS_QT_MT = -lqt-mt
TMAKE_LIBS_QT_OPENGL = -lqgl TMAKE_LIBS_QT_OPENGL = -lqgl
TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt TMAKE_LIBS_OPENGL = -lMesaGL -lMesaGLU -lXmu -lXt
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment