Files
qt5-legatus-legacy/Lts/Tools/DdsView/coorddetaildlg.cpp
T
2026-08-13 18:33:10 +02:00

70 lines
1.8 KiB
C++
Executable File

/**
* @RDE_HEADER@
*
* Helper dia,log to enter coordinates as MGRS
* $Id$
* $HeadURL$
* $Author$
*/
#include "coorddetaildlg.h"
#include "ui_coorddetaildlg.h"
#include <LtsCoordTrans/lts_coord_trans.h>
#include <LtsCoordTrans/lts_coord_widget.h>
#include <QPushButton>
CoordDetailDlg::CoordDetailDlg(QWidget *parent)
: QDialog(parent)
, m_ui(new Ui::CoordDetailDlg)
{
// prefill some mgrs squares
LtsCoordTrans::setDefaultMgrsSquares({QStringLiteral("32UMD"), QStringLiteral("32UND"), QStringLiteral("32UPD"), QStringLiteral("32UPC")});
m_ui->setupUi(this);
connect(m_ui->buttonBox, &QDialogButtonBox::rejected,
this, &CoordDetailDlg::reject);
connect(m_ui->buttonBox, &QDialogButtonBox::accepted,
this, &CoordDetailDlg::accept);
connect(m_ui->positionEdit, &LtsCoordWidget::LtsCoordWidget::coordinateChanged,
this, &CoordDetailDlg::changedValues);
connect(m_ui->positionEdit, &LtsCoordWidget::LtsCoordWidget::invalidCoordinate,
this, &CoordDetailDlg::invalidCoordinate);
m_ui->positionEdit->setMgrsSquareEditable(true);
}
CoordDetailDlg::~CoordDetailDlg()
{
delete m_ui;
}
void CoordDetailDlg::setValues(double lon, double lat)
{
m_ui->positionEdit->setCoordinate(lon, lat, true);
changedValues(QPointF(lon, lat));
}
QPointF CoordDetailDlg::coordinate() const
{
return m_ui->positionEdit->coordinate();
}
void CoordDetailDlg::changedValues(const QPointF &coord)
{
m_ui->lonText->setText(QString::number(coord.x()));
m_ui->latText->setText(QString::number(coord.y()));
enableOkButton(true);
}
void CoordDetailDlg::invalidCoordinate()
{
enableOkButton(false);
}
void CoordDetailDlg::enableOkButton(bool bEnable)
{
QPushButton *pb = m_ui->buttonBox->button(QDialogButtonBox::Ok);
if (!pb)
return;
pb->setEnabled(bEnable);
}