diff --git a/pglab/ParamListJson.cpp b/pglab/ParamListJson.cpp new file mode 100644 index 0000000..ce1b462 --- /dev/null +++ b/pglab/ParamListJson.cpp @@ -0,0 +1,38 @@ +#include "ParamListJson.h" +#include "ParamListModel.h" + +Json::Value ParamToJson(const Param ¶m) +{ + Json::Value v; + v["type"] = (int)param.type.toUtf8().data(); + v["value"] = param.value.toUtf8().data(); + return v; +} + +Param ParamFromJson(const Json::Value &json) +{ + Param p; + + return p; +} + +Json::Value ParamListModelToJson(const t_ParamList &list) +{ + Json::Value root; + for (const auto ¶m : list) { + root.append(ParamToJson(param)); + } + return root; +} + +t_ParamList ParamListModelFromJson(const Json::Value &json) +{ + t_ParamList result; + if (json.isArray()) { + result.reserve(json.size()); + for (auto &e : json) { + result.push_back(ParamFromJson(e)); + } + } + return result; +} diff --git a/pglab/ParamListJson.h b/pglab/ParamListJson.h new file mode 100644 index 0000000..c1140b4 --- /dev/null +++ b/pglab/ParamListJson.h @@ -0,0 +1,10 @@ +#ifndef PARAMLISTJSON_H +#define PARAMLISTJSON_H + +#include "json/json.h" + +class ParamListModel; + +Json::Value ParamListModelToJson(const t_ParamList &list); + +#endif // PARAMLISTJSON_H diff --git a/pglab/pglab.pro b/pglab/pglab.pro index ee14146..1ae17f6 100644 --- a/pglab/pglab.pro +++ b/pglab/pglab.pro @@ -69,7 +69,8 @@ PgDatabaseCatalogue.cpp \ CodeBuilderConfiguration.cpp \ ResultTableModelUtil.cpp \ BaseTableModel.cpp \ - QueryParamListController.cpp + QueryParamListController.cpp \ + ParamListJson.cpp HEADERS += \ QueryResultModel.h \ @@ -113,7 +114,8 @@ PgDatabaseCatalogue.h \ CodeBuilderConfiguration.h \ ResultTableModelUtil.h \ BaseTableModel.h \ - QueryParamListController.h + QueryParamListController.h \ + ParamListJson.h FORMS += mainwindow.ui \ DatabaseWindow.ui \