cutelyst  5.0.1
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-2025 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 "validatorrule.h"
10 
11 #include <QLocale>
12 
13 namespace Cutelyst {
14 
15 class ValidatorFileSizePrivate;
16 
59 class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT ValidatorFileSize : public ValidatorRule
60 {
61 public:
65  enum Option : quint8 {
66  NoOption = 0,
67  OnlyBinary = 1,
68  OnlyDecimal = 2,
69  ForceBinary = 3,
71  ForceDecimal = 4
73  };
74 
90  explicit ValidatorFileSize(const QString &field,
91  Option option = NoOption,
92  const QVariant &min = {},
93  const QVariant &max = {},
94  const ValidatorMessages &messages = {},
95  const QString &defValKey = {});
96 
100  ~ValidatorFileSize() override;
101 
116  static bool validate(const QString &value,
117  double min = -1,
118  double max = -1,
119  Option option = NoOption,
120  const QLocale &locale = QLocale(),
121  double *fileSize = nullptr);
122 
135  static void inputPattern(Context *c,
136  const QString &stashKey = QStringLiteral("fileSizePattern"));
137 
138 protected:
145  ValidatorReturnType validate(Context *c, const ParamsMultiMap &params) const override;
146 
156  void validateCb(Context *c, const ParamsMultiMap &params, ValidatorRtFn cb) const override;
157 
161  QString genericValidationError(Context *c,
162  const QVariant &errorData = QVariant()) const override;
163 
167  QString genericValidationDataError(Context *c, const QVariant &errorData) const override;
168 
169 private:
170  Q_DECLARE_PRIVATE(ValidatorFileSize) // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast)
171  Q_DISABLE_COPY(ValidatorFileSize)
172 };
173 
174 } // namespace Cutelyst
175 
176 #endif // CUTELYSTVALIDATORFILESIZE_H
Option
Options for ValidatorFileSize.
The Cutelyst namespace holds all public Cutelyst API.
Base class for all validator rules.
Checks if the input field contains a valid file size string like 1.5 GB.
QMultiMap< QString, QString > ParamsMultiMap