diff options
author | Mikhail Gorbushin <m.gorbushin@corp.mail.ru> | 2019-06-12 20:54:27 +0300 |
---|---|---|
committer | mpimenov <mpimenov@users.noreply.github.com> | 2019-06-17 16:40:55 +0300 |
commit | 4025f9f9f16c216983f08b1854f918bcb539efa8 (patch) | |
tree | 3335051fc3f0eb1523931fcc5e93e6200886523f /qt/mwms_borders_selection.cpp | |
parent | 64e4c4ebe7d18474381f852452dc25f7f3487e1f (diff) |
[qt] add option - draw borders from packed_polygon.bin
Diffstat (limited to 'qt/mwms_borders_selection.cpp')
-rw-r--r-- | qt/mwms_borders_selection.cpp | 93 |
1 files changed, 74 insertions, 19 deletions
diff --git a/qt/mwms_borders_selection.cpp b/qt/mwms_borders_selection.cpp index 714327cc9e..280e924cf6 100644 --- a/qt/mwms_borders_selection.cpp +++ b/qt/mwms_borders_selection.cpp @@ -5,50 +5,105 @@ #include <QtWidgets/QDialogButtonBox> #include <QtWidgets/QRadioButton> #include <QtWidgets/QVBoxLayout> +#include <QtWidgets/QSplitter> namespace qt { MwmsBordersSelection::MwmsBordersSelection(QWidget * parent) - : QDialog(parent), - m_form(this) + : QDialog(parent) { setWindowTitle("Mwms borders selection settings"); - m_radioWithPoints = new QRadioButton(tr("Show borders with points.")); - m_radioJustBorders = new QRadioButton(tr("Show just borders.")); - - m_radioJustBorders->setChecked(true); - - auto * vbox = new QVBoxLayout; - vbox->addWidget(m_radioWithPoints); - vbox->addWidget(m_radioJustBorders); + auto * grid = new QGridLayout; + grid->addWidget(CreateSourceChoosingGroup(), 0, 0); + grid->addWidget(CreateViewTypeGroup(), 1, 0); + grid->addWidget(CreateButtonBoxGroup(), 2, 0); - m_form.addRow(vbox); - AddButtonBox(); + setLayout(grid); } -void MwmsBordersSelection::AddButtonBox() +QGroupBox * MwmsBordersSelection::CreateButtonBoxGroup() { + auto * groupBox = new QGroupBox(); + auto * buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this); - m_form.addRow(buttonBox); + auto * vbox = new QVBoxLayout; + + vbox->addWidget(buttonBox); + groupBox->setLayout(vbox); + groupBox->setFlat(true); QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept())); QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + + return groupBox; } MwmsBordersSelection::Response MwmsBordersSelection::ShowModal() { if (exec() != QDialog::Accepted) - return Response::Canceled; + return Response::Cancelled; + + if (m_radioBordersFromData->isChecked()) + { + if (m_radioJustBorders->isChecked()) + return Response::JustBordersByPolyFiles; + + if (m_radioWithPoints->isChecked()) + return Response::WithPointsAndBordersByPolyFiles; + + UNREACHABLE(); + } + + if (m_radioBordersFromPackedPolygon->isChecked()) + { + if (m_radioJustBorders->isChecked()) + return Response::JustBordersByPackedPolygon; - if (m_radioJustBorders->isChecked()) - return Response::JustBorders; + if (m_radioWithPoints->isChecked()) + return Response::WithPointsAndBordersByPackedPolygon; - if (m_radioWithPoints->isChecked()) - return Response::WithPointsAndBorders; + UNREACHABLE(); + } UNREACHABLE(); } + +QGroupBox * MwmsBordersSelection::CreateSourceChoosingGroup() +{ + auto * groupBox = new QGroupBox(); + + m_radioBordersFromPackedPolygon = new QRadioButton(tr("Show borders from packed_polygon.bin.")); + m_radioBordersFromData = new QRadioButton(tr("Show borders from *.poly files.")); + + m_radioBordersFromPackedPolygon->setChecked(true); + + auto * vbox = new QVBoxLayout; + + vbox->addWidget(m_radioBordersFromPackedPolygon); + vbox->addWidget(m_radioBordersFromData); + groupBox->setLayout(vbox); + + return groupBox; +} + +QGroupBox * MwmsBordersSelection::CreateViewTypeGroup() +{ + auto * groupBox = new QGroupBox(); + + m_radioWithPoints = new QRadioButton(tr("Show borders with points.")); + m_radioJustBorders = new QRadioButton(tr("Show just borders.")); + + m_radioWithPoints->setChecked(true); + + auto * vbox = new QVBoxLayout; + + vbox->addWidget(m_radioWithPoints); + vbox->addWidget(m_radioJustBorders); + groupBox->setLayout(vbox); + + return groupBox; +} } // namespace qt |