Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_meta_data_parser.cc
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2009 Cyrille Berger <cberger@cberger.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
8
10
11using namespace KisMetaData;
12
16
18
19#include <QDateTime>
20#include <QRegExp>
21#include <QVariant>
22
23
24Value IntegerParser::parse(const QString& _v) const
25{
26 return Value(_v.toInt());
27}
28
29Value TextParser::parse(const QString& _v) const
30{
31 return Value(_v);
32}
33
34Value DateParser::parse(const QString& _v) const
35{
36 if (_v.length() <= 4) {
37 return Value(QDateTime::fromString(_v, "yyyy"));
38 } else if (_v.length() <= 7) {
39 return Value(QDateTime::fromString(_v, "yyyy-MM"));
40 } else if (_v.length() <= 10) {
41 return Value(QDateTime::fromString(_v, "yyyy-MM-dd"));
42 } else if (_v.length() <= 16) {
43 return Value(QDateTime::fromString(_v, "yyyy-MM-ddThh:mm"));
44 } else if (_v.length() <= 19) {
45 return Value(QDateTime::fromString(_v, "yyyy-MM-ddThh:mm:ss"));
46 } else {
47 return Value(QDateTime::fromString(_v));
48 }
49}
50
51Value RationalParser::parse(const QString& _v) const
52{
53 QRegExp regexp("(\\-?\\d+)/(\\d+)");
54 regexp.indexIn(_v);
55 if (regexp.capturedTexts().size() > 2)
56 return Value(Rational(regexp.capturedTexts()[1].toInt(), regexp.capturedTexts()[2].toInt()));
57 return Value();
58}
Value parse(const QString &) const override
Value parse(const QString &) const override
Value parse(const QString &) const override
Value parse(const QString &) const override