General Purpose Geodetic Library
SgGuiTaskConfig.h
Go to the documentation of this file.
1 /*
2  *
3  * This file is a part of Space Geodetic Library. The library is used by
4  * nuSolve, a part of CALC/SOLVE system, and designed to make analysis of
5  * geodetic VLBI observations.
6  * Copyright (C) 2010-2020 Sergei Bolotin.
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef SG_GUI_TASK_CONFIG_H
24 #define SG_GUI_TASK_CONFIG_H
25 
26 
27 #ifdef HAVE_CONFIG_H
28 # include <config.h>
29 #endif
30 
31 
32 
33 
34 #include <SgParameterCfg.h>
35 #include <SgParametersDescriptor.h>
36 #include <SgTaskConfig.h>
37 #include <SgVlbiSession.h>
38 
39 
40 #if QT_VERSION >= 0x050000
41 # include <QtWidgets/QDialog>
42 #else
43 # include <QtGui/QDialog>
44 #endif
45 
46 #include <QtWidgets/QTreeWidgetItem>
47 
48 #include <SgGuiQTreeWidgetExt.h>
49 
50 
51 class QButtonGroup;
52 class QCheckBox;
53 class QComboBox;
54 class QDialog;
55 class QGroupBox;
56 class QLineEdit;
57 class QPushButton;
58 class QRadioButton;
59 class QSpinBox;
60 
61 
62 
63 
64 
65 
66 /*=====================================================================================================*/
68 {
69 public:
70  SgGuiTcUserCorrectionItem(QTreeWidget *parent, int idx, int type=Type) :
71  QTreeWidgetItem(parent, type) {idx_=idx;};
73  void setIdx(int idx) {idx_ = idx;};
74  int getIdx() const {return idx_;};
75  // virtual bool operator<(const QTreeWidgetItem &other) const;
76 private:
77  int idx_;
78 };
79 /*=====================================================================================================*/
80 
81 
82 
83 
84 
85 
86 /*=====================================================================================================*/
87 class SgGuiTaskConfig : public QWidget
88 {
89  Q_OBJECT
90 
91 public:
93  Qt::WindowFlags=Qt::Widget);
94  virtual inline ~SgGuiTaskConfig()
95  {config_=NULL; parametersDescriptor_=NULL; session_=NULL; stcParsButtons_.clear();
97 
98  inline QString className() const {return "SgGuiTaskConfig";};
99 
100 
101 
102 signals:
105  void activeBandModified(int);
108 
109 
110 
111 public slots:
112  void updateDelayTypeSelection(int);
113  void updateRateTypeSelection(int);
114  void updateActiveBandSelection(int);
116  void displayConfig();
117 
118 
119 
120 private slots:
121  void toggleEntryMoveEnable(QTreeWidgetItem*, int, Qt::MouseButton, Qt::KeyboardModifiers);
122  void modifyDelayType(int);
123  void modifyRateType(int);
124  void modifyReweightingMode(int);
125  void band2UseModified(int);
126  void changeEF_WeightsFileName(const QString&);
127  void changeAS_ini4del(const QString&);
128  void changeAS_ini4rat(const QString&);
129  void changeAS_min4del(const QString&);
130  void changeAS_min4rat(const QString&);
131  // station's:
132  void paramaters4ClocksModified(int);
133  void paramaters4ZenithModified(int);
134  void paramaters4AtmGrdModified(int);
135  void paramaters4StnPosModified(int);
136  void paramaters4AxsOfsModified(int);
142  // source's:
143  void paramaters4SrcPosModified(int);
145  void paramaters4SrcSsmModified(int);
147  // EOP:
148  void paramaters4EopUt1Modified(int);
160  // baseline's:
161  void paramaters4BlnClockModified(int);
165  // Test:
166  void paramaters4TestModified(int);
167  void editParameterCfg4Test();
168 
169  void modifyEstimatorPwlMode(int);
170  void changeDoDownWeight(int);
171 
172  void changePRA_Iono4SBD(int);
173  void changePRA_CBDetectionMode1(int);
175 
176  void changeGUI_activeBand(int);
177  void changeGUI_observable(int);
178  void changeIsNoviceUser(int);
180  void changeIsTesting(int);
181 
182  void changeUseQualityCodeG(int);
183  void changeUseQualityCodeH(int);
184  void changeCompatibility(int);
185  void changeDynamicClockBreaks(int);
188 
189  void changeRTA_WeightCorrection(int);
191 
192  void checkStcParChackBoxesStatus(bool);
193 
196  void outliersProcessingThresholdModified(const QString&);
197  void outliersProcessingIterationsLimitModified(const QString&);
198  void changeOP_WcSuppresion(int);
199  void changeOP_IsSolveCompatible(int);
200  void changeOP_DoNotNormalize(int);
201 
202  void changeEF_SitePositions(int);
203  void changeEF_SitePositionsFileName(const QString&);
204  void changeEF_SiteVelocities(int);
205  void changeEF_SiteVelocitiesFileName(const QString&);
206  void changeEF_SourcePositions(int);
207  void changeEF_SourcePositionsFileName(const QString&);
208  void changeEF_SourceSsm(int);
209  void changeEF_SourceSsmFileName(const QString&);
210  void changeEF_Eop(int);
211  void changeEF_EopFileName(const QString&);
212  void changeEF_AxisOffset(int);
213  void changeEF_AxisOffsetFileName(const QString&);
214  void changeEF_HiFyEop(int);
215  void changeEF_HiFyEopFileName(const QString&);
216  void changeEF_MeanGradients(int);
217  void changeEF_MeanGradientsFileName(const QString&);
218  void changeEF_EccentricitiesFileName(const QString&);
219 
220  //
221  void flybyRefrMapFModified(int n);
222  void flybySourceCccFModified(int n);
223 
224  void changeODC_SourceSsm(int);
225  void changeODC_PolarMotion(int);
226  void changeODC_SolidEarthTide(int);
227  void changeODC_OceanTide(int);
228  void changeODC_PoleTide(int);
229  void changeODC_HiFqTidalPxy(int);
230  void changeODC_HiFqTidalUt1(int);
231  void changeODC_HiFqLibrationPxy(int);
232  void changeODC_HiFqLibrationUt1(int);
233  void changeODC_HiFqNutation(int);
234  void changeODC_OceanPoleTide(int);
235  void changeODC_GpsIono(int);
236  void changeODC_FeedCorr(int);
237  void changeODC_TiltRmvr(int);
238  void changeODC_OldOceanTide(int);
239  void changeODC_OldPoleTide(int);
240  void changeODC_AxisOffset(int);
241  void changeODC_TropRefractionDry(int);
242  void changeODC_TropRefractionWet(int);
243 
246 
247  //
248  void netIdCurrentIndexChanged(const QString&);
249  void changeAA_SessionSetup(int);
250  void changeAA_Iono4SBD(int);
251  void changeAA_Ambigs(int);
252  void changeAA_ClockBreaks(int);
253  void changeAA_Iono4All(int);
254  void changeAA_Outliers(int);
255  void changeAA_Reweighting(int);
256  void changeAA_ReportNotUsed(int);
259  void changeAA_FinalSolution(int);
260 
261 
262 private:
266 
267  //
275  QWidget *makeTab4pia();
276 
277 
278  // saved objects (to change state):
279  QButtonGroup *bgDelTypes_;
280  QButtonGroup *bgRatTypes_;
282  QButtonGroup *bgBands_;
283  QButtonGroup *bgOPModes_;
286 
287  QCheckBox *cbUseQualityCodeG_;
288  QCheckBox *cbUseQualityCodeH_;
293  QCheckBox *cbIsNoviceUser_;
295  QCheckBox *cbIsTesting_;
296  //
297  QButtonGroup *bgPwlModes_;
298  QCheckBox *cbDoDownWeight_;
299  QButtonGroup *bgOPActions_;
300  QButtonGroup *bgRWModes_;
301 
302 
303  // for updating parameterization:
304  QButtonGroup *bgClocks_;
305  QButtonGroup *bgZenith_;
306  QButtonGroup *bgAtmGrads_;
307  QButtonGroup *bgStnCoord_;
308  QButtonGroup *bgAxsOffset_;
309  QButtonGroup *bgSrcCoord_;
310  QButtonGroup *bgSrcSsm_;
311  QButtonGroup *bgEopPm_;
312  QButtonGroup *bgEopPmRate_;
313  QButtonGroup *bgEopUt_;
314  QButtonGroup *bgEopUtRate_;
315  QButtonGroup *bgEopNut_;
316  QButtonGroup *bgBlnClock_;
317  QButtonGroup *bgBlnVector_;
318  QButtonGroup *bgTest_;
319 
320 
321  // for mutexing reweighting and stochastic estimation:
323  QCheckBox *cbDoReweighting_;
324  QCheckBox *cbUseExtWeights_;
325  QLineEdit *leUseExtWeights_;
326  QLineEdit *leIniSigma4Del_;
327  QLineEdit *leIniSigma4Rat_;
328  QLineEdit *leMinSigma4Del_;
329  QLineEdit *leMinSigma4Rat_;
330  //
331  QLineEdit *leOPThreshold_;
333  QCheckBox *cbSuppressWCinOP_;
336  // a priori files:
345  QCheckBox *cbExtAPrioriErp_;
346  QLineEdit *leExtAPrioriErp_;
353  QLineEdit *leEccentricities_;
354  //
355  // fly-bies:
356  QCheckBox *cbH2AppSourceSsm_;
357  QButtonGroup *bgFlybyRefrMapF_;
358  QButtonGroup *bgFlybySrcCcc_;
359 
360  // contributions:
361  QCheckBox *cbH2AppOceanTide_;
362  QCheckBox *cbH2AppPoleTide_;
363  QCheckBox *cbH2AppEarthTide_;
368  QCheckBox *cbH2AppHfTidalPxy_;
369  QCheckBox *cbH2AppHfTidalUt1_;
372  QCheckBox *cbH2AppHfNutation_;
374  QCheckBox *cbH2AppGpsIono_;
375  QCheckBox *cbH2AppFeedCorr_;
376  QCheckBox *cbH2AppTiltRmvr_;
379  /*
380  QCheckBox *cbH2AppTropContrib_;
381  */
385  //
386  QGroupBox *gbAutoAction_;
387  QPushButton *pbApCreate_;
388  QPushButton *pbApDestroy_;
389  QComboBox *cbNetID_;
395  QCheckBox *cbApDoOutliers_;
396  QCheckBox *cbApDoWeights_;
398  QGroupBox *gbApFinalSolution_;
399  QButtonGroup *bgApFinalSolution_;
400  //
401  //
403 
404 };
405 /*=====================================================================================================*/
406 
407 
408 
409 
410 /*=====================================================================================================*/
412 {
413  Q_OBJECT
414 
415 public:
417  QWidget* =NULL, Qt::WindowFlags =0);
418  virtual ~SgGuiTaskConfigDialog();
419  inline QString className() const {return "SgGuiTaskConfigDialog";};
420 
421 signals:
422  void windowClosed();
423 
424 private slots:
425  void accept();
426 
427 protected:
428  virtual void closeEvent(QCloseEvent *) {deleteLater();};
429 
430 private:
435 };
436 /*=====================================================================================================*/
437 
438 /*=====================================================================================================*/
439 #endif // SG_GUI_TASK_CONFIG_H
SgTaskConfig * config_
QString className() const
virtual void closeEvent(QCloseEvent *)
SgGuiTaskConfigDialog(SgTaskConfig *, SgParametersDescriptor *, SgVlbiSession *, QWidget *=NULL, Qt::WindowFlags=0)
SgGuiTaskConfig * configWidget_
SgVlbiSession * session_
SgParametersDescriptor * parametersDescriptor_
void changeAA_FinalSolution(int)
QLineEdit * leOPThreshold_
void changeODC_HiFqTidalUt1(int)
void changeEF_SourceSsm(int)
QCheckBox * cbExtAPrioriSitesVelocities_
QCheckBox * cbExtAPrioriSourcesPositions_
void changeAS_ini4del(const QString &)
QWidget * makeTab4models()
QList< QRadioButton * > stcParsButtons_
void changeODC_HiFqLibrationPxy(int)
void updateRateTypeSelection(int)
QButtonGroup * bgBlnClock_
void changeODC_TropRefractionDry(int)
QCheckBox * cbUseSolveObsSuppresionFlags_
QButtonGroup * bgZenith_
void changeAA_ReportNotUsed(int)
QCheckBox * cbIsNoviceUser_
QCheckBox * cbH2AppNwetContrib_
void netIdCurrentIndexChanged(const QString &)
QLineEdit * leMinSigma4Del_
QCheckBox * cbApDoIonoCorrection4SBD_
void changeOP_IsSolveCompatible(int)
void changeEF_SiteVelocitiesFileName(const QString &)
void editParameterCfg4BlnLength()
void changeOP_DoNotNormalize(int)
void editParameterCfg4EopNutationRate()
QCheckBox * cbH2AppOceanTide_
void modifyEstimatorPwlMode(int)
QCheckBox * cbH2AppNdryContrib_
QLineEdit * leExtAPrioriSitesPositions_
bool isOutliersProcessingThresholdModified_
SgVlbiSession * session_
void paramaters4BlnLengthModified(int)
QPushButton * pbApDestroy_
void changeODC_HiFqLibrationUt1(int)
QButtonGroup * bgPwlModes_
void paramaters4EopNutationModified(int)
void changeEF_MeanGradientsFileName(const QString &)
void changeODC_OceanPoleTide(int)
void changeEF_SiteVelocities(int)
QButtonGroup * bgDelTypes_
QSpinBox * sbQualityCodeThreshold_
QLineEdit * leEccentricities_
void changeODC_HiFqTidalPxy(int)
QCheckBox * cbH2AppAxisOffsetContrib_
QLineEdit * leExtAPrioriHiFyEop_
void checkStcParChackBoxesStatus(bool)
void changeODC_TiltRmvr(int)
QCheckBox * cbH2AppTiltRmvr_
QWidget * makeTab4Operations()
void createAutomaticProcessing4NetId()
QLineEdit * leExtAPrioriSitesVelocities_
QCheckBox * cbH2AppOceanPoleTideLd_
QButtonGroup * bgEopUtRate_
void changeEF_HiFyEop(int)
void paramaters4BlnClockModified(int)
QLineEdit * leIniSigma4Rat_
QCheckBox * cbH2AppHfNutation_
QCheckBox * cbH2AppOldPoleTide_
QCheckBox * cbSuppressWCinOP_
void changeCompat_UseSolveElimFlags(int)
QGroupBox * gbAutoAction_
void flybyRefrMapFModified(int n)
QButtonGroup * bgApFinalSolution_
void changeODC_OceanTide(int)
void changeAA_Outliers(int)
QWidget * makeTab4GeneralOptions()
QCheckBox * cbApDoWeights_
void paramaters4EopUt1RateModified(int)
QButtonGroup * bgAxsOffset_
void updateDelayTypeSelection(int)
QCheckBox * cbUseExtWeights_
QCheckBox * cbHave2outputCovarMatrix_
void destroyAutomaticProcessing4NetId()
SgGuiQTreeWidgetExt * tweUserCorrections_
void editParameterCfg4EopUt1Rate()
void outliersProcessingModeModified(int)
void displayParametersDesriptor()
void changeODC_GpsIono(int)
QButtonGroup * bgStnCoord_
void editParameterCfg4EopPolarRate()
QLineEdit * leOPIterationsLimit_
void changeGUI_activeBand(int)
void flybySourceCccFModified(int n)
void changeEF_MeanGradients(int)
QCheckBox * cbH2AppGpsIono_
void changeAA_Reweighting(int)
QCheckBox * cbH2AppHfTidalPxy_
void changeAS_min4del(const QString &)
SgParametersDescriptor * parametersDescriptor_
void paramaters4EopUt1Modified(int)
void outliersProcessingActionModified(int)
void paramaters4EopPolarMotionModified(int)
QCheckBox * cbDoReweighting_
void changePRA_Iono4SBD(int)
void changeEF_SourceSsmFileName(const QString &)
QButtonGroup * bgSrcSsm_
void changeODC_TropRefractionWet(int)
void changeEF_SitePositions(int)
QButtonGroup * bgRWModes_
QCheckBox * cbUseQualityCodeG_
QLineEdit * leMinSigma4Rat_
QCheckBox * cbH2AppPoleTide_
void changeODC_AxisOffset(int)
void changeODC_SolidEarthTide(int)
QButtonGroup * bgClocks_
QWidget * tabModels_
void changeEF_AxisOffsetFileName(const QString &)
void changeUseQualityCodeH(int)
void paramaters4TestModified(int)
QString className() const
QCheckBox * cbH2AppOldOceanTide_
void changeAA_Iono4SBD(int)
QWidget * tabGeneralOptions_
QLineEdit * leExtAPrioriAxisOffsets_
void changeEF_EopFileName(const QString &)
void changeEF_SitePositionsFileName(const QString &)
QButtonGroup * bgTest_
QButtonGroup * bgFlybyRefrMapF_
void changeHave2outputCovarMatrix(int)
void paramaters4StnPosModified(int)
QCheckBox * cbApDoSessionSetup_
QButtonGroup * bgSrcCoord_
void changeODC_FeedCorr(int)
void paramaters4SrcSsmModified(int)
void modifyReweightingMode(int)
QCheckBox * cbApDoClockBreaksDetection_
void changePRA_OutliersEliminationMode1(int)
void changeODC_OldOceanTide(int)
void changeODC_HiFqNutation(int)
void delayTypeModified(SgTaskConfig::VlbiDelayType)
QCheckBox * cbIsTesting_
void changeAA_ClockBreaks(int)
void changeODC_PoleTide(int)
QCheckBox * cbApDoOutliers_
QCheckBox * cbUseQualityCodeH_
virtual ~SgGuiTaskConfig()
void qualityCodeThresholdModified(int)
QCheckBox * cbH2AppHfTidalUt1_
QButtonGroup * bgOPActions_
QCheckBox * cbOPSolveCompatible_
QCheckBox * cbIsActiveBandFollowsTab_
QCheckBox * cbH2AppHfLibrationUt1_
void changeAS_ini4rat(const QString &)
void paramaters4AxsOfsModified(int)
void paramaters4AtmGrdModified(int)
QCheckBox * cbExtAPrioriErp_
void goodQualityCodeAtStartupModified(int)
void changeEF_SourcePositions(int)
void changeDoDownWeight(int)
void toggleEntryMoveEnable(QTreeWidgetItem *, int, Qt::MouseButton, Qt::KeyboardModifiers)
QButtonGroup * bgOPModes_
void changeEF_HiFyEopFileName(const QString &)
QCheckBox * cbH2AppEarthTide_
void changePRA_CBDetectionMode1(int)
void changeUseQualityCodeG(int)
SgTaskConfig * config_
void paramaters4ClocksModified(int)
void changeEF_WeightsFileName(const QString &)
QGroupBox * gbApFinalSolution_
QButtonGroup * bgEopUt_
SgGuiTaskConfig(SgTaskConfig *, SgParametersDescriptor *, SgVlbiSession *, QWidget *, Qt::WindowFlags=Qt::Widget)
void changeAA_Iono4All(int)
QLineEdit * leExtAPrioriSourcesPositions_
void paramaters4EopPolarMotionRateModified(int)
void changeOP_WcSuppresion(int)
void clocksModelChanged(SgParameterCfg::PMode)
QButtonGroup * bgBands_
QCheckBox * cbIsObservableFollowsPlot_
QCheckBox * cbApDoReportNotUsedData_
void changeRTA_WeightCorrection(int)
void changeEF_AxisOffset(int)
QLineEdit * leIniSigma4Del_
QCheckBox * cbUseDynamicClockBreaks_
void changeODC_PolarMotion(int)
QCheckBox * cbExtAPrioriSitesPositions_
QCheckBox * cbUseGoodQualityCodeAtStartup_
QButtonGroup * bgEopNut_
void paramaters4SrcPosModified(int)
QCheckBox * cbDoDownWeight_
QLineEdit * leExtAPrioriSourcesSsm_
QButtonGroup * bgEopPmRate_
QCheckBox * cbH2AppFeedCorr_
void editParameterCfg4EopPolar()
QCheckBox * cbExtAPrioriAxisOffsets_
QCheckBox * cbH2AppHfLibrationPxy_
void updateActiveBandSelection(int)
QLineEdit * leExtAPrioriMeanGradients_
void editParameterCfg4BlnClock()
void changeCompatibility(int)
QCheckBox * cbIsSolveCompatible_
QPushButton * pbApCreate_
void outliersProcessingIterationsLimitModified(const QString &)
QCheckBox * cbH2AppPolarMotion_
QCheckBox * cbH2AppSourceSsm_
void changeGUI_observable(int)
void changeEF_EccentricitiesFileName(const QString &)
void editParameterCfg4EopNutation()
void paramaters4EopNutationRateModified(int)
QButtonGroup * bgEopPm_
QCheckBox * cbOPDoNotNormalize_
void changeEF_SourcePositionsFileName(const QString &)
QSpinBox * sbGoodQualityCodeAtStartup_
QCheckBox * cbExtAPrioriHiFyEop_
QCheckBox * cbApDoIonoCorrection4All_
QCheckBox * cbExtAPrioriSourcesSsm_
void band2UseModified(int)
void changeODC_OldPoleTide(int)
void paramaters4ZenithModified(int)
QButtonGroup * bgRatTypes_
void outliersProcessingThresholdModified(const QString &)
QList< QRadioButton * > ratTypeButtons_
QLineEdit * leUseExtWeights_
void changeRTA_UseExternalWeights(int)
void changeODC_SourceSsm(int)
QCheckBox * cbExtAPrioriMeanGradients_
QWidget * tabOperations_
QLineEdit * leExtAPrioriErp_
void rateTypeModified(SgTaskConfig::VlbiRateType)
void changeAS_min4rat(const QString &)
void changeAA_SessionSetup(int)
QCheckBox * cbApDoAmbigResolution_
void zenithModelChanged(SgParameterCfg::PMode)
QWidget * makeTab4pia()
QComboBox * cbNetID_
void changeIsNoviceUser(int)
QButtonGroup * bgBlnVector_
QButtonGroup * bgFlybySrcCcc_
void changeDynamicClockBreaks(int)
void changeUseGoodQualityCodeAtStartup(int)
QButtonGroup * bgAtmGrads_
SgGuiTcUserCorrectionItem(QTreeWidget *parent, int idx, int type=Type)