Index: trunk/BNC/src/bncwindow.cpp
===================================================================
--- trunk/BNC/src/bncwindow.cpp	(revision 11081)
+++ trunk/BNC/src/bncwindow.cpp	(revision 11087)
@@ -301,4 +301,6 @@
   _ssrQcRefLineEdit = new QLineEdit(settings.value("ssrQcRef").toString().isEmpty() ? QString("CONSENSUS") : settings.value("ssrQcRef").toString());
   _ssrQcStreamsLineEdit = new QLineEdit(settings.value("ssrQcStreams").toString().isEmpty() ? QString("ALL") : settings.value("ssrQcStreams").toString());
+  _ssrQcBiasFileChooser = new qtFileChooser(0, qtFileChooser::File);
+  _ssrQcBiasFileChooser->setFileName(settings.value("ssrQcBiasFile").toString());
   _ssrQcIntrComboBox = new QComboBox();
   _ssrQcIntrComboBox->setEditable(false);
@@ -571,4 +573,7 @@
   _cmbBsxFile = new qtFileChooser(0, qtFileChooser::File);
   _cmbBsxFile->setFileName(settings.value("cmbBsxFile").toString());
+
+  _cmbRefSigLineEdit = new QLineEdit(settings.value("ssrRefSignals").toString());
+  _cmbRefSigLineEdit->setPlaceholderText("default");
 
   // Upload Results
@@ -926,6 +931,8 @@
   cLayout->addWidget(new QLabel("QC Interval"), 7, 0);
   cLayout->addWidget(_ssrQcIntrComboBox, 7, 1);
-  cLayout->addWidget(new QLabel(""), 8, 1);
-  cLayout->setRowStretch(7, 999);
+  cLayout->addWidget(new QLabel("QC Bias File"), 8, 0);
+  cLayout->addWidget(_ssrQcBiasFileChooser, 8, 1, 1, 30);
+  cLayout->addWidget(new QLabel(""), 9, 1);
+  cLayout->setRowStretch(8, 999);
   cgroup->setLayout(cLayout);
 
@@ -1418,23 +1425,25 @@
   cmbLayout->addWidget(new QLabel("Sampling"), 7, 10, Qt::AlignLeft);
   cmbLayout->addWidget(_cmbSamplComboBox, 7, 11, Qt::AlignRight);
+  cmbLayout->addWidget(new QLabel("Reference signals"), 8, 10, Qt::AlignLeft);
+  cmbLayout->addWidget(_cmbRefSigLineEdit, 8, 11, 1, 5);
 
 
   cmbLayout->addWidget(new QLabel("GNSS"), 0, 14, Qt::AlignLeft);
-  cmbLayout->addWidget(new QLabel("GPS (C1W/C2W)"), 1, 14);
+  cmbLayout->addWidget(new QLabel("GPS"), 1, 14);
   cmbLayout->addWidget(_cmbGpsCheckBox, 1, 15);
 
-  cmbLayout->addWidget(new QLabel("GLONASS (C1P/C2P)"), 2, 14);
+  cmbLayout->addWidget(new QLabel("GLONASS"), 2, 14);
   cmbLayout->addWidget(_cmbGloCheckBox, 2, 15);
 
-  cmbLayout->addWidget(new QLabel("Galileo (C1C/C5Q)"), 3, 14);
+  cmbLayout->addWidget(new QLabel("Galileo"), 3, 14);
   cmbLayout->addWidget(_cmbGalCheckBox, 3, 15);
 
-  cmbLayout->addWidget(new QLabel("Beidou (C2I/C6I)"), 4, 14);
+  cmbLayout->addWidget(new QLabel("Beidou"), 4, 14);
   cmbLayout->addWidget(_cmbBdsCheckBox, 4, 15);
 
-  cmbLayout->addWidget(new QLabel("QZSS (C1C/C2L)"), 5, 14);
+  cmbLayout->addWidget(new QLabel("QZSS"), 5, 14);
   cmbLayout->addWidget(_cmbQzssCheckBox, 5, 15);
 
-  cmbLayout->addWidget(new QLabel("SBAS (C1C/C5Q)"), 6, 14);
+  cmbLayout->addWidget(new QLabel("SBAS"), 6, 14);
   cmbLayout->addWidget(_cmbSbasCheckBox, 6, 15);
 
@@ -1597,4 +1606,5 @@
   _ssrQcRefLineEdit->setWhatsThis(tr("<p>Specify the reference for the comparison of the orbits and clocks of the checked streams: 'CONSENSUS' for the median of all other streams, or the name of a stream, e.g. 'INTERNAL' for the combination.</p><p>Default is 'CONSENSUS'. <i>[key: ssrQcRef]</i></p>"));
   _ssrQcStreamsLineEdit->setWhatsThis(tr("<p>Specify the Broadcast Correction streams to be checked, as a comma separated list of stream names (e.g. SSRA00CNE1,SSRA00GMV0), or 'ALL' for all decoded streams. A stream with a leading '!' is excluded from the QC and from the consensus, e.g. 'ALL,!SIRGAS200001' for streams in another reference frame.</p><p>Default is 'ALL'. <i>[key: ssrQcStreams]</i></p>"));
+  _ssrQcBiasFileChooser->setWhatsThis(tr("<p>Specify a Bias SINEX file (OSB or DSB, e.g. a CAS DCB or a GFZ OSB product) as reference for the code bias check of the SSR QC: the DCBs of each stream are compared with the DCBs of this file, in addition to the comparison with the other ACs. A sign opposite to the reference for most DCBs indicates a stream using the SINEX instead of the SSR sign convention.</p><p>Default is an empty option field, meaning the code biases are compared with the other ACs only. <i>[key: ssrQcBiasFile]</i></p>"));
   _ssrQcIntrComboBox->setWhatsThis(tr("<p>Select the interval of the SSR QC reports. <i>[key: ssrQcIntr]</i></p>"));
   _corrPortLineEdit->setWhatsThis(tr("<p>BNC can produce Broadcast Ephemeris Corrections on your local host through an IP port.</p><p>Specify a port number here to activate this function. <i>[key: corrPort]</i></p>"));
@@ -1745,4 +1755,5 @@
   _cmbSbasCheckBox->setWhatsThis(tr("<p>SBAS clock corrections shall be combined; SBAS Broadcast ephemeris and corrections are required. <i>[key: cmbSbas]</i></p>"));
   _cmbNavicCheckBox->setWhatsThis(tr("<p>NavIC clock corrections shall be combined; NavIC Broadcast ephemeris and corrections are required. <i>[key: cmbNavic]</i></p>"));
+  _cmbRefSigLineEdit->setWhatsThis(tr("<p>Specify the reference signals of the satellite clocks per GNSS: the clocks refer to the ionosphere-free combination of the code signals of these two signals. They are used by the combination to refer the AC clocks with their code biases and to derive the code biases from a Bias SINEX file, and by the SSR QC.</p><p>Systems not specified keep the default 'G:1W&2W R:1P&2P E:1C&5Q C:2I&6I J:1C&2L S:1C&5Q' (IGS conventions). Example: 'C:1P&5P J:1C&5Q'.</p><p>Default is an empty option field, meaning the default reference signals. <i>[key: ssrRefSignals]</i></p>"));
   _cmbBsxFile->setWhatsThis(tr("<p> Specify a Bias SINEX File that will be used to add satellite code biases to the combined clocks. <i>[key: cmbBsxFile]</i></p>"));
 
@@ -1875,4 +1886,5 @@
   delete _ssrQcRefLineEdit;
   delete _ssrQcIntrComboBox;
+  delete _ssrQcBiasFileChooser;
   delete _corrPortLineEdit;
   delete _outPortLineEdit;
@@ -1918,4 +1930,5 @@
   delete _cmbNavicCheckBox;
   delete _cmbBsxFile;
+  delete _cmbRefSigLineEdit;
   delete _uploadSamplRtcmEphCorrComboBox;
   _uploadEphTable->deleteLater();
@@ -2405,4 +2418,5 @@
   settings.setValue("ssrQcRef", _ssrQcRefLineEdit->text());
   settings.setValue("ssrQcIntr", _ssrQcIntrComboBox->currentText());
+  settings.setValue("ssrQcBiasFile", _ssrQcBiasFileChooser->fileName());
   settings.setValue("corrPort", _corrPortLineEdit->text());
   // Feed Engine
@@ -2471,4 +2485,5 @@
   settings.setValue("cmbNavic", _cmbNavicCheckBox->checkState());
   settings.setValue("cmbBsxFile", _cmbBsxFile->fileName());
+  settings.setValue("ssrRefSignals", _cmbRefSigLineEdit->text());
 
   // Upload Corrections
@@ -2943,4 +2958,5 @@
     enableWidget(!_ssrQcPathLineEdit->text().isEmpty(), _ssrQcStreamsLineEdit);
     enableWidget(!_ssrQcPathLineEdit->text().isEmpty(), _ssrQcRefLineEdit);
+    enableWidget(!_ssrQcPathLineEdit->text().isEmpty(), _ssrQcBiasFileChooser);
   }
 
