diff --git a/mapeditor/inspector/inspector.cpp b/mapeditor/inspector/inspector.cpp index 8acaa91ae..35d2d6407 100644 --- a/mapeditor/inspector/inspector.cpp +++ b/mapeditor/inspector/inspector.cpp @@ -531,7 +531,7 @@ void Inspector::setProperty(CGPandoraBox * o, const QString & key, const QVarian if(!o) return; if(key == "Message") - o->message = value.toString().toStdString(); + o->message.appendRawString(value.toString().toStdString()); } void Inspector::setProperty(CGEvent * o, const QString & key, const QVariant & value) @@ -561,7 +561,7 @@ void Inspector::setProperty(CGSignBottle * o, const QString & key, const QVarian if(!o) return; if(key == "Message") - o->message = value.toString().toStdString(); + o->message.appendRawString(value.toString().toStdString()); } void Inspector::setProperty(CGMine * o, const QString & key, const QVariant & value) @@ -577,7 +577,7 @@ void Inspector::setProperty(CGArtifact * o, const QString & key, const QVariant if(!o) return; if(key == "Message") - o->message = value.toString().toStdString(); + o->message.appendRawString(value.toString().toStdString()); if(o->storedArtifact && key == "Spell") { @@ -643,7 +643,7 @@ void Inspector::setProperty(CGCreature * o, const QString & key, const QVariant if(!o) return; if(key == "Message") - o->message = value.toString().toStdString(); + o->message.appendRawString(value.toString().toStdString()); if(key == "Character") o->character = CGCreature::Character(value.toInt()); if(key == "Never flees") @@ -661,11 +661,11 @@ void Inspector::setProperty(CGSeerHut * o, const QString & key, const QVariant & if(key == "Mission type") o->quest->missionType = CQuest::Emission(value.toInt()); if(key == "First visit text") - o->quest->firstVisitText = value.toString().toStdString(); + o->quest->firstVisitText.appendRawString(value.toString().toStdString()); if(key == "Next visit text") - o->quest->nextVisitText = value.toString().toStdString(); + o->quest->nextVisitText.appendRawString(value.toString().toStdString()); if(key == "Completed text") - o->quest->completedText = value.toString().toStdString(); + o->quest->completedText.appendRawString(value.toString().toStdString()); } @@ -713,6 +713,11 @@ QTableWidgetItem * Inspector::addProperty(const std::string & value) return addProperty(QString::fromStdString(value)); } +QTableWidgetItem * Inspector::addProperty(const MetaString & value) +{ + return addProperty(value.toString()); +} + QTableWidgetItem * Inspector::addProperty(const QString & value) { auto * item = new QTableWidgetItem(value); diff --git a/mapeditor/inspector/inspector.h b/mapeditor/inspector/inspector.h index 1e44964ca..e6409d190 100644 --- a/mapeditor/inspector/inspector.h +++ b/mapeditor/inspector/inspector.h @@ -19,6 +19,7 @@ #include "../lib/mapObjects/MapObjects.h" #include "../lib/mapObjects/CRewardableObject.h" #include "../lib/ResourceSet.h" +#include "../lib/MetaString.h" #define DECLARE_OBJ_TYPE(x) void initialize(x*); #define DECLARE_OBJ_PROPERTY_METHODS(x) \ @@ -83,6 +84,7 @@ protected: //===============DECLARE PROPERTY VALUE TYPE============================== QTableWidgetItem * addProperty(unsigned int value); QTableWidgetItem * addProperty(int value); + QTableWidgetItem * addProperty(const MetaString & value); QTableWidgetItem * addProperty(const std::string & value); QTableWidgetItem * addProperty(const QString & value); QTableWidgetItem * addProperty(const int3 & value); diff --git a/mapeditor/mapsettings/eventsettings.cpp b/mapeditor/mapsettings/eventsettings.cpp index 6892d2903..047c9e1ae 100644 --- a/mapeditor/mapsettings/eventsettings.cpp +++ b/mapeditor/mapsettings/eventsettings.cpp @@ -37,7 +37,7 @@ QVariant toVariant(const CMapEvent & event) { QVariantMap result; result["name"] = QString::fromStdString(event.name); - result["message"] = QString::fromStdString(event.message); + result["message"] = QString::fromStdString(event.message.toString()); result["players"] = QVariant::fromValue(event.players); result["humanAffected"] = QVariant::fromValue(event.humanAffected); result["computerAffected"] = QVariant::fromValue(event.computerAffected); @@ -52,7 +52,7 @@ CMapEvent eventFromVariant(const QVariant & variant) CMapEvent result; auto v = variant.toMap(); result.name = v.value("name").toString().toStdString(); - result.message = v.value("message").toString().toStdString(); + result.message.appendRawString(v.value("message").toString().toStdString()); result.players = v.value("players").toInt(); result.humanAffected = v.value("humanAffected").toInt(); result.computerAffected = v.value("computerAffected").toInt(); diff --git a/mapeditor/mapsettings/generalsettings.cpp b/mapeditor/mapsettings/generalsettings.cpp index 09ad221b3..12322f73b 100644 --- a/mapeditor/mapsettings/generalsettings.cpp +++ b/mapeditor/mapsettings/generalsettings.cpp @@ -27,8 +27,8 @@ GeneralSettings::~GeneralSettings() void GeneralSettings::initialize(MapController & c) { AbstractSettings::initialize(c); - ui->mapNameEdit->setText(tr(controller->map()->name.c_str())); - ui->mapDescriptionEdit->setPlainText(tr(controller->map()->description.c_str())); + ui->mapNameEdit->setText(QString::fromStdString(controller->map()->name.toString())); + ui->mapDescriptionEdit->setPlainText(QString::fromStdString(controller->map()->description.toString())); ui->heroLevelLimit->setValue(controller->map()->levelLimit); ui->heroLevelLimitCheck->setChecked(controller->map()->levelLimit); @@ -59,8 +59,8 @@ void GeneralSettings::initialize(MapController & c) void GeneralSettings::update() { - controller->map()->name = ui->mapNameEdit->text().toStdString(); - controller->map()->description = ui->mapDescriptionEdit->toPlainText().toStdString(); + controller->map()->name.appendRawString(ui->mapNameEdit->text().toStdString()); + controller->map()->description.appendRawString(ui->mapDescriptionEdit->toPlainText().toStdString()); if(ui->heroLevelLimitCheck->isChecked()) controller->map()->levelLimit = ui->heroLevelLimit->value(); else diff --git a/mapeditor/mapsettings/rumorsettings.cpp b/mapeditor/mapsettings/rumorsettings.cpp index a91691539..da122be93 100644 --- a/mapeditor/mapsettings/rumorsettings.cpp +++ b/mapeditor/mapsettings/rumorsettings.cpp @@ -30,7 +30,7 @@ void RumorSettings::initialize(MapController & c) for(auto & rumor : controller->map()->rumors) { auto * item = new QListWidgetItem(QString::fromStdString(rumor.name)); - item->setData(Qt::UserRole, QVariant(QString::fromStdString(rumor.text))); + item->setData(Qt::UserRole, QVariant(QString::fromStdString(rumor.text.toString()))); item->setFlags(item->flags() | Qt::ItemIsEditable); ui->rumors->addItem(item); } @@ -43,7 +43,7 @@ void RumorSettings::update() { Rumor rumor; rumor.name = ui->rumors->item(i)->text().toStdString(); - rumor.text = ui->rumors->item(i)->data(Qt::UserRole).toString().toStdString(); + rumor.text.appendRawString(ui->rumors->item(i)->data(Qt::UserRole).toString().toStdString()); controller->map()->rumors.push_back(rumor); } }