Ported MetaDataModel to protobuf
This commit is contained in:
parent
e77990a86a
commit
56ca796df0
@ -2,9 +2,11 @@ syntax = "proto3";
|
||||
|
||||
package ESGRAF48;
|
||||
|
||||
import "MetaDataModel.proto";
|
||||
import "V2SvkModel.proto";
|
||||
|
||||
message DataModel
|
||||
{
|
||||
MetaDataModel MetaData = 1;
|
||||
V2SvkModel V2Svk = 2;
|
||||
}
|
||||
|
12
proto/MetaDataModel.proto
Normal file
12
proto/MetaDataModel.proto
Normal file
@ -0,0 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package ESGRAF48;
|
||||
|
||||
message MetaDataModel
|
||||
{
|
||||
string ParticipantName = 1;
|
||||
string InstructorName = 2;
|
||||
string DateOfBirth = 3;
|
||||
string DateOfTest = 4;
|
||||
string Remarks = 5;
|
||||
}
|
@ -19,6 +19,7 @@ qt5_add_resources(LOGO_TEST_QRC
|
||||
|
||||
set(DataModel_PROTO_FILES
|
||||
../proto/DataModel.proto
|
||||
../proto/MetaDataModel.proto
|
||||
../proto/V2SvkModel.proto
|
||||
)
|
||||
|
||||
|
@ -3,8 +3,6 @@
|
||||
#include "DataModel.pb.h"
|
||||
#include <QDebug>
|
||||
|
||||
#include <google/protobuf/text_format.h>
|
||||
|
||||
#include <sstream>
|
||||
|
||||
DataModel::DataModel(QObject *parent)
|
||||
@ -60,8 +58,10 @@ void DataModel::read(const QJsonObject &source)
|
||||
void DataModel::writeProtoBuf(std::ostream &outStream) const
|
||||
{
|
||||
ESGRAF48::DataModel dataModel;
|
||||
//m_metaData.writeProtoBuf(dataModel.mutable_metadata);
|
||||
|
||||
m_metaData.writeProtoBuf(*dataModel.mutable_metadata());
|
||||
m_v2Svk.writeProtoBuf(*dataModel.mutable_v2svk());
|
||||
|
||||
dataModel.SerializeToOstream(&outStream);
|
||||
}
|
||||
|
||||
@ -70,6 +70,7 @@ void DataModel::readProtoBuf(std::istream &inStream)
|
||||
ESGRAF48::DataModel dataModel;
|
||||
dataModel.ParseFromIstream(&inStream);
|
||||
|
||||
m_metaData.readProtoBuf(dataModel.metadata());
|
||||
m_v2Svk.readProtoBuf(dataModel.v2svk());
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.6)
|
||||
project(MetaData LANGUAGES CXX)
|
||||
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Protobuf REQUIRED)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
@ -10,10 +11,20 @@ qt5_wrap_ui(META_DATA_UI
|
||||
MetaDataWidget.ui
|
||||
)
|
||||
|
||||
set(MetaDataModel_PROTO_FILES
|
||||
../../proto/MetaDataModel.proto
|
||||
)
|
||||
|
||||
protobuf_generate_cpp(MetaDataModel_PROTO_SRCS MetaDataModel_PROTO_HDRS
|
||||
${MetaDataModel_PROTO_FILES}
|
||||
)
|
||||
|
||||
add_library(${PROJECT_NAME}
|
||||
MetaDataModel.cpp
|
||||
MetaDataWidget.cpp
|
||||
${META_DATA_UI}
|
||||
${MetaDataModel_PROTO_SRCS}
|
||||
${MetaDataModel_PROTO_HDRS}
|
||||
)
|
||||
|
||||
set_target_properties(${PROJECT_NAME}
|
||||
@ -23,6 +34,7 @@ set_target_properties(${PROJECT_NAME}
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${Protobuf_INCLUDE_DIRS}
|
||||
INTERFACE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
@ -30,4 +42,5 @@ target_include_directories(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME}
|
||||
PRIVATE
|
||||
Qt5::Widgets
|
||||
${Protobuf_LIBRARIES}
|
||||
)
|
||||
|
@ -130,9 +130,23 @@ void MetaDataModel::read(const QJsonObject &json)
|
||||
setData(index(0, 4), json["remarks"].toVariant(), Qt::EditRole);
|
||||
}
|
||||
|
||||
//void MetaDataModel::writeProtoBuf(ESGRAF48::MetaDataModel &model) const
|
||||
//{
|
||||
//}
|
||||
void MetaDataModel::readProtoBuf(const ESGRAF48::MetaDataModel &model)
|
||||
{
|
||||
setData(index(0, 0), QString::fromStdString(model.participantname()));
|
||||
setData(index(0, 1), QString::fromStdString(model.instructorname()));
|
||||
setData(index(0, 2), QString::fromStdString(model.dateofbirth()));
|
||||
setData(index(0, 3), QString::fromStdString(model.dateoftest()));
|
||||
setData(index(0, 4), QString::fromStdString(model.remarks()));
|
||||
}
|
||||
|
||||
void MetaDataModel::writeProtoBuf(ESGRAF48::MetaDataModel &model) const
|
||||
{
|
||||
model.set_participantname(m_participant.toStdString());
|
||||
model.set_instructorname(m_instructor.toStdString());
|
||||
model.set_dateofbirth(m_dateOfBirth.toString(Qt::ISODate).toStdString());
|
||||
model.set_dateoftest(m_dateOfTest.toString(Qt::ISODate).toStdString());
|
||||
model.set_remarks(m_remarks.toStdString());
|
||||
}
|
||||
|
||||
std::string MetaDataModel::toHtml() const
|
||||
{
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
#include "../Age.h"
|
||||
|
||||
#include "MetaDataModel.pb.h"
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QString>
|
||||
#include <QDate>
|
||||
@ -31,6 +33,9 @@ public:
|
||||
void write(QJsonObject &json) const;
|
||||
void read(const QJsonObject &json);
|
||||
|
||||
void readProtoBuf(const ESGRAF48::MetaDataModel &model);
|
||||
void writeProtoBuf(ESGRAF48::MetaDataModel &model) const;
|
||||
|
||||
std::string toHtml() const;
|
||||
|
||||
Age getAge() const
|
||||
|
Reference in New Issue
Block a user