70 lines
1.8 KiB
C++
Executable File
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);
|
|
}
|