Changeset bb31c775 in subsurface


Ignore:
Timestamp:
Mar 28, 2017, 11:17:03 AM (4 months ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
5a235ae
Parents:
1d0281c9
git-author:
Jan Mulder <jlmulder@…> (03/24/17 11:11:31)
git-committer:
Dirk Hohndel <dirk@…> (03/28/17 11:17:03)
Message:

minimal pO2 threshold: split max threshold into min and max

Nothing really special here. Just a split of the only p02 max threshold into
a min threshold and max threshold, and the adaptation of the UI. Change of
translatable strings included.

ref: https://github.com/Subsurface-divelog/subsurface/issues/259

Signed-off-by: Jan Mulder <jlmulder@…>

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • core/pref.h

    r7f8c3592 rbb31c775  
    1515        short pn2;
    1616        short phe;
    17         double po2_threshold;
     17        double po2_threshold_min;
     18        double po2_threshold_max;
    1819        double pn2_threshold;
    1920        double phe_threshold;
  • core/subsurface-qt/SettingsObjectWrapper.cpp

    r7f8c3592 rbb31c775  
    167167}
    168168
    169 double PartialPressureGasSettings::po2Threshold() const
    170 {
    171         return prefs.pp_graphs.po2_threshold;
    172 }
     169double PartialPressureGasSettings::po2ThresholdMin() const
     170{
     171        return prefs.pp_graphs.po2_threshold_min;
     172}
     173
     174double PartialPressureGasSettings::po2ThresholdMax() const
     175{
     176        return prefs.pp_graphs.po2_threshold_max;
     177}
     178
    173179
    174180double PartialPressureGasSettings::pn2Threshold() const
     
    218224}
    219225
    220 void PartialPressureGasSettings::setPo2Threshold(double value)
    221 {
    222         if (value == prefs.pp_graphs.po2_threshold)
    223                 return;
    224 
    225         QSettings s;
    226         s.beginGroup(group);
    227         s.setValue("po2threshold", value);
    228         prefs.pp_graphs.po2_threshold = value;
    229         emit po2ThresholdChanged(value);
     226void PartialPressureGasSettings::setPo2ThresholdMin(double value)
     227{
     228        if (value == prefs.pp_graphs.po2_threshold_min)
     229                return;
     230
     231        QSettings s;
     232        s.beginGroup(group);
     233        s.setValue("po2thresholdmin", value);
     234        prefs.pp_graphs.po2_threshold_min = value;
     235        emit po2ThresholdMinChanged(value);
     236}
     237
     238void PartialPressureGasSettings::setPo2ThresholdMax(double value)
     239{
     240        if (value == prefs.pp_graphs.po2_threshold_max)
     241                return;
     242
     243        QSettings s;
     244        s.beginGroup(group);
     245        s.setValue("po2thresholdmax", value);
     246        prefs.pp_graphs.po2_threshold_max = value;
     247        emit po2ThresholdMaxChanged(value);
    230248}
    231249
     
    21682186        GET_BOOL("pn2graph", pp_graphs.pn2);
    21692187        GET_BOOL("phegraph", pp_graphs.phe);
    2170         GET_DOUBLE("po2threshold", pp_graphs.po2_threshold);
     2188        GET_DOUBLE("po2thresholdmin", pp_graphs.po2_threshold_min);
     2189        GET_DOUBLE("po2thresholdmax", pp_graphs.po2_threshold_max);
    21712190        GET_DOUBLE("pn2threshold", pp_graphs.pn2_threshold);
    21722191        GET_DOUBLE("phethreshold", pp_graphs.phe_threshold);
  • core/subsurface-qt/SettingsObjectWrapper.h

    r7f8c3592 rbb31c775  
    7070class PartialPressureGasSettings : public QObject {
    7171        Q_OBJECT
    72         Q_PROPERTY(short show_po2       READ showPo2      WRITE setShowPo2      NOTIFY showPo2Changed)
    73         Q_PROPERTY(short show_pn2       READ showPn2      WRITE setShowPn2      NOTIFY showPn2Changed)
    74         Q_PROPERTY(short show_phe       READ showPhe      WRITE setShowPhe      NOTIFY showPheChanged)
    75         Q_PROPERTY(double po2_threshold READ po2Threshold WRITE setPo2Threshold NOTIFY po2ThresholdChanged)
    76         Q_PROPERTY(double pn2_threshold READ pn2Threshold WRITE setPn2Threshold NOTIFY pn2ThresholdChanged)
    77         Q_PROPERTY(double phe_threshold READ pheThreshold WRITE setPheThreshold NOTIFY pheThresholdChanged)
     72        Q_PROPERTY(short show_po2           READ showPo2         WRITE setShowPo2         NOTIFY showPo2Changed)
     73        Q_PROPERTY(short show_pn2           READ showPn2         WRITE setShowPn2         NOTIFY showPn2Changed)
     74        Q_PROPERTY(short show_phe           READ showPhe         WRITE setShowPhe         NOTIFY showPheChanged)
     75        Q_PROPERTY(double po2_threshold_min READ po2ThresholdMin WRITE setPo2ThresholdMin NOTIFY po2ThresholdMinChanged)
     76        Q_PROPERTY(double po2_threshold_max READ po2ThresholdMax WRITE setPo2ThresholdMax NOTIFY po2ThresholdMaxChanged)
     77        Q_PROPERTY(double pn2_threshold     READ pn2Threshold    WRITE setPn2Threshold    NOTIFY pn2ThresholdChanged)
     78        Q_PROPERTY(double phe_threshold     READ pheThreshold    WRITE setPheThreshold    NOTIFY pheThresholdChanged)
    7879
    7980public:
     
    8283        short showPn2() const;
    8384        short showPhe() const;
    84         double po2Threshold() const;
     85        double po2ThresholdMin() const;
     86        double po2ThresholdMax() const;
    8587        double pn2Threshold() const;
    8688        double pheThreshold() const;
     
    9092        void setShowPn2(short value);
    9193        void setShowPhe(short value);
    92         void setPo2Threshold(double value);
     94        void setPo2ThresholdMin(double value);
     95        void setPo2ThresholdMax(double value);
    9396        void setPn2Threshold(double value);
    9497        void setPheThreshold(double value);
     
    98101        void showPn2Changed(short value);
    99102        void showPheChanged(short value);
    100         void po2ThresholdChanged(double value);
     103        void po2ThresholdMaxChanged(double value);
     104        void po2ThresholdMinChanged(double value);
    101105        void pn2ThresholdChanged(double value);
    102106        void pheThresholdChanged(double value);
  • core/subsurfacestartup.c

    r7f8c3592 rbb31c775  
    2121                .pn2 = false,
    2222                .phe = false,
    23                 .po2_threshold = 1.6,
     23                .po2_threshold_min = 0.16,
     24                .po2_threshold_max = 1.6,
    2425                .pn2_threshold = 4.0,
    2526                .phe_threshold = 13.0,
  • desktop-widgets/preferences/preferences_graph.cpp

    r6305361 rbb31c775  
    2121{
    2222        ui->pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
    23         ui->po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
     23        ui->po2ThresholdMax->setValue(prefs.pp_graphs.po2_threshold_max);
     24        ui->po2ThresholdMin->setValue(prefs.pp_graphs.po2_threshold_min);
    2425        ui->pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
    2526        ui->maxpo2->setValue(prefs.modpO2);
     
    5758        auto pp_gas = SettingsObjectWrapper::instance()->pp_gas;
    5859        pp_gas->setPheThreshold(ui->pheThreshold->value());
    59         pp_gas->setPo2Threshold(ui->po2Threshold->value());
     60        pp_gas->setPo2ThresholdMax(ui->po2ThresholdMax->value());
     61        pp_gas->setPo2ThresholdMin(ui->po2ThresholdMin->value());
    6062        pp_gas->setPn2Threshold(ui->pn2Threshold->value());
    6163
  • desktop-widgets/preferences/preferences_graph.ui

    r2e2ccc1c rbb31c775  
    88    <y>0</y>
    99    <width>650</width>
    10     <height>581</height>
     10    <height>634</height>
    1111   </rect>
    1212  </property>
     
    2727        </property>
    2828        <property name="text">
    29          <string>Threshold for pO₂</string>
    30         </property>
    31        </widget>
    32       </item>
    33       <item row="0" column="1">
    34        <widget class="QDoubleSpinBox" name="po2Threshold">
     29         <string>Threshold for pO₂ (minimum, maximum)</string>
     30        </property>
     31       </widget>
     32      </item>
     33      <item row="1" column="1">
     34       <widget class="QDoubleSpinBox" name="pn2Threshold">
    3535        <property name="enabled">
    3636         <bool>true</bool>
     
    5050        </property>
    5151        <property name="text">
    52          <string>Threshold for pN₂</string>
    53         </property>
    54        </widget>
    55       </item>
    56       <item row="1" column="1">
    57        <widget class="QDoubleSpinBox" name="pn2Threshold">
     52         <string>Threshold for pN₂ (maximum only)</string>
     53        </property>
     54       </widget>
     55      </item>
     56      <item row="4" column="0">
     57       <widget class="QLabel" name="label_26">
     58        <property name="text">
     59         <string>CCR options:</string>
     60        </property>
     61       </widget>
     62      </item>
     63      <item row="2" column="1">
     64       <widget class="QDoubleSpinBox" name="pheThreshold">
     65        <property name="enabled">
     66         <bool>true</bool>
     67        </property>
     68        <property name="suffix">
     69         <string>bar</string>
     70        </property>
     71        <property name="singleStep">
     72         <double>0.100000000000000</double>
     73        </property>
     74       </widget>
     75      </item>
     76      <item row="3" column="1">
     77       <widget class="QDoubleSpinBox" name="maxpo2">
    5878        <property name="enabled">
    5979         <bool>true</bool>
     
    7393        </property>
    7494        <property name="text">
    75          <string>Threshold for pHe</string>
    76         </property>
    77        </widget>
    78       </item>
    79       <item row="2" column="1">
    80        <widget class="QDoubleSpinBox" name="pheThreshold">
    81         <property name="enabled">
    82          <bool>true</bool>
    83         </property>
    84         <property name="suffix">
    85          <string>bar</string>
    86         </property>
    87         <property name="singleStep">
    88          <double>0.100000000000000</double>
     95         <string>Threshold for pHe (maximum only)</string>
    8996        </property>
    9097       </widget>
     
    96103        </property>
    97104        <property name="text">
    98          <string>pO₂ in calculating MOD</string>
    99         </property>
    100        </widget>
    101       </item>
    102       <item row="3" column="1">
    103        <widget class="QDoubleSpinBox" name="maxpo2">
    104         <property name="enabled">
    105          <bool>true</bool>
    106         </property>
    107         <property name="suffix">
    108          <string>bar</string>
    109         </property>
    110         <property name="singleStep">
    111          <double>0.100000000000000</double>
    112         </property>
    113        </widget>
    114       </item>
    115       <item row="4" column="0">
    116        <widget class="QLabel" name="label_26">
    117         <property name="text">
    118          <string>CCR options:</string>
     105         <string>pO₂ in calculating MOD (maximum only )</string>
     106        </property>
     107       </widget>
     108      </item>
     109      <item row="5" column="1" colspan="2">
     110       <widget class="QCheckBox" name="show_ccr_setpoint">
     111        <property name="text">
     112         <string>Show setpoints when viewing pO₂</string>
    119113        </property>
    120114       </widget>
     
    143137       </widget>
    144138      </item>
    145       <item row="5" column="1" colspan="2">
    146        <widget class="QCheckBox" name="show_ccr_setpoint">
    147         <property name="text">
    148          <string>Show setpoints when viewing pO₂</string>
    149         </property>
    150        </widget>
    151       </item>
    152139      <item row="6" column="1" colspan="2">
    153140       <widget class="QCheckBox" name="show_ccr_sensors">
    154141        <property name="text">
    155142         <string>Show individual O₂ sensor values when viewing pO₂</string>
     143        </property>
     144       </widget>
     145      </item>
     146      <item row="0" column="2">
     147       <widget class="QDoubleSpinBox" name="po2ThresholdMax">
     148        <property name="enabled">
     149         <bool>true</bool>
     150        </property>
     151        <property name="suffix">
     152         <string>bar</string>
     153        </property>
     154        <property name="singleStep">
     155         <double>0.100000000000000</double>
     156        </property>
     157       </widget>
     158      </item>
     159      <item row="0" column="1">
     160       <widget class="QDoubleSpinBox" name="po2ThresholdMin">
     161        <property name="enabled">
     162         <bool>true</bool>
     163        </property>
     164        <property name="suffix">
     165         <string>bar</string>
     166        </property>
     167        <property name="singleStep">
     168         <double>0.010000000000000</double>
    156169        </property>
    157170       </widget>
     
    166179     </property>
    167180     <layout class="QGridLayout" name="gridLayout_3">
     181      <item row="2" column="1">
     182       <widget class="QLabel" name="label_VPMB">
     183        <property name="text">
     184         <string>Conservatism level</string>
     185        </property>
     186        <property name="alignment">
     187         <set>Qt::AlignCenter</set>
     188        </property>
     189       </widget>
     190      </item>
     191      <item row="1" column="0">
     192       <widget class="QLabel" name="label_22">
     193        <property name="enabled">
     194         <bool>true</bool>
     195        </property>
     196        <property name="text">
     197         <string>Algorithm for calculated ceiling:</string>
     198        </property>
     199       </widget>
     200      </item>
     201      <item row="3" column="0">
     202       <widget class="QRadioButton" name="buehlmann">
     203        <property name="text">
     204         <string>B&amp;ühlmann</string>
     205        </property>
     206        <property name="checked">
     207         <bool>true</bool>
     208        </property>
     209       </widget>
     210      </item>
    168211      <item row="0" column="0" colspan="2">
    169212       <widget class="QCheckBox" name="red_ceiling">
     
    176219       </widget>
    177220      </item>
    178       <item row="1" column="0">
    179        <widget class="QLabel" name="label_22">
    180         <property name="enabled">
    181          <bool>true</bool>
    182         </property>
    183         <property name="text">
    184          <string>Algorithm for calculated ceiling:</string>
    185         </property>
    186        </widget>
    187       </item>
    188       <item row="2" column="0">
    189        <widget class="QRadioButton" name="vpmb">
    190         <property name="text">
    191          <string>VPM-B</string>
    192         </property>
    193        </widget>
    194       </item>
    195       <item row="2" column="1">
    196        <widget class="QLabel" name="label_VPMB">
    197         <property name="text">
    198          <string>Conservatism level</string>
     221      <item row="5" column="4">
     222       <widget class="QSpinBox" name="pscrfactor">
     223        <property name="suffix">
     224         <string/>
     225        </property>
     226        <property name="prefix">
     227         <string>1:</string>
     228        </property>
     229       </widget>
     230      </item>
     231      <item row="3" column="3">
     232       <widget class="QLabel" name="label_GFhigh">
     233        <property name="text">
     234         <string>GFHigh</string>
    199235        </property>
    200236        <property name="alignment">
    201237         <set>Qt::AlignCenter</set>
     238        </property>
     239       </widget>
     240      </item>
     241      <item row="5" column="2">
     242       <widget class="QDoubleSpinBox" name="psro2rate">
     243        <property name="suffix">
     244         <string>ℓ/min</string>
     245        </property>
     246        <property name="decimals">
     247         <number>3</number>
     248        </property>
     249       </widget>
     250      </item>
     251      <item row="3" column="2">
     252       <widget class="QSpinBox" name="gflow">
     253        <property name="suffix">
     254         <string>%</string>
     255        </property>
     256        <property name="minimum">
     257         <number>1</number>
     258        </property>
     259        <property name="maximum">
     260         <number>150</number>
     261        </property>
     262       </widget>
     263      </item>
     264      <item row="5" column="1">
     265       <widget class="QLabel" name="MetabolicRate">
     266        <property name="text">
     267         <string>Metabolic rate O₂</string>
     268        </property>
     269        <property name="alignment">
     270         <set>Qt::AlignCenter</set>
     271        </property>
     272       </widget>
     273      </item>
     274      <item row="5" column="3">
     275       <widget class="QLabel" name="label_28">
     276        <property name="text">
     277         <string>Dilution ratio</string>
     278        </property>
     279        <property name="alignment">
     280         <set>Qt::AlignCenter</set>
     281        </property>
     282       </widget>
     283      </item>
     284      <item row="4" column="2" colspan="2">
     285       <widget class="QCheckBox" name="gf_low_at_maxdepth">
     286        <property name="text">
     287         <string>GFLow at max. depth</string>
    202288        </property>
    203289       </widget>
     
    216302       </widget>
    217303      </item>
    218       <item row="3" column="0">
    219        <widget class="QRadioButton" name="buehlmann">
    220         <property name="text">
    221          <string>Bühlmann</string>
    222         </property>
    223         <property name="checked">
    224          <bool>true</bool>
    225         </property>
    226        </widget>
    227       </item>
    228       <item row="3" column="3">
    229        <widget class="QLabel" name="label_GFhigh">
    230         <property name="text">
    231          <string>GFHigh</string>
     304      <item row="5" column="0">
     305       <widget class="QLabel" name="pSCR">
     306        <property name="text">
     307         <string>pSCR options:</string>
     308        </property>
     309       </widget>
     310      </item>
     311      <item row="2" column="0">
     312       <widget class="QRadioButton" name="vpmb">
     313        <property name="text">
     314         <string>&amp;VPM-B</string>
     315        </property>
     316       </widget>
     317      </item>
     318      <item row="3" column="4">
     319       <widget class="QSpinBox" name="gfhigh">
     320        <property name="suffix">
     321         <string>%</string>
     322        </property>
     323        <property name="minimum">
     324         <number>1</number>
     325        </property>
     326        <property name="maximum">
     327         <number>150</number>
     328        </property>
     329       </widget>
     330      </item>
     331      <item row="3" column="1">
     332       <widget class="QLabel" name="label_GFlow">
     333        <property name="text">
     334         <string>GFLow</string>
    232335        </property>
    233336        <property name="alignment">
    234337         <set>Qt::AlignCenter</set>
    235         </property>
    236        </widget>
    237       </item>
    238       <item row="3" column="4">
    239        <widget class="QSpinBox" name="gfhigh">
    240         <property name="suffix">
    241          <string>%</string>
    242         </property>
    243         <property name="minimum">
    244          <number>1</number>
    245         </property>
    246         <property name="maximum">
    247          <number>150</number>
    248         </property>
    249        </widget>
    250       </item>
    251       <item row="3" column="1">
    252        <widget class="QLabel" name="label_GFlow">
    253         <property name="text">
    254          <string>GFLow</string>
    255         </property>
    256         <property name="alignment">
    257          <set>Qt::AlignCenter</set>
    258         </property>
    259        </widget>
    260       </item>
    261       <item row="3" column="2">
    262        <widget class="QSpinBox" name="gflow">
    263         <property name="suffix">
    264          <string>%</string>
    265         </property>
    266         <property name="minimum">
    267          <number>1</number>
    268         </property>
    269         <property name="maximum">
    270          <number>150</number>
    271         </property>
    272        </widget>
    273       </item>
    274       <item row="4" column="2" colspan="2">
    275        <widget class="QCheckBox" name="gf_low_at_maxdepth">
    276         <property name="text">
    277          <string>GFLow at max. depth</string>
    278         </property>
    279        </widget>
    280       </item>
    281       <item row="5" column="0">
    282        <widget class="QLabel" name="pSCR">
    283         <property name="text">
    284          <string>pSCR options:</string>
    285         </property>
    286        </widget>
    287       </item>
    288       <item row="5" column="1">
    289        <widget class="QLabel" name="MetabolicRate">
    290         <property name="text">
    291          <string>Metabolic rate O₂</string>
    292         </property>
    293         <property name="alignment">
    294          <set>Qt::AlignCenter</set>
    295         </property>
    296        </widget>
    297       </item>
    298       <item row="5" column="2">
    299        <widget class="QDoubleSpinBox" name="psro2rate">
    300         <property name="suffix">
    301          <string>ℓ/min</string>
    302         </property>
    303         <property name="decimals">
    304          <number>3</number>
    305         </property>
    306        </widget>
    307       </item>
    308       <item row="5" column="3">
    309        <widget class="QLabel" name="label_28">
    310         <property name="text">
    311          <string>Dilution ratio</string>
    312         </property>
    313         <property name="alignment">
    314          <set>Qt::AlignCenter</set>
    315         </property>
    316        </widget>
    317       </item>
    318       <item row="5" column="4">
    319        <widget class="QSpinBox" name="pscrfactor">
    320         <property name="suffix">
    321          <string/>
    322         </property>
    323         <property name="prefix">
    324          <string>1:</string>
    325338        </property>
    326339       </widget>
     
    368381 </widget>
    369382 <tabstops>
    370   <tabstop>po2Threshold</tabstop>
    371383  <tabstop>pn2Threshold</tabstop>
    372384  <tabstop>pheThreshold</tabstop>
  • profile-widget/profilewidget2.cpp

    rbd0c99d rbb31c775  
    352352        CREATE_PP_GAS(pn2GasItem, PN2, PN2, PN2_ALERT, &prefs.pp_graphs.pn2_threshold);
    353353        CREATE_PP_GAS(pheGasItem, PHE, PHE, PHE_ALERT, &prefs.pp_graphs.phe_threshold);
    354         CREATE_PP_GAS(po2GasItem, PO2, PO2, PO2_ALERT, &prefs.pp_graphs.po2_threshold);
    355         CREATE_PP_GAS(o2SetpointGasItem, O2SETPOINT, PO2_ALERT, PO2_ALERT, &prefs.pp_graphs.po2_threshold);
    356         CREATE_PP_GAS(ccrsensor1GasItem, CCRSENSOR1, CCRSENSOR1, PO2_ALERT, &prefs.pp_graphs.po2_threshold);
    357         CREATE_PP_GAS(ccrsensor2GasItem, CCRSENSOR2, CCRSENSOR2, PO2_ALERT, &prefs.pp_graphs.po2_threshold);
    358         CREATE_PP_GAS(ccrsensor3GasItem, CCRSENSOR3, CCRSENSOR3, PO2_ALERT, &prefs.pp_graphs.po2_threshold);
     354        CREATE_PP_GAS(po2GasItem, PO2, PO2, PO2_ALERT, &prefs.pp_graphs.po2_threshold_max);
     355        CREATE_PP_GAS(o2SetpointGasItem, O2SETPOINT, PO2_ALERT, PO2_ALERT, &prefs.pp_graphs.po2_threshold_max);
     356        CREATE_PP_GAS(ccrsensor1GasItem, CCRSENSOR1, CCRSENSOR1, PO2_ALERT, &prefs.pp_graphs.po2_threshold_max);
     357        CREATE_PP_GAS(ccrsensor2GasItem, CCRSENSOR2, CCRSENSOR2, PO2_ALERT, &prefs.pp_graphs.po2_threshold_max);
     358        CREATE_PP_GAS(ccrsensor3GasItem, CCRSENSOR3, CCRSENSOR3, PO2_ALERT, &prefs.pp_graphs.po2_threshold_max);
     359
    359360#undef CREATE_PP_GAS
    360361#ifndef SUBSURFACE_MOBILE
     362
    361363        // Visibility Connections
    362364        connect(SettingsObjectWrapper::instance()->pp_gas, &PartialPressureGasSettings::showPheChanged, pheGasItem, &PartialPressureGasItem::setVisible);
Note: See TracChangeset for help on using the changeset viewer.