Improve qdoc performance.
Valgrind blamed CppCodeMarker::addMarkUp as slow, the patch improves situation by ~12% Use of QStringLiterals instead of const char* reduce amount of allocations on startup. Change-Id: I8737e02785506bba7e23868ab3952eab09d543d2 Reviewed-by: Martin Smith <martin.smith@digia.com>
This commit is contained in:
parent
cab86ec3ed
commit
8969f57b6a
@ -94,7 +94,7 @@ void CodeMarker::terminateMarker()
|
||||
*/
|
||||
void CodeMarker::initialize(const Config& config)
|
||||
{
|
||||
defaultLang = config.getString(QLatin1String(CONFIG_LANGUAGE));
|
||||
defaultLang = config.getString(CONFIG_LANGUAGE);
|
||||
QList<CodeMarker *>::ConstIterator m = markers.constBegin();
|
||||
while (m != markers.constEnd()) {
|
||||
(*m)->initializeMarker(config);
|
||||
|
@ -102,7 +102,7 @@ CodeParser::~CodeParser()
|
||||
*/
|
||||
void CodeParser::initializeParser(const Config& config)
|
||||
{
|
||||
showInternal = config.getBool(QLatin1String(CONFIG_SHOWINTERNAL));
|
||||
showInternal = config.getBool(CONFIG_SHOWINTERNAL);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -55,6 +55,77 @@
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
QString ConfigStrings::ALIAS = QStringLiteral("alias");
|
||||
QString ConfigStrings::BASE = QStringLiteral("base");
|
||||
QString ConfigStrings::BASEDIR = QStringLiteral("basedir");
|
||||
QString ConfigStrings::BUILDVERSION = QStringLiteral("buildversion");
|
||||
QString ConfigStrings::CODEINDENT = QStringLiteral("codeindent");
|
||||
QString ConfigStrings::CPPCLASSESPAGE = QStringLiteral("cppclassespage");
|
||||
QString ConfigStrings::DEFINES = QStringLiteral("defines");
|
||||
QString ConfigStrings::DEPENDS = QStringLiteral("depends");
|
||||
QString ConfigStrings::DESCRIPTION = QStringLiteral("description");
|
||||
QString ConfigStrings::EDITION = QStringLiteral("edition");
|
||||
QString ConfigStrings::ENDHEADER = QStringLiteral("endheader");
|
||||
QString ConfigStrings::EXAMPLEDIRS = QStringLiteral("exampledirs");
|
||||
QString ConfigStrings::EXAMPLES = QStringLiteral("examples");
|
||||
QString ConfigStrings::EXAMPLESINSTALLPATH = QStringLiteral("examplesinstallpath");
|
||||
QString ConfigStrings::EXCLUDEDIRS = QStringLiteral("excludedirs");
|
||||
QString ConfigStrings::EXCLUDEFILES = QStringLiteral("excludefiles");
|
||||
QString ConfigStrings::EXTRAIMAGES = QStringLiteral("extraimages");
|
||||
QString ConfigStrings::FALSEHOODS = QStringLiteral("falsehoods");
|
||||
QString ConfigStrings::FORMATTING = QStringLiteral("formatting");
|
||||
QString ConfigStrings::GENERATEINDEX = QStringLiteral("generateindex");
|
||||
QString ConfigStrings::HEADERDIRS = QStringLiteral("headerdirs");
|
||||
QString ConfigStrings::HEADERS = QStringLiteral("headers");
|
||||
QString ConfigStrings::HEADERSCRIPTS = QStringLiteral("headerscripts");
|
||||
QString ConfigStrings::HEADERSTYLES = QStringLiteral("headerstyles");
|
||||
QString ConfigStrings::HOMEPAGE = QStringLiteral("homepage");
|
||||
QString ConfigStrings::IGNOREDIRECTIVES = QStringLiteral("ignoredirectives");
|
||||
QString ConfigStrings::IGNORETOKENS = QStringLiteral("ignoretokens");
|
||||
QString ConfigStrings::IMAGEDIRS = QStringLiteral("imagedirs");
|
||||
QString ConfigStrings::IMAGES = QStringLiteral("images");
|
||||
QString ConfigStrings::INDEXES = QStringLiteral("indexes");
|
||||
QString ConfigStrings::LANDINGPAGE = QStringLiteral("landingpage");
|
||||
QString ConfigStrings::LANGUAGE = QStringLiteral("language");
|
||||
QString ConfigStrings::MACRO = QStringLiteral("macro");
|
||||
QString ConfigStrings::MANIFESTMETA = QStringLiteral("manifestmeta");
|
||||
QString ConfigStrings::NATURALLANGUAGE = QStringLiteral("naturallanguage");
|
||||
QString ConfigStrings::NAVIGATION = QStringLiteral("navigation");
|
||||
QString ConfigStrings::NOLINKERRORS = QStringLiteral("nolinkerrors");
|
||||
QString ConfigStrings::OBSOLETELINKS = QStringLiteral("obsoletelinks");
|
||||
QString ConfigStrings::OUTPUTDIR = QStringLiteral("outputdir");
|
||||
QString ConfigStrings::OUTPUTENCODING = QStringLiteral("outputencoding");
|
||||
QString ConfigStrings::OUTPUTLANGUAGE = QStringLiteral("outputlanguage");
|
||||
QString ConfigStrings::OUTPUTFORMATS = QStringLiteral("outputformats");
|
||||
QString ConfigStrings::OUTPUTPREFIXES = QStringLiteral("outputprefixes");
|
||||
QString ConfigStrings::PROJECT = QStringLiteral("project");
|
||||
QString ConfigStrings::REDIRECTDOCUMENTATIONTODEVNULL = QStringLiteral("redirectdocumentationtodevnull");
|
||||
QString ConfigStrings::QHP = QStringLiteral("qhp");
|
||||
QString ConfigStrings::QUOTINGINFORMATION = QStringLiteral("quotinginformation");
|
||||
QString ConfigStrings::SCRIPTDIRS = QStringLiteral("scriptdirs");
|
||||
QString ConfigStrings::SCRIPTS = QStringLiteral("scripts");
|
||||
QString ConfigStrings::SHOWINTERNAL = QStringLiteral("showinternal");
|
||||
QString ConfigStrings::SOURCEDIRS = QStringLiteral("sourcedirs");
|
||||
QString ConfigStrings::SOURCEENCODING = QStringLiteral("sourceencoding");
|
||||
QString ConfigStrings::SOURCES = QStringLiteral("sources");
|
||||
QString ConfigStrings::SPURIOUS = QStringLiteral("spurious");
|
||||
QString ConfigStrings::STYLEDIRS = QStringLiteral("styledirs");
|
||||
QString ConfigStrings::STYLE = QStringLiteral("style");
|
||||
QString ConfigStrings::STYLES = QStringLiteral("styles");
|
||||
QString ConfigStrings::STYLESHEETS = QStringLiteral("stylesheets");
|
||||
QString ConfigStrings::SYNTAXHIGHLIGHTING = QStringLiteral("syntaxhighlighting");
|
||||
QString ConfigStrings::TEMPLATEDIR = QStringLiteral("templatedir");
|
||||
QString ConfigStrings::TABSIZE = QStringLiteral("tabsize");
|
||||
QString ConfigStrings::TAGFILE = QStringLiteral("tagfile");
|
||||
QString ConfigStrings::TRANSLATORS = QStringLiteral("translators");
|
||||
QString ConfigStrings::URL = QStringLiteral("url");
|
||||
QString ConfigStrings::VERSION = QStringLiteral("version");
|
||||
QString ConfigStrings::VERSIONSYM = QStringLiteral("versionsym");
|
||||
QString ConfigStrings::FILEEXTENSIONS = QStringLiteral("fileextensions");
|
||||
QString ConfigStrings::IMAGEEXTENSIONS = QStringLiteral("imageextensions");
|
||||
QString ConfigStrings::QMLONLY = QStringLiteral("qmlonly");
|
||||
QString ConfigStrings::QMLTYPESPAGE = QStringLiteral("qmltypespage");
|
||||
|
||||
/*!
|
||||
An entry in a stack, where each entry is a list
|
||||
of string values.
|
||||
@ -284,7 +355,7 @@ QString Config::getOutputDir() const
|
||||
{
|
||||
QString t;
|
||||
if (overrideOutputDir.isNull())
|
||||
t = getString(QLatin1String(CONFIG_OUTPUTDIR));
|
||||
t = getString(CONFIG_OUTPUTDIR);
|
||||
else
|
||||
t = overrideOutputDir;
|
||||
if (!Generator::useOutputSubdirs()) {
|
||||
@ -305,7 +376,7 @@ QString Config::getOutputDir() const
|
||||
QSet<QString> Config::getOutputFormats() const
|
||||
{
|
||||
if (overrideOutputFormats.isEmpty())
|
||||
return getStringSet(QLatin1String(CONFIG_OUTPUTFORMATS));
|
||||
return getStringSet(CONFIG_OUTPUTFORMATS);
|
||||
else
|
||||
return overrideOutputFormats;
|
||||
}
|
||||
@ -635,7 +706,7 @@ QStringList Config::getAllFiles(const QString &filesVar,
|
||||
QStringList result = getStringList(filesVar);
|
||||
QStringList dirs = getCanonicalPathList(dirsVar);
|
||||
|
||||
QString nameFilter = getString(filesVar + dot + QLatin1String(CONFIG_FILEEXTENSIONS));
|
||||
QString nameFilter = getString(filesVar + dot + CONFIG_FILEEXTENSIONS);
|
||||
|
||||
QStringList::ConstIterator d = dirs.constBegin();
|
||||
while (d != dirs.constEnd()) {
|
||||
@ -665,7 +736,7 @@ QStringList Config::getExampleImageFiles(const QSet<QString> &excludedDirs,
|
||||
{
|
||||
QStringList result;
|
||||
QStringList dirs = getCanonicalPathList("exampledirs");
|
||||
QString nameFilter = getString(CONFIG_EXAMPLES + dot + QLatin1String(CONFIG_IMAGEEXTENSIONS));
|
||||
QString nameFilter = getString(CONFIG_EXAMPLES + dot + CONFIG_IMAGEEXTENSIONS);
|
||||
|
||||
QStringList::ConstIterator d = dirs.constBegin();
|
||||
while (d != dirs.constEnd()) {
|
||||
|
@ -164,76 +164,150 @@ private:
|
||||
static QMap<QString, QStringList> includeFilesMap_;
|
||||
};
|
||||
|
||||
#define CONFIG_ALIAS "alias"
|
||||
#define CONFIG_BASE "base"
|
||||
#define CONFIG_BASEDIR "basedir"
|
||||
#define CONFIG_BUILDVERSION "buildversion"
|
||||
#define CONFIG_CODEINDENT "codeindent"
|
||||
#define CONFIG_CPPCLASSESPAGE "cppclassespage"
|
||||
#define CONFIG_DEFINES "defines"
|
||||
#define CONFIG_DEPENDS "depends"
|
||||
#define CONFIG_DESCRIPTION "description"
|
||||
#define CONFIG_EDITION "edition"
|
||||
#define CONFIG_ENDHEADER "endheader"
|
||||
#define CONFIG_EXAMPLEDIRS "exampledirs"
|
||||
#define CONFIG_EXAMPLES "examples"
|
||||
#define CONFIG_EXAMPLESINSTALLPATH "examplesinstallpath"
|
||||
#define CONFIG_EXCLUDEDIRS "excludedirs"
|
||||
#define CONFIG_EXCLUDEFILES "excludefiles"
|
||||
#define CONFIG_EXTRAIMAGES "extraimages"
|
||||
#define CONFIG_FALSEHOODS "falsehoods"
|
||||
#define CONFIG_FORMATTING "formatting"
|
||||
#define CONFIG_GENERATEINDEX "generateindex"
|
||||
#define CONFIG_HEADERDIRS "headerdirs"
|
||||
#define CONFIG_HEADERS "headers"
|
||||
#define CONFIG_HEADERSCRIPTS "headerscripts"
|
||||
#define CONFIG_HEADERSTYLES "headerstyles"
|
||||
#define CONFIG_HOMEPAGE "homepage"
|
||||
#define CONFIG_IGNOREDIRECTIVES "ignoredirectives"
|
||||
#define CONFIG_IGNORETOKENS "ignoretokens"
|
||||
#define CONFIG_IMAGEDIRS "imagedirs"
|
||||
#define CONFIG_IMAGES "images"
|
||||
#define CONFIG_INDEXES "indexes"
|
||||
#define CONFIG_LANGUAGE "language"
|
||||
#define CONFIG_LANDINGPAGE "landingpage"
|
||||
#define CONFIG_MACRO "macro"
|
||||
#define CONFIG_MANIFESTMETA "manifestmeta"
|
||||
#define CONFIG_NATURALLANGUAGE "naturallanguage"
|
||||
#define CONFIG_NAVIGATION "navigation"
|
||||
#define CONFIG_NOLINKERRORS "nolinkerrors"
|
||||
#define CONFIG_OBSOLETELINKS "obsoletelinks"
|
||||
#define CONFIG_OUTPUTDIR "outputdir"
|
||||
#define CONFIG_OUTPUTENCODING "outputencoding"
|
||||
#define CONFIG_OUTPUTLANGUAGE "outputlanguage"
|
||||
#define CONFIG_OUTPUTFORMATS "outputformats"
|
||||
#define CONFIG_OUTPUTPREFIXES "outputprefixes"
|
||||
#define CONFIG_PROJECT "project"
|
||||
#define CONFIG_REDIRECTDOCUMENTATIONTODEVNULL "redirectdocumentationtodevnull"
|
||||
#define CONFIG_QHP "qhp"
|
||||
#define CONFIG_QMLTYPESPAGE "qmltypespage"
|
||||
#define CONFIG_QUOTINGINFORMATION "quotinginformation"
|
||||
#define CONFIG_SCRIPTDIRS "scriptdirs"
|
||||
#define CONFIG_SCRIPTS "scripts"
|
||||
#define CONFIG_SHOWINTERNAL "showinternal"
|
||||
#define CONFIG_SOURCEDIRS "sourcedirs"
|
||||
#define CONFIG_SOURCEENCODING "sourceencoding"
|
||||
#define CONFIG_SOURCES "sources"
|
||||
#define CONFIG_SPURIOUS "spurious"
|
||||
#define CONFIG_STYLEDIRS "styledirs"
|
||||
#define CONFIG_STYLE "style"
|
||||
#define CONFIG_STYLES "styles"
|
||||
#define CONFIG_STYLESHEETS "stylesheets"
|
||||
#define CONFIG_SYNTAXHIGHLIGHTING "syntaxhighlighting"
|
||||
#define CONFIG_TEMPLATEDIR "templatedir"
|
||||
#define CONFIG_TABSIZE "tabsize"
|
||||
#define CONFIG_TAGFILE "tagfile"
|
||||
#define CONFIG_TRANSLATORS "translators"
|
||||
#define CONFIG_URL "url"
|
||||
#define CONFIG_VERSION "version"
|
||||
#define CONFIG_VERSIONSYM "versionsym"
|
||||
#define CONFIG_FILEEXTENSIONS "fileextensions"
|
||||
#define CONFIG_IMAGEEXTENSIONS "imageextensions"
|
||||
#define CONFIG_QMLONLY "qmlonly"
|
||||
struct ConfigStrings
|
||||
{
|
||||
static QString ALIAS;
|
||||
static QString BASE;
|
||||
static QString BASEDIR;
|
||||
static QString BUILDVERSION;
|
||||
static QString CODEINDENT;
|
||||
static QString CPPCLASSESPAGE;
|
||||
static QString DEFINES;
|
||||
static QString DEPENDS;
|
||||
static QString DESCRIPTION;
|
||||
static QString EDITION;
|
||||
static QString ENDHEADER;
|
||||
static QString EXAMPLEDIRS;
|
||||
static QString EXAMPLES;
|
||||
static QString EXAMPLESINSTALLPATH;
|
||||
static QString EXCLUDEDIRS;
|
||||
static QString EXCLUDEFILES;
|
||||
static QString EXTRAIMAGES;
|
||||
static QString FALSEHOODS;
|
||||
static QString FORMATTING;
|
||||
static QString GENERATEINDEX;
|
||||
static QString HEADERDIRS;
|
||||
static QString HEADERS;
|
||||
static QString HEADERSCRIPTS;
|
||||
static QString HEADERSTYLES;
|
||||
static QString HOMEPAGE;
|
||||
static QString IGNOREDIRECTIVES;
|
||||
static QString IGNORETOKENS;
|
||||
static QString IMAGEDIRS;
|
||||
static QString IMAGES;
|
||||
static QString INDEXES;
|
||||
static QString LANDINGPAGE;
|
||||
static QString LANGUAGE;
|
||||
static QString MACRO;
|
||||
static QString MANIFESTMETA;
|
||||
static QString NATURALLANGUAGE;
|
||||
static QString NAVIGATION;
|
||||
static QString NOLINKERRORS;
|
||||
static QString OBSOLETELINKS;
|
||||
static QString OUTPUTDIR;
|
||||
static QString OUTPUTENCODING;
|
||||
static QString OUTPUTLANGUAGE;
|
||||
static QString OUTPUTFORMATS;
|
||||
static QString OUTPUTPREFIXES;
|
||||
static QString PROJECT;
|
||||
static QString REDIRECTDOCUMENTATIONTODEVNULL;
|
||||
static QString QHP;
|
||||
static QString QUOTINGINFORMATION;
|
||||
static QString SCRIPTDIRS;
|
||||
static QString SCRIPTS;
|
||||
static QString SHOWINTERNAL;
|
||||
static QString SOURCEDIRS;
|
||||
static QString SOURCEENCODING;
|
||||
static QString SOURCES;
|
||||
static QString SPURIOUS;
|
||||
static QString STYLEDIRS;
|
||||
static QString STYLE;
|
||||
static QString STYLES;
|
||||
static QString STYLESHEETS;
|
||||
static QString SYNTAXHIGHLIGHTING;
|
||||
static QString TEMPLATEDIR;
|
||||
static QString TABSIZE;
|
||||
static QString TAGFILE;
|
||||
static QString TRANSLATORS;
|
||||
static QString URL;
|
||||
static QString VERSION;
|
||||
static QString VERSIONSYM;
|
||||
static QString FILEEXTENSIONS;
|
||||
static QString IMAGEEXTENSIONS;
|
||||
static QString QMLONLY;
|
||||
static QString QMLTYPESPAGE;
|
||||
};
|
||||
|
||||
#define CONFIG_ALIAS ConfigStrings::ALIAS
|
||||
#define CONFIG_BASE ConfigStrings::BASE
|
||||
#define CONFIG_BASEDIR ConfigStrings::BASEDIR
|
||||
#define CONFIG_BUILDVERSION ConfigStrings::BUILDVERSION
|
||||
#define CONFIG_CODEINDENT ConfigStrings::CODEINDENT
|
||||
#define CONFIG_CPPCLASSESPAGE ConfigStrings::CPPCLASSESPAGE
|
||||
#define CONFIG_DEFINES ConfigStrings::DEFINES
|
||||
#define CONFIG_DEPENDS ConfigStrings::DEPENDS
|
||||
#define CONFIG_DESCRIPTION ConfigStrings::DESCRIPTION
|
||||
#define CONFIG_EDITION ConfigStrings::EDITION
|
||||
#define CONFIG_ENDHEADER ConfigStrings::ENDHEADER
|
||||
#define CONFIG_EXAMPLEDIRS ConfigStrings::EXAMPLEDIRS
|
||||
#define CONFIG_EXAMPLES ConfigStrings::EXAMPLES
|
||||
#define CONFIG_EXAMPLESINSTALLPATH ConfigStrings::EXAMPLESINSTALLPATH
|
||||
#define CONFIG_EXCLUDEDIRS ConfigStrings::EXCLUDEDIRS
|
||||
#define CONFIG_EXCLUDEFILES ConfigStrings::EXCLUDEFILES
|
||||
#define CONFIG_EXTRAIMAGES ConfigStrings::EXTRAIMAGES
|
||||
#define CONFIG_FALSEHOODS ConfigStrings::FALSEHOODS
|
||||
#define CONFIG_FORMATTING ConfigStrings::FORMATTING
|
||||
#define CONFIG_GENERATEINDEX ConfigStrings::GENERATEINDEX
|
||||
#define CONFIG_HEADERDIRS ConfigStrings::HEADERDIRS
|
||||
#define CONFIG_HEADERS ConfigStrings::HEADERS
|
||||
#define CONFIG_HEADERSCRIPTS ConfigStrings::HEADERSCRIPTS
|
||||
#define CONFIG_HEADERSTYLES ConfigStrings::HEADERSTYLES
|
||||
#define CONFIG_HOMEPAGE ConfigStrings::HOMEPAGE
|
||||
#define CONFIG_IGNOREDIRECTIVES ConfigStrings::IGNOREDIRECTIVES
|
||||
#define CONFIG_IGNORETOKENS ConfigStrings::IGNORETOKENS
|
||||
#define CONFIG_IMAGEDIRS ConfigStrings::IMAGEDIRS
|
||||
#define CONFIG_IMAGES ConfigStrings::IMAGES
|
||||
#define CONFIG_INDEXES ConfigStrings::INDEXES
|
||||
#define CONFIG_LANDINGPAGE ConfigStrings::LANDINGPAGE
|
||||
#define CONFIG_LANGUAGE ConfigStrings::LANGUAGE
|
||||
#define CONFIG_MACRO ConfigStrings::MACRO
|
||||
#define CONFIG_MANIFESTMETA ConfigStrings::MANIFESTMETA
|
||||
#define CONFIG_NATURALLANGUAGE ConfigStrings::NATURALLANGUAGE
|
||||
#define CONFIG_NAVIGATION ConfigStrings::NAVIGATION
|
||||
#define CONFIG_NOLINKERRORS ConfigStrings::NOLINKERRORS
|
||||
#define CONFIG_OBSOLETELINKS ConfigStrings::OBSOLETELINKS
|
||||
#define CONFIG_OUTPUTDIR ConfigStrings::OUTPUTDIR
|
||||
#define CONFIG_OUTPUTENCODING ConfigStrings::OUTPUTENCODING
|
||||
#define CONFIG_OUTPUTLANGUAGE ConfigStrings::OUTPUTLANGUAGE
|
||||
#define CONFIG_OUTPUTFORMATS ConfigStrings::OUTPUTFORMATS
|
||||
#define CONFIG_OUTPUTPREFIXES ConfigStrings::OUTPUTPREFIXES
|
||||
#define CONFIG_PROJECT ConfigStrings::PROJECT
|
||||
#define CONFIG_REDIRECTDOCUMENTATIONTODEVNULL ConfigStrings::REDIRECTDOCUMENTATIONTODEVNULL
|
||||
#define CONFIG_QHP ConfigStrings::QHP
|
||||
#define CONFIG_QUOTINGINFORMATION ConfigStrings::QUOTINGINFORMATION
|
||||
#define CONFIG_SCRIPTDIRS ConfigStrings::SCRIPTDIRS
|
||||
#define CONFIG_SCRIPTS ConfigStrings::SCRIPTS
|
||||
#define CONFIG_SHOWINTERNAL ConfigStrings::SHOWINTERNAL
|
||||
#define CONFIG_SOURCEDIRS ConfigStrings::SOURCEDIRS
|
||||
#define CONFIG_SOURCEENCODING ConfigStrings::SOURCEENCODING
|
||||
#define CONFIG_SOURCES ConfigStrings::SOURCES
|
||||
#define CONFIG_SPURIOUS ConfigStrings::SPURIOUS
|
||||
#define CONFIG_STYLEDIRS ConfigStrings::STYLEDIRS
|
||||
#define CONFIG_STYLE ConfigStrings::STYLE
|
||||
#define CONFIG_STYLES ConfigStrings::STYLES
|
||||
#define CONFIG_STYLESHEETS ConfigStrings::STYLESHEETS
|
||||
#define CONFIG_SYNTAXHIGHLIGHTING ConfigStrings::SYNTAXHIGHLIGHTING
|
||||
#define CONFIG_TEMPLATEDIR ConfigStrings::TEMPLATEDIR
|
||||
#define CONFIG_TABSIZE ConfigStrings::TABSIZE
|
||||
#define CONFIG_TAGFILE ConfigStrings::TAGFILE
|
||||
#define CONFIG_TRANSLATORS ConfigStrings::TRANSLATORS
|
||||
#define CONFIG_URL ConfigStrings::URL
|
||||
#define CONFIG_VERSION ConfigStrings::VERSION
|
||||
#define CONFIG_VERSIONSYM ConfigStrings::VERSIONSYM
|
||||
#define CONFIG_FILEEXTENSIONS ConfigStrings::FILEEXTENSIONS
|
||||
#define CONFIG_IMAGEEXTENSIONS ConfigStrings::IMAGEEXTENSIONS
|
||||
#define CONFIG_QMLONLY ConfigStrings::QMLONLY
|
||||
#define CONFIG_QMLTYPESPAGE ConfigStrings::QMLTYPESPAGE
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
|
@ -802,31 +802,6 @@ QList<Section> CppCodeMarker::sections(const InnerNode *inner,
|
||||
return sections;
|
||||
}
|
||||
|
||||
static const char * const typeTable[] = {
|
||||
"bool", "char", "double", "float", "int", "long", "short",
|
||||
"signed", "unsigned", "uint", "ulong", "ushort", "uchar", "void",
|
||||
"qlonglong", "qulonglong",
|
||||
"qint", "qint8", "qint16", "qint32", "qint64",
|
||||
"quint", "quint8", "quint16", "quint32", "quint64",
|
||||
"qreal", "cond", 0
|
||||
};
|
||||
|
||||
static const char * const keywordTable[] = {
|
||||
"and", "and_eq", "asm", "auto", "bitand", "bitor", "break",
|
||||
"case", "catch", "class", "compl", "const", "const_cast",
|
||||
"continue", "default", "delete", "do", "dynamic_cast", "else",
|
||||
"enum", "explicit", "export", "extern", "false", "for", "friend",
|
||||
"goto", "if", "include", "inline", "monitor", "mutable", "namespace",
|
||||
"new", "not", "not_eq", "operator", "or", "or_eq", "private", "protected",
|
||||
"public", "register", "reinterpret_cast", "return", "sizeof",
|
||||
"static", "static_cast", "struct", "switch", "template", "this",
|
||||
"throw", "true", "try", "typedef", "typeid", "typename", "union",
|
||||
"using", "virtual", "volatile", "wchar_t", "while", "xor",
|
||||
"xor_eq", "synchronized",
|
||||
// Qt specific
|
||||
"signals", "slots", "emit", 0
|
||||
};
|
||||
|
||||
/*
|
||||
@char
|
||||
@class
|
||||
@ -844,25 +819,51 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
const Node * /* relative */,
|
||||
const Location & /* location */)
|
||||
{
|
||||
static QSet<QString> types;
|
||||
static QSet<QString> keywords;
|
||||
|
||||
if (types.isEmpty()) {
|
||||
// initialize statics
|
||||
Q_ASSERT(keywords.isEmpty());
|
||||
static const QString typeTable[] = {
|
||||
QLatin1String("bool"), QLatin1String("char"), QLatin1String("double"), QLatin1String("float"), QLatin1String("int"), QLatin1String("long"), QLatin1String("short"),
|
||||
QLatin1String("signed"), QLatin1String("unsigned"), QLatin1String("uint"), QLatin1String("ulong"), QLatin1String("ushort"), QLatin1String("uchar"), QLatin1String("void"),
|
||||
QLatin1String("qlonglong"), QLatin1String("qulonglong"),
|
||||
QLatin1String("qint"), QLatin1String("qint8"), QLatin1String("qint16"), QLatin1String("qint32"), QLatin1String("qint64"),
|
||||
QLatin1String("quint"), QLatin1String("quint8"), QLatin1String("quint16"), QLatin1String("quint32"), QLatin1String("quint64"),
|
||||
QLatin1String("qreal"), QLatin1String("cond")
|
||||
};
|
||||
|
||||
static const QString keywordTable[] = {
|
||||
QLatin1String("and"), QLatin1String("and_eq"), QLatin1String("asm"), QLatin1String("auto"), QLatin1String("bitand"), QLatin1String("bitor"), QLatin1String("break"),
|
||||
QLatin1String("case"), QLatin1String("catch"), QLatin1String("class"), QLatin1String("compl"), QLatin1String("const"), QLatin1String("const_cast"),
|
||||
QLatin1String("continue"), QLatin1String("default"), QLatin1String("delete"), QLatin1String("do"), QLatin1String("dynamic_cast"), QLatin1String("else"),
|
||||
QLatin1String("enum"), QLatin1String("explicit"), QLatin1String("export"), QLatin1String("extern"), QLatin1String("false"), QLatin1String("for"), QLatin1String("friend"),
|
||||
QLatin1String("goto"), QLatin1String("if"), QLatin1String("include"), QLatin1String("inline"), QLatin1String("monitor"), QLatin1String("mutable"), QLatin1String("namespace"),
|
||||
QLatin1String("new"), QLatin1String("not"), QLatin1String("not_eq"), QLatin1String("operator"), QLatin1String("or"), QLatin1String("or_eq"), QLatin1String("private"), QLatin1String("protected"),
|
||||
QLatin1String("public"), QLatin1String("register"), QLatin1String("reinterpret_cast"), QLatin1String("return"), QLatin1String("sizeof"),
|
||||
QLatin1String("static"), QLatin1String("static_cast"), QLatin1String("struct"), QLatin1String("switch"), QLatin1String("template"), QLatin1String("this"),
|
||||
QLatin1String("throw"), QLatin1String("true"), QLatin1String("try"), QLatin1String("typedef"), QLatin1String("typeid"), QLatin1String("typename"), QLatin1String("union"),
|
||||
QLatin1String("using"), QLatin1String("virtual"), QLatin1String("volatile"), QLatin1String("wchar_t"), QLatin1String("while"), QLatin1String("xor"),
|
||||
QLatin1String("xor_eq"), QLatin1String("synchronized"),
|
||||
// Qt specific
|
||||
QLatin1String("signals"), QLatin1String("slots"), QLatin1String("emit")
|
||||
};
|
||||
|
||||
types.reserve(sizeof(typeTable) / sizeof(QString));
|
||||
for (int j = sizeof(typeTable) / sizeof(QString) - 1; j; --j)
|
||||
types.insert(typeTable[j]);
|
||||
|
||||
keywords.reserve(sizeof(keywordTable) / sizeof(QString));
|
||||
for (int j = sizeof(keywordTable) / sizeof(QString) - 1; j; --j)
|
||||
keywords.insert(keywordTable[j]);
|
||||
}
|
||||
#define readChar() \
|
||||
ch = (i < (int)code.length()) ? code[i++].cell() : EOF
|
||||
|
||||
QString code = in;
|
||||
|
||||
QMap<QString, int> types;
|
||||
QMap<QString, int> keywords;
|
||||
int j = 0;
|
||||
while (typeTable[j] != 0) {
|
||||
types.insert(QString(typeTable[j]), 0);
|
||||
j++;
|
||||
}
|
||||
j = 0;
|
||||
while (keywordTable[j] != 0) {
|
||||
keywords.insert(QString(keywordTable[j]), 0);
|
||||
j++;
|
||||
}
|
||||
|
||||
QString out;
|
||||
QStringList out;
|
||||
QString text;
|
||||
int braceDepth = 0;
|
||||
int parenDepth = 0;
|
||||
int i = 0;
|
||||
@ -871,6 +872,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
QChar ch;
|
||||
QRegExp classRegExp("Qt?(?:[A-Z3]+[a-z][A-Za-z]*|t)");
|
||||
QRegExp functionRegExp("q([A-Z][a-z]+)+");
|
||||
QRegExp findFunctionRegExp(QStringLiteral("^\\s*\\("));
|
||||
|
||||
readChar();
|
||||
|
||||
@ -887,18 +889,18 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
} while (ch.isLetterOrNumber() || ch == '_');
|
||||
|
||||
if (classRegExp.exactMatch(ident)) {
|
||||
tag = QLatin1String("type");
|
||||
tag = QStringLiteral("type");
|
||||
} else if (functionRegExp.exactMatch(ident)) {
|
||||
tag = QLatin1String("func");
|
||||
tag = QStringLiteral("func");
|
||||
target = true;
|
||||
} else if (types.contains(ident)) {
|
||||
tag = QLatin1String("type");
|
||||
tag = QStringLiteral("type");
|
||||
} else if (keywords.contains(ident)) {
|
||||
tag = QLatin1String("keyword");
|
||||
tag = QStringLiteral("keyword");
|
||||
} else if (braceDepth == 0 && parenDepth == 0) {
|
||||
if (QString(code.unicode() + i - 1, code.length() - (i - 1))
|
||||
.indexOf(QRegExp(QLatin1String("^\\s*\\("))) == 0)
|
||||
tag = QLatin1String("func");
|
||||
.indexOf(findFunctionRegExp) == 0)
|
||||
tag = QStringLiteral("func");
|
||||
target = true;
|
||||
}
|
||||
} else if (ch.isDigit()) {
|
||||
@ -906,7 +908,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
finish = i;
|
||||
readChar();
|
||||
} while (ch.isLetterOrNumber() || ch == '.');
|
||||
tag = QLatin1String("number");
|
||||
tag = QStringLiteral("number");
|
||||
} else {
|
||||
switch (ch.unicode()) {
|
||||
case '+':
|
||||
@ -928,7 +930,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
case '~':
|
||||
finish = i;
|
||||
readChar();
|
||||
tag = QLatin1String("op");
|
||||
tag = QStringLiteral("op");
|
||||
break;
|
||||
case '"':
|
||||
finish = i;
|
||||
@ -941,7 +943,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
}
|
||||
finish = i;
|
||||
readChar();
|
||||
tag = QLatin1String("string");
|
||||
tag = QStringLiteral("string");
|
||||
break;
|
||||
case '#':
|
||||
finish = i;
|
||||
@ -952,7 +954,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
finish = i;
|
||||
readChar();
|
||||
}
|
||||
tag = QLatin1String("preprocessor");
|
||||
tag = QStringLiteral("preprocessor");
|
||||
break;
|
||||
case '\'':
|
||||
finish = i;
|
||||
@ -965,7 +967,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
}
|
||||
finish = i;
|
||||
readChar();
|
||||
tag = QLatin1String("char");
|
||||
tag = QStringLiteral("char");
|
||||
break;
|
||||
case '(':
|
||||
finish = i;
|
||||
@ -983,7 +985,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
if (ch == ':') {
|
||||
finish = i;
|
||||
readChar();
|
||||
tag = QLatin1String("op");
|
||||
tag = QStringLiteral("op");
|
||||
}
|
||||
break;
|
||||
case '/':
|
||||
@ -994,7 +996,7 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
finish = i;
|
||||
readChar();
|
||||
} while (ch != EOF && ch != '\n');
|
||||
tag = QLatin1String("comment");
|
||||
tag = QStringLiteral("comment");
|
||||
} else if (ch == '*') {
|
||||
bool metAster = false;
|
||||
bool metAsterSlash = false;
|
||||
@ -1015,9 +1017,9 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
finish = i;
|
||||
readChar();
|
||||
}
|
||||
tag = QLatin1String("comment");
|
||||
tag = QStringLiteral("comment");
|
||||
} else {
|
||||
tag = QLatin1String("op");
|
||||
tag = QStringLiteral("op");
|
||||
}
|
||||
break;
|
||||
case '{':
|
||||
@ -1036,28 +1038,27 @@ QString CppCodeMarker::addMarkUp(const QString &in,
|
||||
}
|
||||
}
|
||||
|
||||
QString text;
|
||||
text = code.mid(start, finish - start);
|
||||
start = finish;
|
||||
|
||||
if (!tag.isEmpty()) {
|
||||
out += QLatin1String("<@") + tag;
|
||||
out << QStringLiteral("<@") << tag;
|
||||
if (target)
|
||||
out += QLatin1String(" target=\"") + text + QLatin1String("()\"");
|
||||
out += QLatin1Char('>');
|
||||
out << QStringLiteral(" target=\"") << text << QStringLiteral("()\"");
|
||||
out << QStringLiteral(">");
|
||||
}
|
||||
|
||||
out += protect(text);
|
||||
out << protect(text);
|
||||
|
||||
if (!tag.isEmpty())
|
||||
out += QLatin1String("</@") + tag + QLatin1Char('>');
|
||||
out << QStringLiteral("</@") << tag << QStringLiteral(">");
|
||||
}
|
||||
|
||||
if (start < code.length()) {
|
||||
out += protect(code.mid(start));
|
||||
out << protect(code.mid(start));
|
||||
}
|
||||
|
||||
return out;
|
||||
return out.join(QString());
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -502,7 +502,7 @@ DitaXmlGenerator::~DitaXmlGenerator()
|
||||
void DitaXmlGenerator::initializeGenerator(const Config &config)
|
||||
{
|
||||
Generator::initializeGenerator(config);
|
||||
obsoleteLinks = config.getBool(QLatin1String(CONFIG_OBSOLETELINKS));
|
||||
obsoleteLinks = config.getBool(CONFIG_OBSOLETELINKS);
|
||||
setImageFileExtensions(QStringList() << "png" << "jpg" << "jpeg" << "gif");
|
||||
|
||||
style = config.getString(DitaXmlGenerator::format() +
|
||||
|
@ -1643,7 +1643,7 @@ void Generator::initialize(const Config &config)
|
||||
}
|
||||
else
|
||||
outputPrefixes[QLatin1String("QML")] = QLatin1String("qml-");
|
||||
noLinkErrors_ = config.getBool(QLatin1String(CONFIG_NOLINKERRORS));
|
||||
noLinkErrors_ = config.getBool(CONFIG_NOLINKERRORS);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -136,7 +136,7 @@ void HtmlGenerator::initializeGenerator(const Config &config)
|
||||
};
|
||||
|
||||
Generator::initializeGenerator(config);
|
||||
obsoleteLinks = config.getBool(QLatin1String(CONFIG_OBSOLETELINKS));
|
||||
obsoleteLinks = config.getBool(CONFIG_OBSOLETELINKS);
|
||||
setImageFileExtensions(QStringList() << "png" << "jpg" << "jpeg" << "gif");
|
||||
int i = 0;
|
||||
while (defaults[i].key) {
|
||||
|
@ -78,16 +78,16 @@ QT_BEGIN_NAMESPACE
|
||||
And those are all the default values for configuration variables.
|
||||
*/
|
||||
static const struct {
|
||||
const char *key;
|
||||
const char *value;
|
||||
const QString key;
|
||||
const QString value;
|
||||
} defaults[] = {
|
||||
{ CONFIG_CODEINDENT, "4" },
|
||||
{ CONFIG_FALSEHOODS, "0" },
|
||||
{ CONFIG_FILEEXTENSIONS, "*.cpp *.h *.qdoc *.qml"},
|
||||
{ CONFIG_LANGUAGE, "Cpp" },
|
||||
{ CONFIG_OUTPUTFORMATS, "HTML" },
|
||||
{ CONFIG_TABSIZE, "8" },
|
||||
{ 0, 0 }
|
||||
{ CONFIG_CODEINDENT, QLatin1String("4") },
|
||||
{ CONFIG_FALSEHOODS, QLatin1String("0") },
|
||||
{ CONFIG_FILEEXTENSIONS, QLatin1String("*.cpp *.h *.qdoc *.qml") },
|
||||
{ CONFIG_LANGUAGE, QLatin1String("Cpp") },
|
||||
{ CONFIG_OUTPUTFORMATS, QLatin1String("HTML") },
|
||||
{ CONFIG_TABSIZE, QLatin1String("8") },
|
||||
{ QString(), QString() }
|
||||
};
|
||||
|
||||
bool creationTimeBefore(const QFileInfo &fi1, const QFileInfo &fi2)
|
||||
@ -269,7 +269,7 @@ static void processQdocconfFile(const QString &fileName)
|
||||
*/
|
||||
Config config(QCoreApplication::translate("QDoc", "qdoc"));
|
||||
int i = 0;
|
||||
while (defaults[i].key) {
|
||||
while (!defaults[i].key.isEmpty()) {
|
||||
config.setStringList(defaults[i].key, QStringList() << defaults[i].value);
|
||||
++i;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user