gui: PreviewResult: Add serialization() methods for IPC
This commit is contained in:
parent
ee18142e36
commit
3bdcb76d8e
@ -1,5 +1,4 @@
|
|||||||
#include "previewresult.h"
|
#include "previewresult.h"
|
||||||
|
|
||||||
PreviewResult::PreviewResult()
|
PreviewResult::PreviewResult()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -33,3 +32,11 @@ unsigned int PreviewResult::getPage() const
|
|||||||
{
|
{
|
||||||
return this->page;
|
return this->page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QByteArray PreviewResult::serialize() const
|
||||||
|
{
|
||||||
|
QByteArray result;
|
||||||
|
QDataStream stream{&result, QIODevice::WriteOnly};
|
||||||
|
stream << 0 << this->documentPath << this->page;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
@ -2,6 +2,12 @@
|
|||||||
#define PREVIEWRESULT_H
|
#define PREVIEWRESULT_H
|
||||||
#include "clicklabel.h"
|
#include "clicklabel.h"
|
||||||
|
|
||||||
|
enum PreviewResultType
|
||||||
|
{
|
||||||
|
PDF = 1,
|
||||||
|
PlainText
|
||||||
|
};
|
||||||
|
|
||||||
class PreviewResult
|
class PreviewResult
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
@ -17,6 +23,7 @@ class PreviewResult
|
|||||||
virtual bool hasPreview();
|
virtual bool hasPreview();
|
||||||
QString getDocumentPath() const;
|
QString getDocumentPath() const;
|
||||||
unsigned int getPage() const;
|
unsigned int getPage() const;
|
||||||
|
virtual QByteArray serialize() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREVIEWRESULT_H
|
#endif // PREVIEWRESULT_H
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#include "previewresultpdf.h"
|
#include "previewresultpdf.h"
|
||||||
|
|
||||||
PreviewResultPdf::PreviewResultPdf(const PreviewResult &o)
|
PreviewResultPdf::PreviewResultPdf(const PreviewResult &o)
|
||||||
{
|
{
|
||||||
this->documentPath = o.getDocumentPath();
|
this->documentPath = o.getDocumentPath();
|
||||||
@ -19,3 +18,27 @@ bool PreviewResultPdf::hasPreview()
|
|||||||
bool result = !this->previewImage.isNull();
|
bool result = !this->previewImage.isNull();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QByteArray PreviewResultPdf::serialize() const
|
||||||
|
{
|
||||||
|
QByteArray result;
|
||||||
|
QDataStream stream{&result, QIODevice::WriteOnly};
|
||||||
|
PreviewResultType type = PreviewResultType::PDF;
|
||||||
|
stream << type << this->documentPath << this->page << this->previewImage;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSharedPointer<PreviewResultPdf> PreviewResultPdf::deserialize(QByteArray &ba)
|
||||||
|
{
|
||||||
|
PreviewResultPdf *result = new PreviewResultPdf();
|
||||||
|
PreviewResultType type;
|
||||||
|
|
||||||
|
QDataStream stream{&ba, QIODevice::ReadOnly};
|
||||||
|
stream >> type;
|
||||||
|
if(type != PreviewResultType::PDF)
|
||||||
|
{
|
||||||
|
throw std::runtime_error("Invalid byte array: Not a pdf preview");
|
||||||
|
}
|
||||||
|
stream >> result->documentPath >> result->page >> result->previewImage;
|
||||||
|
return QSharedPointer<PreviewResultPdf>(result);
|
||||||
|
}
|
||||||
|
@ -12,6 +12,10 @@ class PreviewResultPdf : public PreviewResult
|
|||||||
|
|
||||||
QWidget *createPreviewWidget() override;
|
QWidget *createPreviewWidget() override;
|
||||||
bool hasPreview() override;
|
bool hasPreview() override;
|
||||||
|
|
||||||
|
QByteArray serialize() const;
|
||||||
|
|
||||||
|
static QSharedPointer<PreviewResultPdf> deserialize(QByteArray &ba);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREVIEWRESULTPDF_H
|
#endif // PREVIEWRESULTPDF_H
|
||||||
|
@ -28,3 +28,27 @@ void PreviewResultPlainText::setText(QString text)
|
|||||||
{
|
{
|
||||||
this->text = 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);
|
||||||
|
}
|
||||||
|
@ -15,6 +15,9 @@ class PreviewResultPlainText : public PreviewResult
|
|||||||
bool hasPreview() override;
|
bool hasPreview() override;
|
||||||
|
|
||||||
void setText(QString text);
|
void setText(QString text);
|
||||||
|
|
||||||
|
QByteArray serialize() const;
|
||||||
|
static QSharedPointer<PreviewResultPlainText> deserialize(QByteArray &ba);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREVIEWRESULTPLAINTEXT_H
|
#endif // PREVIEWRESULTPLAINTEXT_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user