gui: PreviewResult: Add serialization() methods for IPC

这个提交包含在:
2022-05-27 09:29:28 +02:00
父节点 ee18142e36
当前提交 3bdcb76d8e
修改 6 个文件,包含 70 行新增2 行删除

查看文件

@@ -28,3 +28,27 @@ void PreviewResultPlainText::setText(QString text)
{
this->text = text;
}
QByteArray PreviewResultPlainText::serialize() const
{
QByteArray result;
QDataStream stream{&result, QIODevice::WriteOnly};
PreviewResultType type = PreviewResultType::PlainText;
stream << type << this->documentPath << this->page << this->text;
return result;
}
QSharedPointer<PreviewResultPlainText> PreviewResultPlainText::deserialize(QByteArray &ba)
{
PreviewResultPlainText *result = new PreviewResultPlainText();
PreviewResultType type;
QDataStream stream{&ba, QIODevice::ReadOnly};
stream >> type;
if(type != PreviewResultType::PlainText)
{
throw std::runtime_error("Invalid byte array: Not a pdf preview");
}
stream >> result->documentPath >> result->page >> result->text;
return QSharedPointer<PreviewResultPlainText>(result);
}