forked from CCOMJHC/camp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsurveypatterndetails.cpp
92 lines (81 loc) · 2.72 KB
/
surveypatterndetails.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "surveypatterndetails.h"
#include "ui_surveypatterndetails.h"
#include "surveypattern.h"
SurveyPatternDetails::SurveyPatternDetails(QWidget *parent) :
QWidget(parent),
ui(new Ui::SurveyPatternDetails),
updating(false)
{
ui->setupUi(this);
ui->alignmentComboBox->addItem("Start");
ui->alignmentComboBox->addItem("Center");
ui->alignmentComboBox->addItem("Finish");
}
SurveyPatternDetails::~SurveyPatternDetails()
{
delete ui;
}
void SurveyPatternDetails::setSurveyPattern(SurveyPattern *surveyPattern)
{
m_surveyPattern = surveyPattern;
connect(surveyPattern,&SurveyPattern::surveyPatternUpdated,this,&SurveyPatternDetails::onSurveyPatternUpdated);
ui->startPoint->setWaypoint(surveyPattern->startLocationWaypoint());
if(surveyPattern->endLocationWaypoint())
ui->oppositePoint->setWaypoint(surveyPattern->endLocationWaypoint());
ui->alignmentComboBox->setAutoCompletion(surveyPattern->alignment());
onSurveyPatternUpdated();
}
void SurveyPatternDetails::onSurveyPatternUpdated()
{
if(!updating)
{
ui->lineSpacingEdit->setText(QString::number(m_surveyPattern->spacing()));
ui->headingEdit->setText(QString::number(m_surveyPattern->direction()));
ui->lineLengthLineEdit->setText(QString::number(m_surveyPattern->lineLength()));
ui->totalWidthLineEdit->setText(QString::number(m_surveyPattern->totalWidth()));
}
}
void SurveyPatternDetails::updateSurveyPattern()
{
updating = true;
m_surveyPattern->setDirectionAndSpacing(ui->headingEdit->text().toDouble(),ui->lineSpacingEdit->text().toDouble());
m_surveyPattern->setLineLength(ui->lineLengthLineEdit->text().toDouble());
m_surveyPattern->setTotalWidth(ui->totalWidthLineEdit->text().toDouble());
switch(ui->alignmentComboBox->currentIndex())
{
case 0:
m_surveyPattern->setAlignment(SurveyPattern::Alignment::start);
break;
case 1:
m_surveyPattern->setAlignment(SurveyPattern::Alignment::center);
break;
case 2:
m_surveyPattern->setAlignment(SurveyPattern::Alignment::finish);
break;
}
updating = false;
}
void SurveyPatternDetails::on_headingEdit_editingFinished()
{
updateSurveyPattern();
}
void SurveyPatternDetails::on_lineSpacingEdit_editingFinished()
{
updateSurveyPattern();
}
void SurveyPatternDetails::on_lineLengthLineEdit_editingFinished()
{
updateSurveyPattern();
}
void SurveyPatternDetails::on_totalWidthLineEdit_editingFinished()
{
updateSurveyPattern();
}
void SurveyPatternDetails::on_maxSegmentLengthLineEdit_editingFinished()
{
updateSurveyPattern();
}
void SurveyPatternDetails::on_alignmentComboBox_activated()
{
updateSurveyPattern();
}