source: ntrip/trunk/BNC/src/upload/bnccustomtrafo.cpp @ 8085

Last change on this file since 8085 was 8085, checked in by stuerze, 2 years ago

minor changes: IGS08 => IGS14

File size: 8.8 KB
Line 
1/* -------------------------------------------------------------------------
2 * BKG NTRIP Server
3 * -------------------------------------------------------------------------
4 *
5 * Class:      bnccustomtrafo
6 *
7 * Purpose:    This class sets Helmert Transformation Parameters
8 *
9 * Author:     G. Weber
10 *
11 * Created:    22-Mar-2009
12 *
13 * Changes:
14 *
15 * -----------------------------------------------------------------------*/
16
17#include "bnccustomtrafo.h"
18#include "bncsettings.h"
19
20using namespace std;
21
22// Constructor
23////////////////////////////////////////////////////////////////////////////
24bncCustomTrafo::bncCustomTrafo(QWidget* parent) : QDialog(parent) {
25
26  setMinimumSize(400,150);
27  QVBoxLayout* mainLayout = new QVBoxLayout(this);
28  QGridLayout* editLayout = new QGridLayout;
29
30  setWindowTitle(tr("Custom Transformation Parameters"));
31
32 bncSettings settings;
33
34 _dxLineEdit = new QLineEdit(settings.value("trafo_dx").toString());
35 _dyLineEdit = new QLineEdit(settings.value("trafo_dy").toString());
36 _dzLineEdit = new QLineEdit(settings.value("trafo_dz").toString());
37 _dxrLineEdit = new QLineEdit(settings.value("trafo_dxr").toString());
38 _dyrLineEdit = new QLineEdit(settings.value("trafo_dyr").toString());
39 _dzrLineEdit = new QLineEdit(settings.value("trafo_dzr").toString());
40 _oxLineEdit = new QLineEdit(settings.value("trafo_ox").toString());
41 _oyLineEdit = new QLineEdit(settings.value("trafo_oy").toString());
42 _ozLineEdit = new QLineEdit(settings.value("trafo_oz").toString());
43 _oxrLineEdit = new QLineEdit(settings.value("trafo_oxr").toString());
44 _oyrLineEdit = new QLineEdit(settings.value("trafo_oyr").toString());
45 _ozrLineEdit = new QLineEdit(settings.value("trafo_ozr").toString());
46 _scLineEdit = new QLineEdit(settings.value("trafo_sc").toString());
47 _scrLineEdit = new QLineEdit(settings.value("trafo_scr").toString());
48 _t0LineEdit = new QLineEdit(settings.value("trafo_t0").toString());
49
50  // WhatsThis, Custom Transformation Parameters
51  // -------------------------------------------
52  _dxLineEdit->setWhatsThis(tr("<p>Set translation in X at epoch t0.</p>"));
53  _dyLineEdit->setWhatsThis(tr("<p>Set translation in Y at epoch t0.</p>"));
54  _dzLineEdit->setWhatsThis(tr("<p>Set translation in Z at epoch t0.</p>"));
55  _dxrLineEdit->setWhatsThis(tr("<p>Set translation rate in X.</p>"));
56  _dyrLineEdit->setWhatsThis(tr("<p>Set translation rate in Y.</p>"));
57  _dzrLineEdit->setWhatsThis(tr("<p>Set translation rate in Z.</p>"));
58  _oxLineEdit->setWhatsThis(tr("<p>Set rotation in X at epoch t0.</p>"));
59  _oyLineEdit->setWhatsThis(tr("<p>Set rotation in Y at epoch t0.</p>"));
60  _ozLineEdit->setWhatsThis(tr("<p>Set rotation in Z at epoch t0.</p>"));
61  _oxrLineEdit->setWhatsThis(tr("<p>Set rotation rate in X.</p>"));
62  _oyrLineEdit->setWhatsThis(tr("<p>Set rotation rate in Y.</p>"));
63  _ozrLineEdit->setWhatsThis(tr("<p>Set rotation rate in Z.</p>"));
64  _scLineEdit->setWhatsThis(tr("<p>Set scale at epoch t0.</p>"));
65  _scrLineEdit->setWhatsThis(tr("<p>Set scale rate.</p>"));
66  _t0LineEdit->setWhatsThis(tr("<p>Set reference epoch e.g. 2000.0</p>"));
67
68  int ww = QFontMetrics(font()).width('w');
69  _dxLineEdit->setMaximumWidth(9*ww);
70  _dyLineEdit->setMaximumWidth(9*ww);
71  _dzLineEdit->setMaximumWidth(9*ww);
72  _dxrLineEdit->setMaximumWidth(9*ww);
73  _dyrLineEdit->setMaximumWidth(9*ww);
74  _dzrLineEdit->setMaximumWidth(9*ww);
75  _oxLineEdit->setMaximumWidth(9*ww);
76  _oyLineEdit->setMaximumWidth(9*ww);
77  _ozLineEdit->setMaximumWidth(9*ww);
78  _oxrLineEdit->setMaximumWidth(9*ww);
79  _oyrLineEdit->setMaximumWidth(9*ww);
80  _ozrLineEdit->setMaximumWidth(9*ww);
81  _scLineEdit->setMaximumWidth(9*ww);
82  _scrLineEdit->setMaximumWidth(9*ww);
83  _t0LineEdit->setMaximumWidth(9*ww);
84
85  editLayout->addWidget(new QLabel(tr("dX(t0) [m]")),     0, 0, Qt::AlignRight);
86  editLayout->addWidget(_dxLineEdit,                      0, 1);
87  editLayout->addWidget(new QLabel(tr("dY(t0) [m]")),     0, 2, Qt::AlignRight);
88  editLayout->addWidget(_dyLineEdit,                      0, 3);
89  editLayout->addWidget(new QLabel(tr("dZ(t0) [m]")),     0, 4, Qt::AlignRight);
90  editLayout->addWidget(_dzLineEdit,                      0, 5);
91  editLayout->addWidget(new QLabel(tr("dXr [m/y]")),      1, 0, Qt::AlignRight);
92  editLayout->addWidget(_dxrLineEdit,                     1, 1);
93  editLayout->addWidget(new QLabel(tr("dYr [m/y]")),      1, 2, Qt::AlignRight);
94  editLayout->addWidget(_dyrLineEdit,                     1, 3);
95  editLayout->addWidget(new QLabel(tr("dZr [m/y]")),      1, 4, Qt::AlignRight);
96  editLayout->addWidget(_dzrLineEdit,                     1, 5);
97  editLayout->addWidget(new QLabel(tr("   oX(t0) [as]")), 2, 0, Qt::AlignRight);
98  editLayout->addWidget(_oxLineEdit,                      2, 1);
99  editLayout->addWidget(new QLabel(tr("   oY(t0) [as]")), 2, 2, Qt::AlignRight);
100  editLayout->addWidget(_oyLineEdit,                      2, 3);
101  editLayout->addWidget(new QLabel(tr("   oZ(t0) [as]")), 2, 4, Qt::AlignRight);
102  editLayout->addWidget(_ozLineEdit,                      2, 5);
103  editLayout->addWidget(new QLabel(tr("oXr [as/y]")),     3, 0, Qt::AlignRight);
104  editLayout->addWidget(_oxrLineEdit,                     3, 1);
105  editLayout->addWidget(new QLabel(tr("oYr [as/y]")),     3, 2, Qt::AlignRight);
106  editLayout->addWidget(_oyrLineEdit,                     3, 3);
107  editLayout->addWidget(new QLabel(tr("oZr [as/y]")),     3, 4, Qt::AlignRight);
108  editLayout->addWidget(_ozrLineEdit,                     3, 5);
109  editLayout->addWidget(new QLabel(tr("S(t0) [10^-9]")),  4, 0, Qt::AlignRight);
110  editLayout->addWidget(_scLineEdit,                      4, 1);
111  editLayout->addWidget(new QLabel(tr("Sr [10^-9/y]")),   4, 2, Qt::AlignRight);
112  editLayout->addWidget(_scrLineEdit,                     4, 3);
113  editLayout->addWidget(new QLabel(tr("t0 [y]")),         4, 4, Qt::AlignRight);
114  editLayout->addWidget(_t0LineEdit,                      4, 5);
115  editLayout->addWidget(new QLabel("Specify up to 14 Helmert Transformation Parameters for transformation from IGS14"), 5, 0, 1, 6, Qt::AlignCenter);
116  editLayout->addWidget(new QLabel("into target reference system."), 6, 0, 1, 6, Qt::AlignCenter);
117
118  mainLayout->addLayout(editLayout);
119
120  _buttonWhatsThis = new QPushButton(tr("Help=Shift+F1"), this);
121  connect(_buttonWhatsThis, SIGNAL(clicked()), this, SLOT(slotWhatsThis()));
122
123  _buttonCancel = new QPushButton(tr("Cancel"), this);
124  connect(_buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
125
126  _buttonOK = new QPushButton(tr("OK"), this);
127  connect(_buttonOK, SIGNAL(clicked()), this, SLOT(accept()));
128
129  _buttonOK->setDefault(true);
130
131  QHBoxLayout* buttonLayout = new QHBoxLayout;
132
133  buttonLayout->addWidget(_buttonWhatsThis);
134  buttonLayout->addStretch(1);
135  buttonLayout->addWidget(_buttonCancel);
136  buttonLayout->addWidget(_buttonOK);
137
138  mainLayout->addLayout(buttonLayout);
139}
140
141// Destructor
142////////////////////////////////////////////////////////////////////////////
143bncCustomTrafo::~bncCustomTrafo() {
144  delete _buttonCancel;
145  delete _buttonOK;
146  delete _buttonWhatsThis;
147}
148
149// Accept slot
150////////////////////////////////////////////////////////////////////////////
151void bncCustomTrafo::accept() {
152
153  if ( !_dxLineEdit->text().isEmpty()  &&
154       !_dyLineEdit->text().isEmpty()  &&
155       !_dzLineEdit->text().isEmpty()  &&
156       !_dxrLineEdit->text().isEmpty() &&
157       !_dyrLineEdit->text().isEmpty() &&
158       !_dzrLineEdit->text().isEmpty() &&
159       !_oxLineEdit->text().isEmpty()  &&
160       !_oyLineEdit->text().isEmpty()  &&
161       !_ozLineEdit->text().isEmpty()  &&
162       !_oxrLineEdit->text().isEmpty() &&
163       !_oyrLineEdit->text().isEmpty() &&
164       !_ozrLineEdit->text().isEmpty() &&
165       !_scLineEdit->text().isEmpty()  &&
166       !_scrLineEdit->text().isEmpty() &&
167       !_t0LineEdit->text().isEmpty() ) {
168
169    bncSettings settings;
170    settings.setValue("trafo_dx",   _dxLineEdit->text());
171    settings.setValue("trafo_dy",   _dyLineEdit->text());
172    settings.setValue("trafo_dz",   _dzLineEdit->text());
173    settings.setValue("trafo_dxr",  _dxrLineEdit->text());
174    settings.setValue("trafo_dyr",  _dyrLineEdit->text());
175    settings.setValue("trafo_dzr",  _dzrLineEdit->text());
176    settings.setValue("trafo_ox",   _oxLineEdit->text());
177    settings.setValue("trafo_oy",   _oyLineEdit->text());
178    settings.setValue("trafo_oz",   _ozLineEdit->text());
179    settings.setValue("trafo_oxr",  _oxrLineEdit->text());
180    settings.setValue("trafo_oyr",  _oyrLineEdit->text());
181    settings.setValue("trafo_ozr",  _ozrLineEdit->text());
182    settings.setValue("trafo_sc",   _scLineEdit->text());
183    settings.setValue("trafo_scr",  _scrLineEdit->text());
184    settings.setValue("trafo_t0",   _t0LineEdit->text());
185
186  } else {
187   QMessageBox::warning(this, tr("Warning"),
188                               tr("Incomplete settings"),
189                               QMessageBox::Ok);
190  }
191
192  QDialog::accept();
193}
194
195// Whats This Help
196void bncCustomTrafo::slotWhatsThis() {
197QWhatsThis::enterWhatsThisMode();
198}
199
Note: See TracBrowser for help on using the repository browser.