-
-
Notifications
You must be signed in to change notification settings - Fork 46
Expand file tree
/
Copy pathtextconverter.cpp
More file actions
48 lines (38 loc) · 1.36 KB
/
textconverter.cpp
File metadata and controls
48 lines (38 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "converters/textconverter.h"
#include <QFile>
#include <bson.h>
#include "resources/text.h"
#define FORMAT_VERSION 1
TextConverterSettings::TextConverterSettings() {
setType(MetaType::type<Text *>());
setVersion(FORMAT_VERSION);
}
TString TextConverterSettings::defaultIconPath(const TString &) const {
return ":/Style/styles/dark/images/text.svg";
}
AssetConverter::ReturnCode TextConverter::convertFile(AssetConverterSettings *settings) {
QFile src(settings->source().data());
if(src.open(QIODevice::ReadOnly)) {
Text *text = Engine::loadResource<Text>(settings->destination().toStdString());
if(text == nullptr) {
text = Engine::objectCreate<Text>();
}
QByteArray array = src.readAll();
src.close();
if(!array.isEmpty()) {
text->setSize(array.size());
memcpy(text->data(), array.data(), array.size());
}
QFile file(settings->absoluteDestination().data());
if(file.open(QIODevice::WriteOnly)) {
ByteArray data = Bson::save( Engine::toVariant(text) );
file.write(reinterpret_cast<const char *>(data.data()), data.size());
file.close();
return Success;
}
}
return InternalError;
}
AssetConverterSettings *TextConverter::createSettings() {
return new TextConverterSettings();
}