Comments (2)
I added the following MACROs to solve my request
But I didn't write the test code yet
#define QS_STL_SET(set, type, name)
public:
typedef set set_##name##t;
set##name##t name## = set_##name##t();
QS_JSON_STL_SET(type, name##, name)
\
#define QS_STL_SET_OBJECTS(set, type, name)
public:
typedef set set_##name##t;
set##name##t name## = set_##name##t();
QS_JSON_STL_SET_OBJECTS(type, name##, name) \
#define QS_JSON_STL_SET(itemType, name)
Q_PROPERTY(QJsonValue name READ GET(json, name) WRITE SET(json, name))
private:
QJsonValue GET(json, name)() const {
QJsonArray val;
for (auto item : name) val.push_back(item);
return QJsonValue::fromVariant(val);
}
void SET(json, name)(const QJsonValue &varname) {
if (!varname.isArray()) return;
name.clear();
QJsonArray val = varname.toArray();
for (auto item : val) {
itemType tmp;
tmp = item.toVariant().value();
name.insert(tmp);
}
}
#define QS_JSON_STL_SET_OBJECTS(itemType, name)
Q_PROPERTY(QJsonValue name READ GET(json, name) WRITE SET(json, name))
private:
QJsonValue GET(json, name)() const {
QJsonArray val;
for (auto item : name) val.push_back(item.toJson());
return QJsonValue::fromVariant(val);
}
void SET(json, name)(const QJsonValue &varname) {
if (!varname.isArray()) return;
name.clear();
QJsonArray val = varname.toArray();
for (auto item : val) {
itemType tmp;
tmp.fromJson(item);
name.insert(tmp);
}
}
from qserializer.
Hey, you can open pull request with solve of your problem, if you have it. Probably, i don't sure that support std::set is most important feature, but if it works it is good.
from qserializer.
Related Issues (10)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qserializer.