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 
223  void changeODC_SourceSsm(int);
224  void changeODC_PolarMotion(int);
225  void changeODC_SolidEarthTide(int);
226  void changeODC_OceanTide(int);
227  void changeODC_PoleTide(int);
228  void changeODC_HiFqTidalPxy(int);
229  void changeODC_HiFqTidalUt1(int);
230  void changeODC_HiFqLibrationPxy(int);
231  void changeODC_HiFqLibrationUt1(int);
232  void changeODC_HiFqNutation(int);
233  void changeODC_OceanPoleTide(int);
234  void changeODC_GpsIono(int);
235  void changeODC_FeedCorr(int);
236  void changeODC_TiltRmvr(int);
237  void changeODC_OldOceanTide(int);
238  void changeODC_OldPoleTide(int);
239  void changeODC_AxisOffset(int);
240  void changeODC_TropRefractionDry(int);
241  void changeODC_TropRefractionWet(int);
242 
245 
246  //
247  void netIdCurrentIndexChanged(const QString&);
248  void changeAA_SessionSetup(int);
249  void changeAA_Iono4SBD(int);
250  void changeAA_Ambigs(int);
251  void changeAA_ClockBreaks(int);
252  void changeAA_Iono4All(int);
253  void changeAA_Outliers(int);
254  void changeAA_Reweighting(int);
255  void changeAA_ReportNotUsed(int);
258  void changeAA_FinalSolution(int);
259 
260 
261 private:
265 
266  //
274  QWidget *makeTab4pia();
275 
276 
277  // saved objects (to change state):
278  QButtonGroup *bgDelTypes_;
279  QButtonGroup *bgRatTypes_;
281  QButtonGroup *bgBands_;
282  QButtonGroup *bgOPModes_;
285 
286  QCheckBox *cbUseQualityCodeG_;
287  QCheckBox *cbUseQualityCodeH_;
292  QCheckBox *cbIsNoviceUser_;
294  QCheckBox *cbIsTesting_;
295  //
296  QButtonGroup *bgPwlModes_;
297  QCheckBox *cbDoDownWeight_;
298  QButtonGroup *bgOPActions_;
299  QButtonGroup *bgRWModes_;
300 
301 
302  // for updating parameterization:
303  QButtonGroup *bgClocks_;
304  QButtonGroup *bgZenith_;
305  QButtonGroup *bgAtmGrads_;
306  QButtonGroup *bgStnCoord_;
307  QButtonGroup *bgAxsOffset_;
308  QButtonGroup *bgSrcCoord_;
309  QButtonGroup *bgSrcSsm_;
310  QButtonGroup *bgEopPm_;
311  QButtonGroup *bgEopPmRate_;
312  QButtonGroup *bgEopUt_;
313  QButtonGroup *bgEopUtRate_;
314  QButtonGroup *bgEopNut_;
315  QButtonGroup *bgBlnClock_;
316  QButtonGroup *bgBlnVector_;
317  QButtonGroup *bgTest_;
318 
319 
320  // for mutexing reweighting and stochastic estimation:
322  QCheckBox *cbDoReweighting_;
323  QCheckBox *cbUseExtWeights_;
324  QLineEdit *leUseExtWeights_;
325  QLineEdit *leIniSigma4Del_;
326  QLineEdit *leIniSigma4Rat_;
327  QLineEdit *leMinSigma4Del_;
328  QLineEdit *leMinSigma4Rat_;
329  //
330  QLineEdit *leOPThreshold_;
332  QCheckBox *cbSuppressWCinOP_;
335  // a priori files:
344  QCheckBox *cbExtAPrioriErp_;
345  QLineEdit *leExtAPrioriErp_;
352  QLineEdit *leEccentricities_;
353  //
354  // fly-bies:
355  QCheckBox *cbH2AppSourceSsm_;
356  QButtonGroup *bgFlybyRefrMapF_;
357 
358  // contributions:
359  QCheckBox *cbH2AppOceanTide_;
360  QCheckBox *cbH2AppPoleTide_;
361  QCheckBox *cbH2AppEarthTide_;
366  QCheckBox *cbH2AppHfTidalPxy_;
367  QCheckBox *cbH2AppHfTidalUt1_;
370  QCheckBox *cbH2AppHfNutation_;
372  QCheckBox *cbH2AppGpsIono_;
373  QCheckBox *cbH2AppFeedCorr_;
374  QCheckBox *cbH2AppTiltRmvr_;
377  /*
378  QCheckBox *cbH2AppTropContrib_;
379  */
383  //
384  QGroupBox *gbAutoAction_;
385  QPushButton *pbApCreate_;
386  QPushButton *pbApDestroy_;
387  QComboBox *cbNetID_;
393  QCheckBox *cbApDoOutliers_;
394  QCheckBox *cbApDoWeights_;
396  QGroupBox *gbApFinalSolution_;
397  QButtonGroup *bgApFinalSolution_;
398  //
399  //
401 
402 };
403 /*=====================================================================================================*/
404 
405 
406 
407 
408 /*=====================================================================================================*/
410 {
411  Q_OBJECT
412 
413 public:
415  QWidget* =NULL, Qt::WindowFlags =0);
416  virtual ~SgGuiTaskConfigDialog();
417  inline QString className() const {return "SgGuiTaskConfigDialog";};
418 
419 signals:
420  void windowClosed();
421 
422 private slots:
423  void accept();
424 
425 protected:
426  virtual void closeEvent(QCloseEvent *) {deleteLater();};
427 
428 private:
433 };
434 /*=====================================================================================================*/
435 
436 /*=====================================================================================================*/
437 #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 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_
void changeDynamicClockBreaks(int)
void changeUseGoodQualityCodeAtStartup(int)
QButtonGroup * bgAtmGrads_
SgGuiTcUserCorrectionItem(QTreeWidget *parent, int idx, int type=Type)