diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2016-06-02 18:36:21 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2016-06-02 18:36:21 (GMT) |
commit | d3f2fcd53000fc4a09cf56c90930f8c8e2ad02b4 (patch) | |
tree | 2d1fa5fde2c5853ae0bda0e4efe2c77a3f3d2c39 /src | |
parent | 7c3126407bbb46717a4e0a09b61ee001702af7bf (diff) | |
download | Doxygen-d3f2fcd53000fc4a09cf56c90930f8c8e2ad02b4.zip Doxygen-d3f2fcd53000fc4a09cf56c90930f8c8e2ad02b4.tar.gz Doxygen-d3f2fcd53000fc4a09cf56c90930f8c8e2ad02b4.tar.bz2 |
Adding partial htmlhelp support to template system
Diffstat (limited to 'src')
-rw-r--r-- | src/template.cpp | 99 |
1 files changed, 80 insertions, 19 deletions
diff --git a/src/template.cpp b/src/template.cpp index 9e814d7..10b3e43 100644 --- a/src/template.cpp +++ b/src/template.cpp @@ -1292,6 +1292,64 @@ class FilterDivisibleBy } }; +//-------------------------------------------------------------------- + +/** @brief The implementation of the "isRelativeURL" filter */ +class FilterIsRelativeURL +{ + public: + static TemplateVariant apply(const TemplateVariant &v,const TemplateVariant &) + { + if (v.isValid() && v.type()==TemplateVariant::String) + { + QCString s = v.toString(); + if (!s.isEmpty() && s.at(0)=='!') return TRUE; + } + return FALSE; + } +}; + +//-------------------------------------------------------------------- + +/** @brief The implementation of the "isRelativeURL" filter */ +class FilterIsAbsoluteURL +{ + public: + static TemplateVariant apply(const TemplateVariant &v,const TemplateVariant &) + { + if (v.isValid() && v.type()==TemplateVariant::String) + { + QCString s = v.toString(); + if (!s.isEmpty() && s.at(0)=='^') return TRUE; + } + return FALSE; + } +}; + +//-------------------------------------------------------------------- + +/** @brief The implementation of the "decodeURL" filter + * The leading character is removed from the value in case it is a ^ or !. + * - ^ is used to encode a absolute URL + * - ! is used to encode a relative URL + */ +class FilterDecodeURL +{ + public: + static TemplateVariant apply(const TemplateVariant &v,const TemplateVariant &) + { + if (v.isValid() && v.type()==TemplateVariant::String) + { + QCString s = v.toString(); + if (!s.isEmpty() && (s.at(0)=='^' || s.at(0)=='!')) + { + return s.mid(1); + } + } + return v; + } +}; + //-------------------------------------------------------------------- @@ -1343,25 +1401,28 @@ class TemplateFilterFactory }; // register a handlers for each filter we support -static TemplateFilterFactory::AutoRegister<FilterAdd> fAdd("add"); -static TemplateFilterFactory::AutoRegister<FilterGet> fGet("get"); -static TemplateFilterFactory::AutoRegister<FilterRaw> fRaw("raw"); -static TemplateFilterFactory::AutoRegister<FilterList> fList("list"); -static TemplateFilterFactory::AutoRegister<FilterAppend> fAppend("append"); -static TemplateFilterFactory::AutoRegister<FilterLength> fLength("length"); -static TemplateFilterFactory::AutoRegister<FilterNoWrap> fNoWrap("nowrap"); -static TemplateFilterFactory::AutoRegister<FilterFlatten> fFlatten("flatten"); -static TemplateFilterFactory::AutoRegister<FilterDefault> fDefault("default"); -static TemplateFilterFactory::AutoRegister<FilterPrepend> fPrepend("prepend"); -static TemplateFilterFactory::AutoRegister<FilterGroupBy> fGroupBy("groupBy"); -static TemplateFilterFactory::AutoRegister<FilterRelative> fRelative("relative"); -static TemplateFilterFactory::AutoRegister<FilterListSort> fListSort("listsort"); -static TemplateFilterFactory::AutoRegister<FilterTexLabel> fTexLabel("texLabel"); -static TemplateFilterFactory::AutoRegister<FilterTexIndex> fTexIndex("texIndex"); -static TemplateFilterFactory::AutoRegister<FilterPaginate> fPaginate("paginate"); -static TemplateFilterFactory::AutoRegister<FilterStripPath> fStripPath("stripPath"); -static TemplateFilterFactory::AutoRegister<FilterAlphaIndex> fAlphaIndex("alphaIndex"); -static TemplateFilterFactory::AutoRegister<FilterDivisibleBy> fDivisibleBy("divisibleby"); +static TemplateFilterFactory::AutoRegister<FilterAdd> fAdd("add"); +static TemplateFilterFactory::AutoRegister<FilterGet> fGet("get"); +static TemplateFilterFactory::AutoRegister<FilterRaw> fRaw("raw"); +static TemplateFilterFactory::AutoRegister<FilterList> fList("list"); +static TemplateFilterFactory::AutoRegister<FilterAppend> fAppend("append"); +static TemplateFilterFactory::AutoRegister<FilterLength> fLength("length"); +static TemplateFilterFactory::AutoRegister<FilterNoWrap> fNoWrap("nowrap"); +static TemplateFilterFactory::AutoRegister<FilterFlatten> fFlatten("flatten"); +static TemplateFilterFactory::AutoRegister<FilterDefault> fDefault("default"); +static TemplateFilterFactory::AutoRegister<FilterPrepend> fPrepend("prepend"); +static TemplateFilterFactory::AutoRegister<FilterGroupBy> fGroupBy("groupBy"); +static TemplateFilterFactory::AutoRegister<FilterRelative> fRelative("relative"); +static TemplateFilterFactory::AutoRegister<FilterListSort> fListSort("listsort"); +static TemplateFilterFactory::AutoRegister<FilterTexLabel> fTexLabel("texLabel"); +static TemplateFilterFactory::AutoRegister<FilterTexIndex> fTexIndex("texIndex"); +static TemplateFilterFactory::AutoRegister<FilterPaginate> fPaginate("paginate"); +static TemplateFilterFactory::AutoRegister<FilterStripPath> fStripPath("stripPath"); +static TemplateFilterFactory::AutoRegister<FilterDecodeURL> fDecodeURL("decodeURL"); +static TemplateFilterFactory::AutoRegister<FilterAlphaIndex> fAlphaIndex("alphaIndex"); +static TemplateFilterFactory::AutoRegister<FilterDivisibleBy> fDivisibleBy("divisibleby"); +static TemplateFilterFactory::AutoRegister<FilterIsRelativeURL> fIsRelativeURL("isRelativeURL"); +static TemplateFilterFactory::AutoRegister<FilterIsAbsoluteURL> fIsAbsoluteURL("isAbsoluteURL"); //-------------------------------------------------------------------- |