From 22fe7f2963f5f70af4be64314f85a59cbf43a593 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 19 Sep 2023 14:21:36 -0400 Subject: [PATCH] Use spin boxes for border metatile settings if using default size --- .../settings-and-options/new-map-defaults.png | Bin 41836 -> 42525 bytes docsrc/manual/settings-and-options.rst | 6 +- forms/projectsettingseditor.ui | 205 ++++++++++++------ include/config.h | 1 - include/core/metatile.h | 10 +- include/ui/projectsettingseditor.h | 4 + include/ui/uintspinbox.h | 2 +- src/config.cpp | 10 +- src/project.cpp | 4 - src/ui/projectsettingseditor.cpp | 64 +++++- 10 files changed, 210 insertions(+), 96 deletions(-) diff --git a/docsrc/manual/images/settings-and-options/new-map-defaults.png b/docsrc/manual/images/settings-and-options/new-map-defaults.png index 776984d1df0fc298022df307c224f59a4d7246c8..50b557f7702a58f7a7b25a210bb098e4bbef593a 100644 GIT binary patch literal 42525 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 kHdgtE&I&;yf&_P$m)tYYH8WT8 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 Map Defaults - - - - A comma-separated list of metatile values that will be used to fill new map borders - - - - - - - Elevation - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Whether a separate text.inc or text.pory file will be created for new maps, alongside the scripts file - - - Create separate text file - - - - - - The default elevation that will be used to fill new maps - - - - - - - Fill Metatile - - - - - - - Border Metatiles - - - - The default metatile value that will be used to fill new maps @@ -165,18 +107,145 @@ - - - - Qt::Horizontal + + + + Elevation - - - 40 - 20 - + + + + + + The default elevation that will be used to fill new maps - + + + + + + Fill Metatile + + + + + + + Whether a separate text.inc or text.pory file will be created for new maps, alongside the scripts file + + + Create separate text file + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Border Metatiles + + + + + + + A comma-separated list of metatile values that will be used to fill new map borders + + + + + + + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Border Metatiles + + + + + + + The default metatile value that will be used for the top-left border metatile on new maps. + + + 0x + + + 16 + + + + + + + The default metatile value that will be used for the top-right border metatile on new maps. + + + 0x + + + 16 + + + + + + + The default metatile value that will be used for the bottom-left border metatile on new maps. + + + 0x + + + 16 + + + + + + + The default metatile value that will be used for the bottom-right border metatile on new maps. + + + 0x + + + 16 + + + + + diff --git a/include/config.h b/include/config.h index 96086749..7f10ce91 100644 --- a/include/config.h +++ b/include/config.h @@ -267,7 +267,6 @@ public: int getNewMapElevation(); void setNewMapBorderMetatileIds(QList metatileIds); QList getNewMapBorderMetatileIds(); - QString getNewMapBorderMetatileIdsString(); QString getDefaultPrimaryTileset(); QString getDefaultSecondaryTileset(); void setDefaultPrimaryTileset(QString tilesetName); diff --git a/include/core/metatile.h b/include/core/metatile.h index c3bda046..ed1f84ee 100644 --- a/include/core/metatile.h +++ b/include/core/metatile.h @@ -93,7 +93,15 @@ public: static QPoint coordFromPixmapCoord(const QPointF &pixelCoord); static int getDefaultAttributesSize(BaseGameVersion version); static void setCustomLayout(Project*); - static QString getMetatileIdString(uint16_t metatileId) { return "0x" + QString("%1").arg(metatileId, 3, 16, QChar('0')).toUpper(); }; + static QString getMetatileIdString(uint16_t metatileId) { + return "0x" + QString("%1").arg(metatileId, 3, 16, QChar('0')).toUpper(); + }; + static QString getMetatileIdStringList(const QList metatileIds) { + QStringList metatiles; + for (auto metatileId : metatileIds) + metatiles << Metatile::getMetatileIdString(metatileId); + return metatiles.join(","); + }; private: // Stores how each attribute should be laid out for all metatiles, according to the user's config diff --git a/include/ui/projectsettingseditor.h b/include/ui/projectsettingseditor.h index 5ba85813..3bd4d921 100644 --- a/include/ui/projectsettingseditor.h +++ b/include/ui/projectsettingseditor.h @@ -42,6 +42,10 @@ private: bool promptSaveChanges(); bool promptRestoreDefaults(); + void setBorderMetatilesUi(bool customSize); + void setBorderMetatileIds(bool customSize, QList metatileIds); + QList getBorderMetatileIds(bool customSize); + void createProjectPathsTable(); QString chooseProjectFile(const QString &defaultFilepath); diff --git a/include/ui/uintspinbox.h b/include/ui/uintspinbox.h index b561e219..dc08c9eb 100644 --- a/include/ui/uintspinbox.h +++ b/include/ui/uintspinbox.h @@ -64,4 +64,4 @@ signals: void textChanged(const QString &text); }; -#endif // UINTSPINBOX_H \ No newline at end of file +#endif // UINTSPINBOX_H diff --git a/src/config.cpp b/src/config.cpp index 8c51de9f..681dc3f9 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -735,7 +735,7 @@ QMap ProjectConfig::getKeyValueMap() { map.insert("enable_triple_layer_metatiles", QString::number(this->enableTripleLayerMetatiles)); map.insert("new_map_metatile", Metatile::getMetatileIdString(this->newMapMetatileId)); map.insert("new_map_elevation", QString::number(this->newMapElevation)); - map.insert("new_map_border_metatiles", this->getNewMapBorderMetatileIdsString()); + map.insert("new_map_border_metatiles", Metatile::getMetatileIdStringList(this->newMapBorderMetatileIds)); map.insert("default_primary_tileset", this->defaultPrimaryTileset); map.insert("default_secondary_tileset", this->defaultSecondaryTileset); map.insert("prefabs_filepath", this->prefabFilepath); @@ -983,14 +983,6 @@ QList ProjectConfig::getNewMapBorderMetatileIds() { return this->newMapBorderMetatileIds; } -QString ProjectConfig::getNewMapBorderMetatileIdsString() { - QStringList metatiles; - for (auto metatileId : this->newMapBorderMetatileIds){ - metatiles << Metatile::getMetatileIdString(metatileId); - } - return metatiles.join(","); -} - QString ProjectConfig::getDefaultPrimaryTileset() { return this->defaultPrimaryTileset; } diff --git a/src/project.cpp b/src/project.cpp index 66e5aba8..588d0ee4 100644 --- a/src/project.cpp +++ b/src/project.cpp @@ -444,10 +444,6 @@ bool Project::readMapLayouts() { "blockdata_filepath", }; bool useCustomBorderSize = projectConfig.getUseCustomBorderSize(); - if (useCustomBorderSize) { - requiredFields.append("border_width"); - requiredFields.append("border_height"); - } for (int i = 0; i < layouts.size(); i++) { QJsonObject layoutObj = layouts[i].toObject(); if (layoutObj.isEmpty()) diff --git a/src/ui/projectsettingseditor.cpp b/src/ui/projectsettingseditor.cpp index 3afc77d1..45f79579 100644 --- a/src/ui/projectsettingseditor.cpp +++ b/src/ui/projectsettingseditor.cpp @@ -37,6 +37,13 @@ void ProjectSettingsEditor::connectSignals() { connect(ui->button_ImportDefaultPrefabs, &QAbstractButton::clicked, this, &ProjectSettingsEditor::importDefaultPrefabsClicked); connect(ui->comboBox_BaseGameVersion, &QComboBox::currentTextChanged, this, &ProjectSettingsEditor::promptRestoreDefaults); connect(ui->comboBox_AttributesSize, &QComboBox::currentTextChanged, this, &ProjectSettingsEditor::updateAttributeLimits); + connect(ui->checkBox_EnableCustomBorderSize, &QCheckBox::stateChanged, [this](int state) { + bool customSize = (state == Qt::Checked); + // When switching between the spin boxes or line edit for border metatiles we set + // the newly-shown UI using the values from the hidden UI. + this->setBorderMetatileIds(customSize, this->getBorderMetatileIds(!customSize)); + this->setBorderMetatilesUi(customSize); + }); // Record that there are unsaved changes if any of the settings are modified for (auto combo : ui->centralwidget->findChildren()) @@ -69,9 +76,49 @@ void ProjectSettingsEditor::initUi() { static const QRegularExpression expression(QString("^(%1,)*%1$").arg(regex_Hex)); // Comma-separated list of hex values QRegularExpressionValidator *validator = new QRegularExpressionValidator(expression); ui->lineEdit_BorderMetatiles->setValidator(validator); + this->setBorderMetatilesUi(projectConfig.getUseCustomBorderSize()); + int maxMetatileId = Project::getNumMetatilesTotal() - 1; + ui->spinBox_FillMetatile->setMaximum(maxMetatileId); + ui->spinBox_BorderMetatile1->setMaximum(maxMetatileId); + ui->spinBox_BorderMetatile2->setMaximum(maxMetatileId); + ui->spinBox_BorderMetatile3->setMaximum(maxMetatileId); + ui->spinBox_BorderMetatile4->setMaximum(maxMetatileId); ui->spinBox_Elevation->setMaximum(15); - ui->spinBox_FillMetatile->setMaximum(Project::getNumMetatilesTotal() - 1); +} + +void ProjectSettingsEditor::setBorderMetatilesUi(bool customSize) { + ui->widget_DefaultSizeBorderMetatiles->setVisible(!customSize); + ui->widget_CustomSizeBorderMetatiles->setVisible(customSize); +} + +void ProjectSettingsEditor::setBorderMetatileIds(bool customSize, QList metatileIds) { + if (customSize) { + ui->lineEdit_BorderMetatiles->setText(Metatile::getMetatileIdStringList(metatileIds)); + } else { + ui->spinBox_BorderMetatile1->setValue(metatileIds.value(0, 0x0)); + ui->spinBox_BorderMetatile2->setValue(metatileIds.value(1, 0x0)); + ui->spinBox_BorderMetatile3->setValue(metatileIds.value(2, 0x0)); + ui->spinBox_BorderMetatile4->setValue(metatileIds.value(3, 0x0)); + } +} + +QList ProjectSettingsEditor::getBorderMetatileIds(bool customSize) { + QList metatileIds; + if (customSize) { + // Custom border size, read metatiles from line edit + for (auto s : ui->lineEdit_BorderMetatiles->text().split(",")) { + uint16_t metatileId = s.toUInt(nullptr, 0); + metatileIds.append(qMin(metatileId, static_cast(Project::getNumMetatilesTotal() - 1))); + } + } else { + // Default border size, read metatiles from spin boxes + metatileIds.append(ui->spinBox_BorderMetatile1->value()); + metatileIds.append(ui->spinBox_BorderMetatile2->value()); + metatileIds.append(ui->spinBox_BorderMetatile3->value()); + metatileIds.append(ui->spinBox_BorderMetatile4->value()); + } + return metatileIds; } void ProjectSettingsEditor::updateAttributeLimits(const QString &attrSize) { @@ -186,8 +233,12 @@ void ProjectSettingsEditor::refresh() { ui->spinBox_LayerTypeMask->setValue(projectConfig.getMetatileLayerTypeMask()); ui->spinBox_TerrainTypeMask->setValue(projectConfig.getMetatileTerrainTypeMask()); + // Set (and sync) border metatile IDs + auto metatileIds = projectConfig.getNewMapBorderMetatileIds(); + this->setBorderMetatileIds(false, metatileIds); + this->setBorderMetatileIds(true, metatileIds); + // Set line edit texts - ui->lineEdit_BorderMetatiles->setText(projectConfig.getNewMapBorderMetatileIdsString()); ui->lineEdit_PrefabsPath->setText(projectConfig.getPrefabFilepath()); for (auto lineEdit : ui->scrollAreaContents_ProjectPaths->findChildren()) lineEdit->setText(projectConfig.getFilePath(lineEdit->objectName(), true)); @@ -230,14 +281,7 @@ void ProjectSettingsEditor::save() { projectConfig.setPrefabFilepath(ui->lineEdit_PrefabsPath->text()); for (auto lineEdit : ui->scrollAreaContents_ProjectPaths->findChildren()) projectConfig.setFilePath(lineEdit->objectName(), lineEdit->text()); - - // Parse and save border metatile list - QList metatileIds; - for (auto s : ui->lineEdit_BorderMetatiles->text().split(",")) { - uint16_t metatileId = s.toUInt(nullptr, 0); - metatileIds.append(qMin(metatileId, static_cast(Project::getNumMetatilesTotal() - 1))); - } - projectConfig.setNewMapBorderMetatileIds(metatileIds); + projectConfig.setNewMapBorderMetatileIds(this->getBorderMetatileIds(ui->checkBox_EnableCustomBorderSize->isChecked())); projectConfig.setSaveDisabled(false); projectConfig.save();