25 #if QT_VERSION >= 0x050000
26 # include <QtWidgets/QBoxLayout>
27 # include <QtWidgets/QCheckBox>
28 # include <QtWidgets/QGridLayout>
29 # include <QtWidgets/QGroupBox>
30 # include <QtWidgets/QLabel>
31 # include <QtWidgets/QLineEdit>
32 # include <QtWidgets/QPushButton>
34 # include <QtGui/QBoxLayout>
35 # include <QtGui/QCheckBox>
36 # include <QtGui/QGridLayout>
37 # include <QtGui/QGroupBox>
38 # include <QtGui/QLabel>
39 # include <QtGui/QLineEdit>
40 # include <QtGui/QPushButton>
95 int column=treeWidget()->sortColumn();
112 dL = text(column).toDouble(&isOk);
115 dR = other.text(column).toDouble(&isOk);
134 QWidget* parent, Qt::WindowFlags f)
136 ownerName_(session->getName()),
138 bClockShiftStrong_(QColor( 0,105,205)),
139 bClockShiftOk_ (QColor( 0, 0, 0)),
140 bClockShiftWeak_ (QColor(240,160, 20)),
141 bClockShiftBad_ (QColor(240, 15, 90))
147 QBoxLayout *layout=
new QVBoxLayout(
this);
155 QStringList headerLabels;
202 QMap<QString, SgVlbiBaselineInfo*>::const_iterator i =
baselinesByName_->constBegin();
210 item->setData (
BCI_NUMBER, Qt::TextAlignmentRole, Qt::AlignRight);
215 item->setData (
BCI_TOT_OBS, Qt::TextAlignmentRole, Qt::AlignRight);
218 item->setData (
BCI_PRC_OBS, Qt::TextAlignmentRole, Qt::AlignRight);
223 item->setData (
BCI_S_LENGTH, Qt::TextAlignmentRole, Qt::AlignRight);
226 item->setData (
BCI_S_WRMS_DEL, Qt::TextAlignmentRole, Qt::AlignRight);
232 item->setData (
BCI_S_SIG0_DEL, Qt::TextAlignmentRole, Qt::AlignRight);
238 item->setData (
BCI_S_CLK_VAL, Qt::TextAlignmentRole, Qt::AlignRight);
241 item->setData (
BCI_S_CLK_SIG, Qt::TextAlignmentRole, Qt::AlignRight);
246 if (fabs(blInfo->
dClock())>10.0e-12)
251 else if (1.0<=d && d<3.0)
255 QFont font(item->font(7));
260 item->setData(
BCI_S_CLK_EST, Qt::TextAlignmentRole, Qt::AlignCenter);
263 item->setData (
BCI_S_IGNORE, Qt::TextAlignmentRole, Qt::AlignCenter);
266 item->setData(
BCI_S_IONO4GRD, Qt::TextAlignmentRole, Qt::AlignCenter);
268 item->setData(
BCI_S_IONO4PHD, Qt::TextAlignmentRole, Qt::AlignCenter);
275 item->setData (
BCI_B_DISP_DEL, Qt::TextAlignmentRole, Qt::AlignRight);
278 item->setData (
BCI_B_DISP_RAT, Qt::TextAlignmentRole, Qt::AlignRight);
281 item->setData (
BCI_B_SIG0_DEL, Qt::TextAlignmentRole, Qt::AlignRight);
284 item->setData (
BCI_B_SIG0_RAT, Qt::TextAlignmentRole, Qt::AlignRight);
287 item->setData (
BCI_B_WRMS_DEL, Qt::TextAlignmentRole, Qt::AlignRight);
290 item->setData (
BCI_B_WRMS_RAT, Qt::TextAlignmentRole, Qt::AlignRight);
293 item->setData (
BCI_B_AMBIG_SP, Qt::TextAlignmentRole, Qt::AlignRight);
296 item->setData (
BCI_B_NUM_CHAN, Qt::TextAlignmentRole, Qt::AlignRight);
300 tweBaselines_->header()->resizeSections(QHeaderView::ResizeToContents);
301 #if QT_VERSION >= 0x050000
302 tweBaselines_->header()->setSectionResizeMode(QHeaderView::Interactive);
304 tweBaselines_->header()->setResizeMode(QHeaderView::Interactive);
319 SIGNAL(moveUponItem(
QTreeWidgetItem*,
int, Qt::MouseButton, Qt::KeyboardModifiers)),
331 bool isContains=
false;
338 "addRefClockStation(): the station " + stName +
339 " already is in the reference clock stations list");
350 bool isContains=
false;
355 "delRefClockStation(): cannot remove the station " + stName +
356 " from the reference clock stations list");
365 Qt::MouseButton , Qt::KeyboardModifiers )
470 if (fabs(blInfo->
dClock())>10.0e-12)
475 else if (1.0<=d && d<3.0)
508 QWidget* parent, Qt::WindowFlags flags)
511 static const QString attrNames[] =
513 QString(
"Ignore the baseline"),
514 QString(
"Estimate the clock shift for the baseline"),
515 QString(
"Use ionosphere correction for group delay (if available)"),
516 QString(
"Use ionosphere correction for phase delay (if available)"),
517 QString(
"Bind the zenith delays of the two stations"),
518 QString(
"Do not perform weight corrections for this baseline"),
521 QBoxLayout *mainLayout, *vLayout, *hLayout;
533 setWindowTitle(
"The baseline " +
baselineInfo_->
getKey() +
" at the " + ownerName +
"-Band");
536 setWindowTitle(
"The baseline " +
baselineInfo_->
getKey() +
" at the " + ownerName +
" session");
539 setWindowTitle(
"The baseline " +
baselineInfo_->
getKey() +
" in the " + ownerName +
" project");
544 mainLayout =
new QVBoxLayout(
this);
547 gbox =
new QGroupBox(
"Attributes of Baseline",
this);
548 vLayout =
new QVBoxLayout(gbox);
549 for (
int i=0; i<6; i++)
561 mainLayout->addWidget(gbox, 10);
564 gbox =
new QGroupBox(
"Sigmas for rewighting",
this);
565 QGridLayout *grid =
new QGridLayout(gbox);
567 grid->addWidget(
new QLabel(
"Additional sigma for delays (ps):", gbox), 0, 0);
572 grid->addWidget(
new QLabel(
"Additional sigma for rates (fs/s):", gbox), 1, 0);
577 mainLayout->addWidget(gbox, 10);
580 gbox =
new QGroupBox(
"Esimtation of baseline clock shift",
this);
581 grid =
new QGridLayout(gbox);
582 grid->addWidget(
new QLabel(
"Value of clocks offset (ps):", gbox), 0, 0);
585 grid->addWidget(
new QLabel(
"Std.dev of clocks offset (ps):", gbox), 1, 0);
589 mainLayout->addWidget(gbox, 10);
593 QPushButton *bOk =
new QPushButton(
"OK",
this);
594 QPushButton *bCancel =
new QPushButton(
"Cancel",
this);
595 bOk->setDefault(
true);
597 bCancel->setMinimumSize((btnSize=bCancel->sizeHint()));
598 bOk->setMinimumSize(btnSize);
601 hLayout =
new QHBoxLayout();
602 mainLayout->addSpacing(15);
603 mainLayout->addStretch(1);
604 mainLayout->addLayout(hLayout);
606 hLayout->addStretch(1);
607 hLayout->addWidget(bOk);
608 hLayout->addWidget(bCancel);
610 connect(bOk, SIGNAL(clicked()), SLOT(
accept()));
611 connect(bCancel, SIGNAL(clicked()), SLOT(
reject()));
612 mainLayout->activate();
677 d = str.toDouble(&isOk);
691 "::acquireData(): the additional delay std.devs were propagated to the " + band->
getKey() +
698 (band?band->
getKey():
"NULL") +
"-band");
703 "::acquireData(): session or config is NULL for the baseline [" +
707 d = str.toDouble(&isOk);
721 "::acquireData(): the additional rate std.devs were propagated to the " + band->
getKey() +
728 (band?band->
getKey():
"NULL") +
"-band");
733 "::acquireData(): session or config is NULL for the baseline [" +
bool operator<(const SgMJD &T1, const SgMJD &T2)
bool isAttr(uint a) const
void setBlInfo(SgVlbiBaselineInfo *info)
SgVlbiBaselineInfo * getBlInfo()
virtual bool operator<(const QTreeWidgetItem &other) const
SgVlbiBaselineInfo * blInfo_
void delRefClockStation(const QString &)
void entryDoubleClicked(QTreeWidgetItem *, int)
void addRefClockStation(const QString &)
QMap< QString, SgVlbiBaselineInfo * > * baselinesByName_
QList< QString > refClockStations_
SgObjectBrowseMode browseMode_
virtual QString className() const
QBrush bClockShiftStrong_
SgGuiVlbiBaselineList(SgVlbiSession *session, SgTaskConfig *cfg, SgObjectBrowseMode, QMap< QString, SgVlbiBaselineInfo * > *, QWidget *=0, Qt::WindowFlags=0)
void modifyBaselineInfo(bool)
void toggleEntryMoveEnable(QTreeWidgetItem *, int, Qt::MouseButton, Qt::KeyboardModifiers)
SgGuiQTreeWidgetExt * tweBaselines_
~SgGuiVlbiBlnInfoEditor()
void contentModified(bool)
void updateModifyStatus(bool)
SgObjectBrowseMode browseMode_
QLineEdit * leAuxSigma4Rate_
QLineEdit * leAuxSigma4Delay_
QString className() const
SgVlbiBaselineInfo * baselineInfo_
SgGuiVlbiBlnInfoEditor(SgVlbiSession *session, SgTaskConfig *cfg, SgVlbiBaselineInfo *, SgObjectBrowseMode, const QString &, QWidget *=0, Qt::WindowFlags=0)
QCheckBox * cbAttributes_[6]
virtual void write(LogLevel, quint32, const QString &, bool=false)
double dispersion(DataType, bool=false) const
double getSigma2add(DataType) const
const QString & getKey() const
int numProcessed(DataType dType) const
void setSigma2add(DataType dType, double d)
double wrms(DataType) const
int numTotal(DataType dType) const
int getActiveBandIdx() const
QMap< QString, SgVlbiBaselineInfo * > & baselinesByName()
@ Attr_USE_IONO4GRD
use ionosphere corrections for group delays;
@ Attr_USE_IONO4PHD
use ionosphere corrections for phase delays;
@ Attr_ESTIMATE_CLOCKS
estimate baseline clocks;
@ Attr_NOT_VALID
omit the baseline;
@ Attr_SKIP_WC
do not make weight corrections for this baseline;
@ Attr_BIND_TROPOSPHERE
the troposphere parameters should be tied between the stations;
int getTypicalNumOfChannels() const
double dClockSigma() const
double getTypicalGrdAmbigSpacing() const
QList< SgVlbiBand * > & bands()