cutelyst  3.9.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-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 "validatorrule.h"
10 
11 #include <Cutelyst/cutelyst_global.h>
12 
13 #include <QLocale>
14 
15 namespace Cutelyst {
16 
17 class ValidatorFileSizePrivate;
18 
57 class CUTELYST_PLUGIN_UTILS_VALIDATOR_EXPORT ValidatorFileSize : public ValidatorRule
58 {
59 public:
63  enum Option : quint8 {
64  NoOption = 0,
65  OnlyBinary = 1,
66  OnlyDecimal = 2,
67  ForceBinary = 3,
69  ForceDecimal = 4
71  };
72 
86  ValidatorFileSize(const QString &field,
87  Option option = NoOption,
88  const QVariant &min = QVariant(),
89  const QVariant &max = QVariant(),
90  const ValidatorMessages &messages = ValidatorMessages(),
91  const QString &defValKey = QString());
92 
96  ~ValidatorFileSize() override;
97 
110  static bool validate(const QString &value,
111  double min = -1,
112  double max = -1,
113  Option option = NoOption,
114  const QLocale &locale = QLocale(),
115  double *fileSize = nullptr);
116 
127  static void inputPattern(Context *c,
128  const QString &stashKey = QStringLiteral("fileSizePattern"));
129 
130 protected:
137  ValidatorReturnType validate(Context *c, const ParamsMultiMap &params) const override;
138 
142  QString genericValidationError(Context *c,
143  const QVariant &errorData = QVariant()) const override;
144 
151  QString genericValidationDataError(Context *c, const QVariant &errorData) const override;
152 
153 private:
154  Q_DECLARE_PRIVATE(ValidatorFileSize)
155  Q_DISABLE_COPY(ValidatorFileSize)
156 };
157 
158 } // namespace Cutelyst
159 
160 #endif // CUTELYSTVALIDATORFILESIZE_H
Stores custom error messages and the input field label.
Option
Options for ValidatorFileSize.
The Cutelyst Context.
Definition: context.h:38
The Cutelyst namespace holds all public Cutelyst API.
Definition: Mainpage.dox:7
Base class for all validator rules.
Checks if the input field contains a valid file size string like 1.5 GB.
Contains the result of a single input parameter validation.
Definition: validatorrule.h:49