summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-02-15 16:21:06 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-02-16 10:39:59 +0100
commitf7a42de9bfd6e34f1dc46da433d3f45976b1cd0e (patch)
tree421899ff287eb44459587aee6549ff098ab564fd /common
parent73ef798bf849a01418895c2e88300e1c6730b665 (diff)
downloadsink-f7a42de9bfd6e34f1dc46da433d3f45976b1cd0e.tar.gz
sink-f7a42de9bfd6e34f1dc46da433d3f45976b1cd0e.zip
PropertyParser to properly parse different property types.
Diffstat (limited to 'common')
-rw-r--r--common/CMakeLists.txt2
-rw-r--r--common/domain/applicationdomaintype.cpp1
-rw-r--r--common/propertyparser.cpp29
-rw-r--r--common/propertyparser.h33
4 files changed, 65 insertions, 0 deletions
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 92da470..ec437ed 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -60,6 +60,7 @@ set(command_SRCS
60 resourceconfig.cpp 60 resourceconfig.cpp
61 configstore.cpp 61 configstore.cpp
62 resultset.cpp 62 resultset.cpp
63 domain/propertyregistry.cpp
63 domain/applicationdomaintype.cpp 64 domain/applicationdomaintype.cpp
64 domain/contact.cpp 65 domain/contact.cpp
65 domain/event.cpp 66 domain/event.cpp
@@ -81,6 +82,7 @@ set(command_SRCS
81 notification.cpp 82 notification.cpp
82 commandprocessor.cpp 83 commandprocessor.cpp
83 inspector.cpp 84 inspector.cpp
85 propertyparser.cpp
84 ${storage_SRCS}) 86 ${storage_SRCS})
85 87
86add_library(${PROJECT_NAME} SHARED ${command_SRCS}) 88add_library(${PROJECT_NAME} SHARED ${command_SRCS})
diff --git a/common/domain/applicationdomaintype.cpp b/common/domain/applicationdomaintype.cpp
index 4bd17fe..49bfb5f 100644
--- a/common/domain/applicationdomaintype.cpp
+++ b/common/domain/applicationdomaintype.cpp
@@ -62,6 +62,7 @@ SINK_REGISTER_PROPERTY(Folder, Name);
62SINK_REGISTER_PROPERTY(Folder, Icon); 62SINK_REGISTER_PROPERTY(Folder, Icon);
63SINK_REGISTER_PROPERTY(Folder, SpecialPurpose); 63SINK_REGISTER_PROPERTY(Folder, SpecialPurpose);
64SINK_REGISTER_PROPERTY(Folder, Enabled); 64SINK_REGISTER_PROPERTY(Folder, Enabled);
65SINK_REGISTER_PROPERTY(Folder, Parent);
65 66
66static const int foo = [] { 67static const int foo = [] {
67 QMetaType::registerEqualsComparator<Reference>(); 68 QMetaType::registerEqualsComparator<Reference>();
diff --git a/common/propertyparser.cpp b/common/propertyparser.cpp
new file mode 100644
index 0000000..c638594
--- /dev/null
+++ b/common/propertyparser.cpp
@@ -0,0 +1,29 @@
1/*
2 * Copyright (C) 2017 Christian Mollekopf <chrigi_1@fastmail.fm>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 */
20#include "propertyparser.h"
21
22#include "domain/propertyregistry.h"
23
24using namespace Sink;
25
26QVariant PropertyParser::parse(const QByteArray &type, const QByteArray &property, const QString &value)
27{
28 return Private::PropertyRegistry::instance().parse(type, property, value);
29}
diff --git a/common/propertyparser.h b/common/propertyparser.h
new file mode 100644
index 0000000..f5bda85
--- /dev/null
+++ b/common/propertyparser.h
@@ -0,0 +1,33 @@
1/*
2 * Copyright (C) 2017 Christian Mollekopf <chrigi_1@fastmail.fm>
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) version 3, or any
8 * later version accepted by the membership of KDE e.V. (or its
9 * successor approved by the membership of KDE e.V.), which shall
10 * act as a proxy defined in Section 6 of version 3 of the license.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 */
20#pragma once
21
22#include "sink_export.h"
23#include <QVariant>
24
25namespace Sink {
26
27class SINK_EXPORT PropertyParser {
28public:
29 static QVariant parse(const QByteArray &type, const QByteArray &property, const QString &value);
30};
31
32}
33