File indexing completed on 2024-05-19 04:39:55

0001 /*
0002     SPDX-FileCopyrightText: 2012 Miha Čančula <miha@noughmad.eu>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_KDEVFILTERS_H
0008 #define KDEVPLATFORM_KDEVFILTERS_H
0009 
0010 #include <grantlee/taglibraryinterface.h>
0011 #include <grantlee/filter.h>
0012 
0013 #include <QObject>
0014 
0015 namespace KDevelop {
0016 
0017 class CamelCaseFilter : public Grantlee::Filter
0018 {
0019 public:
0020     QVariant doFilter(const QVariant& input,
0021                               const QVariant& argument = QVariant(),
0022                               bool autoescape = false) const override;
0023 };
0024 
0025 class LowerCamelCaseFilter : public Grantlee::Filter
0026 {
0027 public:
0028     QVariant doFilter(const QVariant& input,
0029                               const QVariant& argument = QVariant(),
0030                               bool autoescape = false) const override;
0031 };
0032 
0033 class UnderscoreFilter : public Grantlee::Filter
0034 {
0035 public:
0036     QVariant doFilter(const QVariant& input,
0037                               const QVariant& argument = QVariant(),
0038                               bool autoescape = false) const override;
0039 };
0040 
0041 class UpperFirstFilter : public Grantlee::Filter
0042 {
0043 public:
0044     QVariant doFilter(const QVariant& input,
0045                               const QVariant& argument = QVariant(),
0046                               bool autoescape = false) const override;
0047 };
0048 
0049 class SplitLinesFilter : public Grantlee::Filter
0050 {
0051 public:
0052     QVariant doFilter(const QVariant& input,
0053                               const QVariant& argument = QVariant(),
0054                               bool autoescape = false) const override;
0055 };
0056 
0057 class ArgumentTypeFilter : public Grantlee::Filter
0058 {
0059 public:
0060     QVariant doFilter(const QVariant& input,
0061                               const QVariant& argument = QVariant(),
0062                               bool autoescape = false) const override;
0063 };
0064 
0065 class KDevFilters : public QObject, public Grantlee::TagLibraryInterface
0066 {
0067     Q_OBJECT
0068     Q_INTERFACES(Grantlee::TagLibraryInterface)
0069     Q_PLUGIN_METADATA(IID "org.grantlee.TagLibraryInterface")
0070 
0071 public:
0072     explicit KDevFilters(QObject* parent = nullptr, const QVariantList &args = QVariantList());
0073     ~KDevFilters() override;
0074 
0075     QHash< QString, Grantlee::Filter* > filters(const QString& name = QString()) override;
0076 };
0077 
0078 }
0079 
0080 #endif // KDEVPLATFORM_KDEVFILTERS_H