Changeset 876b479 in subsurface


Ignore:
Timestamp:
May 6, 2017, 1:49:36 PM (5 months ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
92d24a2
Parents:
38b9185
git-author:
Dirk Hohndel <dirk@…> (05/06/17 13:44:22)
git-committer:
Dirk Hohndel <dirk@…> (05/06/17 13:49:36)
Message:

Wire up duration units preference UI

Now we track the preference, but we don't act on it, yet.

Signed-off-by: Dirk Hohndel <dirk@…>

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • core/prefs-macros.h

    r6399eaf r876b479  
    99        if (v.isValid())                                            \
    1010                prefs.units.field = (v.toInt() == (t)) ? (t) : (f); \
     11        else                                                        \
     12                prefs.units.field = default_prefs.units.field
     13
     14#define GET_UNIT3(name, field, f, l, type)                          \
     15        v = s.value(QString(name));                                 \
     16        if (v.isValid() && v.toInt() >= (f) && v.toInt() <= (l))    \
     17                prefs.units.field = (type)v.toInt();                \
    1118        else                                                        \
    1219                prefs.units.field = default_prefs.units.field
  • core/subsurface-qt/SettingsObjectWrapper.cpp

    rb368ecd r876b479  
    16271627}
    16281628
     1629int UnitsSettings::durationUnits() const
     1630{
     1631        return prefs.units.duration_units;
     1632}
     1633
    16291634QString UnitsSettings::unitSystem() const
    16301635{
     
    17041709        prefs.units.vertical_speed_time = (units::TIME) value;
    17051710        emit verticalSpeedTimeChanged(value);
     1711}
     1712
     1713void UnitsSettings::setDurationUnits(int value)
     1714{
     1715        if (value == prefs.units.duration_units)
     1716                return;
     1717        QSettings s;
     1718        s.beginGroup(group);
     1719        s.setValue("duration_units", value);
     1720        prefs.units.duration_units = (units::DURATION) value;
     1721        emit durationUnitChanged(value);
    17061722}
    17071723
     
    21812197        }
    21822198        GET_UNIT("vertical_speed_time", vertical_speed_time, units::MINUTES, units::SECONDS);
     2199        GET_UNIT3("duration_units", duration_units, units::MIXED, units::ALWAYS_HOURS, units::DURATION);
    21832200        GET_BOOL("coordinates", coordinates_traditional);
    21842201        s.endGroup();
  • core/subsurface-qt/SettingsObjectWrapper.h

    rb368ecd r876b479  
    512512        Q_PROPERTY(bool coordinates_traditional   READ coordinatesTraditional WRITE setCoordinatesTraditional NOTIFY coordinatesTraditionalChanged)
    513513        Q_PROPERTY(int vertical_speed_time READ verticalSpeedTime    WRITE setVerticalSpeedTime    NOTIFY verticalSpeedTimeChanged)
     514        Q_PROPERTY(int duration_units          READ durationUnits        WRITE setDurationUnits         NOTIFY durationUnitChanged)
    514515
    515516public:
     
    521522        int weight() const;
    522523        int verticalSpeedTime() const;
     524        int durationUnits() const;
    523525        QString unitSystem() const;
    524526        bool coordinatesTraditional() const;
     
    531533        void setWeight(int value);
    532534        void setVerticalSpeedTime(int value);
     535        void setDurationUnits(int value);
    533536        void setUnitSystem(const QString& value);
    534537        void setCoordinatesTraditional(bool value);
     
    543546        void unitSystemChanged(const QString& value);
    544547        void coordinatesTraditionalChanged(bool value);
     548        void durationUnitChanged(int value);
    545549private:
    546550        const QString group = QStringLiteral("Units");
  • core/units.h

    rb368ecd r876b479  
    256256                MINUTES
    257257        } vertical_speed_time;
     258        enum DURATION {
     259                MIXED,
     260                MINUTES_ONLY,
     261                ALWAYS_HOURS
     262        } duration_units;
    258263};
    259264
     
    265270 * And kg instead of g.
    266271 */
    267 #define SI_UNITS                                                                                                                         \
    268         {                                                                                                                                \
    269                 .length = METERS, .volume = LITER, .pressure = BAR, .temperature = CELSIUS, .weight = KG, .vertical_speed_time = MINUTES \
    270         }
    271 
    272 #define IMPERIAL_UNITS                                                                                                                    \
    273         {                                                                                                                                 \
    274                 .length = FEET, .volume = CUFT, .pressure = PSI, .temperature = FAHRENHEIT, .weight = LBS, .vertical_speed_time = MINUTES \
    275         }
     272#define SI_UNITS                                                                                           \
     273        {                                                                                                  \
     274                .length = METERS, .volume = LITER, .pressure = BAR, .temperature = CELSIUS, .weight = KG,  \
     275                .vertical_speed_time = MINUTES, .duration_units = MIXED                                    \
     276        }
     277
     278#define IMPERIAL_UNITS                                                                                     \
     279        {                                                                                                  \
     280                .length = FEET, .volume = CUFT, .pressure = PSI, .temperature = FAHRENHEIT, .weight = LBS, \
     281                .vertical_speed_time = MINUTES, .duration_units = MIXED                                    \
     282        }
    276283
    277284#ifdef __cplusplus
  • desktop-widgets/preferences/preferences_units.cpp

    r9021a44 r876b479  
    4141        ui->vertical_speed_minutes->setChecked(prefs.units.vertical_speed_time == units::MINUTES);
    4242        ui->vertical_speed_seconds->setChecked(prefs.units.vertical_speed_time == units::SECONDS);
     43        ui->duration_mixed->setChecked(prefs.units.duration_units == units::MIXED);
     44        ui->duration_no_hours->setChecked(prefs.units.duration_units == units::MINUTES_ONLY);
     45        ui->duration_show_hours->setChecked(prefs.units.duration_units == units::ALWAYS_HOURS);
    4346}
    4447
     
    5760        units->setVerticalSpeedTime(ui->vertical_speed_minutes->isChecked() ? units::MINUTES : units::SECONDS);
    5861        units->setCoordinatesTraditional(ui->gpsTraditional->isChecked());
     62        units->setDurationUnits(ui->duration_mixed->isChecked() ? units::MIXED : (ui->duration_no_hours->isChecked() ? units::MINUTES_ONLY : units::ALWAYS_HOURS));
    5963}
Note: See TracChangeset for help on using the changeset viewer.