Display custom header values according to type

This commit is contained in:
GriffinR 2022-10-15 03:22:51 -04:00
parent 6ffcb58e5e
commit ec626a59a7
4 changed files with 23 additions and 5 deletions

View file

@ -53,7 +53,7 @@ public:
QString battle_scene; QString battle_scene;
QString sharedEventsMap = ""; QString sharedEventsMap = "";
QString sharedScriptsMap = ""; QString sharedScriptsMap = "";
QMap<QString, QString> customHeaders; QMap<QString, QJsonValue> customHeaders;
MapLayout *layout; MapLayout *layout;
bool isPersistedToFile = true; bool isPersistedToFile = true;
bool hasUnsavedDataChanges = false; bool hasUnsavedDataChanges = false;

View file

@ -1958,7 +1958,7 @@ void Editor::updateCustomMapHeaderValues(QTableWidget *table)
if (value) valueStr = value->text(); if (value) valueStr = value->text();
fields[keyStr] = valueStr; fields[keyStr] = valueStr;
} }
map->customHeaders = fields; //map->customHeaders = fields;
emit editedMapData(); emit editedMapData();
} }

View file

@ -803,11 +803,29 @@ void MainWindow::displayMapProperties() {
ui->tableWidget_CustomHeaderFields->blockSignals(true); ui->tableWidget_CustomHeaderFields->blockSignals(true);
ui->tableWidget_CustomHeaderFields->setRowCount(0); ui->tableWidget_CustomHeaderFields->setRowCount(0);
for (auto it = map->customHeaders.begin(); it != map->customHeaders.end(); it++) { for (auto it = map->customHeaders.begin(); it != map->customHeaders.end(); it++) {
QTableWidgetItem * tableItem;
QJsonValue value = it.value();
switch (value.type())
{
case QJsonValue::String:
case QJsonValue::Double:
tableItem = new QTableWidgetItem(ParseUtil::jsonToQString(value));
break;
case QJsonValue::Bool:
tableItem = new QTableWidgetItem("");
tableItem->setCheckState(value.toBool() ? Qt::Checked : Qt::Unchecked);
break;
default:
tableItem = new QTableWidgetItem("This value cannot be edited from this table");
tableItem->setFlags(Qt::NoItemFlags);
break;
}
int rowIndex = ui->tableWidget_CustomHeaderFields->rowCount(); int rowIndex = ui->tableWidget_CustomHeaderFields->rowCount();
ui->tableWidget_CustomHeaderFields->insertRow(rowIndex); ui->tableWidget_CustomHeaderFields->insertRow(rowIndex);
ui->tableWidget_CustomHeaderFields->setItem(rowIndex, 0, new QTableWidgetItem(it.key())); ui->tableWidget_CustomHeaderFields->setItem(rowIndex, 0, new QTableWidgetItem(it.key()));
ui->tableWidget_CustomHeaderFields->setItem(rowIndex, 1, new QTableWidgetItem(it.value())); ui->tableWidget_CustomHeaderFields->setItem(rowIndex, 1, tableItem);
} }
ui->tableWidget_CustomHeaderFields->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableWidget_CustomHeaderFields->blockSignals(false); ui->tableWidget_CustomHeaderFields->blockSignals(false);
} }

View file

@ -412,7 +412,7 @@ bool Project::loadMapData(Map* map) {
QSet<QString> baseFields = this->getTopLevelMapFields(); QSet<QString> baseFields = this->getTopLevelMapFields();
for (QString key : mapObj.keys()) { for (QString key : mapObj.keys()) {
if (!baseFields.contains(key)) { if (!baseFields.contains(key)) {
map->customHeaders.insert(key, ParseUtil::jsonToQString(mapObj[key])); map->customHeaders.insert(key, mapObj[key]);
} }
} }
@ -1440,7 +1440,7 @@ void Project::saveMap(Map *map) {
// Custom header fields. // Custom header fields.
for (QString key : map->customHeaders.keys()) { for (QString key : map->customHeaders.keys()) {
mapObj[key] = map->customHeaders[key]; //mapObj[key] = map->customHeaders[key];
} }
OrderedJson mapJson(mapObj); OrderedJson mapJson(mapObj);