File indexing completed on 2025-02-09 04:28:32

0001 /*
0002   This file is part of the KTextTemplate library
0003 
0004   SPDX-FileCopyrightText: 2009, 2010 Stephen Kelly <steveire@gmail.com>
0005 
0006   SPDX-License-Identifier: LGPL-2.1-or-later
0007 
0008 */
0009 
0010 #ifndef DEFAULTFILTERS_H
0011 #define DEFAULTFILTERS_H
0012 
0013 #include "datetime.h"
0014 #include "integers.h"
0015 #include "lists.h"
0016 #include "logic.h"
0017 #include "misc.h"
0018 #include "stringfilters.h"
0019 
0020 #include "taglibraryinterface.h"
0021 
0022 using namespace KTextTemplate;
0023 
0024 class DefaultFiltersLibrary : public QObject, public TagLibraryInterface
0025 {
0026     Q_OBJECT
0027     Q_INTERFACES(KTextTemplate::TagLibraryInterface)
0028     Q_PLUGIN_METADATA(IID "org.kde.KTextTemplate.TagLibraryInterface")
0029 public:
0030     DefaultFiltersLibrary(QObject *parent = {})
0031         : QObject(parent)
0032     {
0033     }
0034 
0035     QHash<QString, Filter *> filters(const QString &name = {}) override
0036     {
0037         Q_UNUSED(name);
0038 
0039         QHash<QString, Filter *> filters;
0040 
0041         filters.insert(QStringLiteral("add"), new AddFilter());
0042         filters.insert(QStringLiteral("addslashes"), new AddSlashesFilter());
0043         filters.insert(QStringLiteral("capfirst"), new CapFirstFilter());
0044         filters.insert(QStringLiteral("center"), new CenterFilter());
0045         filters.insert(QStringLiteral("cut"), new CutFilter());
0046         filters.insert(QStringLiteral("date"), new DateFilter());
0047         filters.insert(QStringLiteral("default"), new DefaultFilter());
0048         filters.insert(QStringLiteral("default_if_none"), new DefaultIfNoneFilter());
0049         filters.insert(QStringLiteral("dictsort"), new DictSortFilter());
0050         filters.insert(QStringLiteral("divisibleby"), new DivisibleByFilter());
0051         filters.insert(QStringLiteral("escape"), new EscapeFilter());
0052         filters.insert(QStringLiteral("escapejs"), new EscapeJsFilter());
0053         filters.insert(QStringLiteral("first"), new FirstFilter());
0054         filters.insert(QStringLiteral("fix_ampersands"), new FixAmpersandsFilter());
0055         filters.insert(QStringLiteral("floatformat"), new FloatFormatFilter());
0056         filters.insert(QStringLiteral("filesizeformat"), new FileSizeFormatFilter());
0057         filters.insert(QStringLiteral("force_escape"), new ForceEscapeFilter());
0058         filters.insert(QStringLiteral("get_digit"), new GetDigitFilter());
0059         filters.insert(QStringLiteral("join"), new JoinFilter());
0060         filters.insert(QStringLiteral("last"), new LastFilter());
0061         filters.insert(QStringLiteral("length"), new LengthFilter());
0062         filters.insert(QStringLiteral("length_is"), new LengthIsFilter());
0063         filters.insert(QStringLiteral("linebreaks"), new LineBreaksFilter());
0064         filters.insert(QStringLiteral("linebreaksbr"), new LineBreaksBrFilter());
0065         filters.insert(QStringLiteral("linenumbers"), new LineNumbersFilter());
0066         filters.insert(QStringLiteral("ljust"), new LJustFilter());
0067         filters.insert(QStringLiteral("lower"), new LowerFilter());
0068         filters.insert(QStringLiteral("make_list"), new MakeListFilter());
0069         filters.insert(QStringLiteral("random"), new RandomFilter());
0070         filters.insert(QStringLiteral("removetags"), new RemoveTagsFilter());
0071         filters.insert(QStringLiteral("rjust"), new RJustFilter());
0072         filters.insert(QStringLiteral("safe"), new SafeFilter());
0073         filters.insert(QStringLiteral("safeseq"), new SafeSequenceFilter());
0074         filters.insert(QStringLiteral("slice"), new SliceFilter());
0075         filters.insert(QStringLiteral("slugify"), new SlugifyFilter());
0076         filters.insert(QStringLiteral("stringformat"), new StringFormatFilter());
0077         filters.insert(QStringLiteral("striptags"), new StripTagsFilter());
0078         filters.insert(QStringLiteral("time"), new TimeFilter());
0079         filters.insert(QStringLiteral("timesince"), new TimeSinceFilter());
0080         filters.insert(QStringLiteral("timeuntil"), new TimeUntilFilter());
0081         filters.insert(QStringLiteral("title"), new TitleFilter());
0082         filters.insert(QStringLiteral("truncatewords"), new TruncateWordsFilter());
0083         filters.insert(QStringLiteral("unordered_list"), new UnorderedListFilter());
0084         filters.insert(QStringLiteral("upper"), new UpperFilter());
0085         filters.insert(QStringLiteral("wordcount"), new WordCountFilter());
0086         filters.insert(QStringLiteral("wordwrap"), new WordWrapFilter());
0087         filters.insert(QStringLiteral("yesno"), new YesNoFilter());
0088         filters.insert(QStringLiteral("truncatechars"), new TruncateCharsFilter());
0089 
0090         return filters;
0091     }
0092 };
0093 
0094 #endif