diff --git a/plugins/feature/map/mapsettings.h b/plugins/feature/map/mapsettings.h index 07bad8e1d..585609f28 100644 --- a/plugins/feature/map/mapsettings.h +++ b/plugins/feature/map/mapsettings.h @@ -26,6 +26,8 @@ #include #include +#define MAX_FILTER_DISTANCE_KM 10000 + class Serializable; struct MapSettings diff --git a/plugins/feature/map/mapsettingsdialog.cpp b/plugins/feature/map/mapsettingsdialog.cpp index 40d163973..e2d284bc3 100644 --- a/plugins/feature/map/mapsettingsdialog.cpp +++ b/plugins/feature/map/mapsettingsdialog.cpp @@ -47,9 +47,15 @@ MapItemSettingsGUI::MapItemSettingsGUI(QTableWidget *table, int row, MapSettings m_labelScale->setRange(0.01, 10.0); m_labelScale->setValue(settings->m_3DLabelScale); m_labelScale->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + m_filterDistance = new QSpinBox(table); + m_filterDistance->setRange(0, MAX_FILTER_DISTANCE_KM); + m_filterDistance->setValue(settings->m_filterDistance / 1000); + m_filterDistance->setAlignment(Qt::AlignRight | Qt::AlignVCenter); + m_filterDistance->setSpecialValueText(" "); table->setCellWidget(row, MapSettingsDialog::COL_2D_MIN_ZOOM, m_minZoom); table->setCellWidget(row, MapSettingsDialog::COL_3D_MIN_PIXELS, m_minPixels); table->setCellWidget(row, MapSettingsDialog::COL_3D_LABEL_SCALE, m_labelScale); + table->setCellWidget(row, MapSettingsDialog::COL_FILTER_DISTANCE, m_filterDistance); } MapSettingsDialog::MapSettingsDialog(MapSettings *settings, QWidget* parent) : @@ -124,12 +130,6 @@ MapSettingsDialog::MapSettingsDialog(MapSettings *settings, QWidget* parent) : item = new QTableWidgetItem(itemSettings->m_filterName); ui->mapItemSettings->setItem(row, COL_FILTER_NAME, item); - item = new QTableWidgetItem(); - if (itemSettings->m_filterDistance > 0) { - item->setText(QString::number(itemSettings->m_filterDistance / 1000)); - } - ui->mapItemSettings->setItem(row, COL_FILTER_DISTANCE, item); - ui->mapItemSettings->item(row, COL_FILTER_DISTANCE)->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); MapItemSettingsGUI *gui = new MapItemSettingsGUI(ui->mapItemSettings, row, itemSettings); m_mapItemSettingsGUIs.append(gui); @@ -266,13 +266,7 @@ void MapSettingsDialog::accept() itemSettings->m_filterName = ui->mapItemSettings->item(row, COL_FILTER_NAME)->text(); itemSettings->m_filterNameRE.setPattern(itemSettings->m_filterName); itemSettings->m_filterNameRE.optimize(); - bool ok; - int filterDistance = ui->mapItemSettings->item(row, COL_FILTER_DISTANCE)->text().toInt(&ok); - if (ok && filterDistance > 0) { - itemSettings->m_filterDistance = filterDistance * 1000; - } else { - itemSettings->m_filterDistance = 0; - } + itemSettings->m_filterDistance = gui->m_filterDistance->value() * 1000; } QDialog::accept(); diff --git a/plugins/feature/map/mapsettingsdialog.h b/plugins/feature/map/mapsettingsdialog.h index 5e86daa1d..73589cafe 100644 --- a/plugins/feature/map/mapsettingsdialog.h +++ b/plugins/feature/map/mapsettingsdialog.h @@ -47,6 +47,7 @@ public: QSpinBox *m_minZoom; QSpinBox *m_minPixels; QDoubleSpinBox *m_labelScale; + QSpinBox *m_filterDistance; }; class MapSettingsDialog : public QDialog {