cutelyst  3.7.0
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
validatorfilesize.h
1 /*
2  * SPDX-FileCopyrightText: (C) 2018-2022 Matthias Fehring <mf@huessenbergnetz.de>
3  * SPDX-License-Identifier: BSD-3-Clause
4  */
5 
6 #ifndef CUTELYSTVALIDATORFILESIZE_H
7 #define CUTELYSTVALIDATORFILESIZE_H
8 
9 #include <Cutelyst/cutelyst_global.h>
10 #include <QLocale>
11 #include "validatorrule.h"
12 
13 namespace Cutelyst {
14 
15 class ValidatorFileSizePrivate;
16 
51 class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT ValidatorFileSize : public ValidatorRule
52 {
53 public:
57  enum Option : quint8 {
58  NoOption = 0,
59  OnlyBinary = 1,
60  OnlyDecimal = 2,
61  ForceBinary = 3,
62  ForceDecimal = 4
63  };
64 
76  ValidatorFileSize(const QString &field,
77  Option option = NoOption,
78  const QVariant &min = QVariant(),
79  const QVariant &max = QVariant(),
80  const ValidatorMessages &messages = ValidatorMessages(),
81  const QString &defValKey = QString());
82 
86  ~ValidatorFileSize() override;
87 
100  static bool validate(const QString &value,
101  double min = -1,
102  double max = -1,
103  Option option = NoOption,
104  const QLocale &locale = QLocale(),
105  double *fileSize = nullptr);
106 
117  static void inputPattern(Context *c, const QString &stashKey = QStringLiteral("fileSizePattern"));
118 
119 protected:
126  ValidatorReturnType validate(Context *c, const ParamsMultiMap &params) const override;
127 
131  QString genericValidationError(Context *c, const QVariant &errorData = QVariant()) const override;
132 
139  QString genericValidationDataError(Context *c, const QVariant &errorData) const override;
140 
141 private:
142  Q_DECLARE_PRIVATE(ValidatorFileSize)
143  Q_DISABLE_COPY(ValidatorFileSize)
144 };
145 
146 }
147 
148 #endif // CUTELYSTVALIDATORFILESIZE_H
The Cutelyst Context.
Definition: context.h:39
Checks if the input field contains a valid file size string like 1.5 GB.
Option
Options for ValidatorFileSize.
Base class for all validator rules.
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:8
QMultiMap< QString, QString > ParamsMultiMap
Stores custom error messages and the input field label.
Contains the result of a single input parameter validation.
Definition: validatorrule.h:49