diff --git a/scwx-qt/source/scwx/qt/ui/layer_dialog.cpp b/scwx-qt/source/scwx/qt/ui/layer_dialog.cpp index 828a6b48..3eec56f1 100644 --- a/scwx-qt/source/scwx/qt/ui/layer_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/layer_dialog.cpp @@ -2,6 +2,7 @@ #include "ui_layer_dialog.h" #include +#include #include #include @@ -33,6 +34,7 @@ public: ~LayerDialogImpl() = default; void ConnectSignals(); + void UpdateMapDisplayColumns(); void UpdateMoveButtonsEnabled(); std::vector GetSelectedRows(); @@ -73,6 +75,8 @@ LayerDialog::LayerDialog(QWidget* parent) : ui->moveDownButton->setEnabled(false); ui->moveBottomButton->setEnabled(false); + p->UpdateMapDisplayColumns(); + p->ConnectSignals(); } @@ -81,6 +85,25 @@ LayerDialog::~LayerDialog() delete ui; } +void LayerDialogImpl::UpdateMapDisplayColumns() +{ + auto& generalSettings = settings::GeneralSettings::Instance(); + std::int64_t gridWidth = generalSettings.grid_width().GetValue(); + std::int64_t gridHeight = generalSettings.grid_height().GetValue(); + int mapCount = static_cast(gridWidth * gridHeight); + + int displayMap1Column = + static_cast(model::LayerModel::Column::DisplayMap1); + + // For each 0-based map index, 1-3 (excluding 0, always displayed) + for (int mapIndex = 1; mapIndex < 4; ++mapIndex) + { + const int column = displayMap1Column + mapIndex; + const bool hide = mapIndex >= mapCount; + self_->ui->layerTreeView->setColumnHidden(column, hide); + } +} + void LayerDialogImpl::ConnectSignals() { QObject::connect(