Only display the "Map Display" columns for the number of maps configured in settings

This commit is contained in:
Dan Paulat 2023-11-05 21:07:17 -06:00
parent ed8574d618
commit 1c5199dbfd

View file

@ -2,6 +2,7 @@
#include "ui_layer_dialog.h" #include "ui_layer_dialog.h"
#include <scwx/qt/model/layer_model.hpp> #include <scwx/qt/model/layer_model.hpp>
#include <scwx/qt/settings/general_settings.hpp>
#include <scwx/util/logger.hpp> #include <scwx/util/logger.hpp>
#include <QPushButton> #include <QPushButton>
@ -33,6 +34,7 @@ public:
~LayerDialogImpl() = default; ~LayerDialogImpl() = default;
void ConnectSignals(); void ConnectSignals();
void UpdateMapDisplayColumns();
void UpdateMoveButtonsEnabled(); void UpdateMoveButtonsEnabled();
std::vector<int> GetSelectedRows(); std::vector<int> GetSelectedRows();
@ -73,6 +75,8 @@ LayerDialog::LayerDialog(QWidget* parent) :
ui->moveDownButton->setEnabled(false); ui->moveDownButton->setEnabled(false);
ui->moveBottomButton->setEnabled(false); ui->moveBottomButton->setEnabled(false);
p->UpdateMapDisplayColumns();
p->ConnectSignals(); p->ConnectSignals();
} }
@ -81,6 +85,25 @@ LayerDialog::~LayerDialog()
delete ui; 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<int>(gridWidth * gridHeight);
int displayMap1Column =
static_cast<int>(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() void LayerDialogImpl::ConnectSignals()
{ {
QObject::connect( QObject::connect(