Add setFields method to JSON IO types

This commit is contained in:
Gary Talent 2017-05-13 02:22:36 -05:00
parent de35f76917
commit e4337e468b
3 changed files with 8 additions and 2 deletions

View File

@ -25,6 +25,8 @@ class JsonReader {
public: public:
JsonReader(QJsonObject &obj); JsonReader(QJsonObject &obj);
void setFields(int) {};
ox::Error op(QString fieldName, int *dest); ox::Error op(QString fieldName, int *dest);
ox::Error op(QString fieldName, bool *dest); ox::Error op(QString fieldName, bool *dest);

View File

@ -25,6 +25,8 @@ class JsonWriter {
public: public:
JsonWriter(QJsonObject &obj); JsonWriter(QJsonObject &obj);
void setFields(int) {};
ox::Error op(QString fieldName, int *src); ox::Error op(QString fieldName, int *src);
ox::Error op(QString fieldName, bool *src); ox::Error op(QString fieldName, bool *src);

View File

@ -27,13 +27,14 @@ namespace nostalgia {
namespace studio { namespace studio {
struct NostalgiaStudioState { struct NostalgiaStudioState {
QString currentProjectPath; QString projectPath;
}; };
template<typename T> template<typename T>
int ioOp(T *io, NostalgiaStudioState *obj) { int ioOp(T *io, NostalgiaStudioState *obj) {
ox::Error err = 0; ox::Error err = 0;
err |= io->op("current_project_path", &obj->currentProjectPath); io->setFields(1);
err |= io->op("project_path", &obj->projectPath);
return err; return err;
} }
@ -45,6 +46,7 @@ struct NostalgiaStudioProfile {
template<typename T> template<typename T>
int ioOp(T *io, NostalgiaStudioProfile *obj) { int ioOp(T *io, NostalgiaStudioProfile *obj) {
ox::Error err = 0; ox::Error err = 0;
io->setFields(1);
err |= io->op("app_name", &obj->appName); err |= io->op("app_name", &obj->appName);
return err; return err;
} }