Skip to content

Commit fbb8dc5

Browse files
cagnuleinclaude
andcommitted
Merge master: add horizon_treadmill_omega_z alongside app_language
Both branches added a new property at the end of the settings list. Keep both: horizon_treadmill_omega_z (from master) and app_language (from this branch). Update settingCount to 947. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 parents 6c13101 + 78256d9 commit fbb8dc5

9 files changed

Lines changed: 79 additions & 13 deletions

File tree

src/Home.qml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,11 @@ HomeForm {
285285
}
286286
text: value
287287
horizontalAlignment: Text.AlignHCenter
288+
width: Math.max(50, parent.width - (writable ? 100 * settings.ui_zoom / 100 : 12 * settings.ui_zoom / 100))
289+
height: 58 * settings.ui_zoom / 100
288290
font.pointSize: valueFontSize * settings.ui_zoom / 100
291+
fontSizeMode: Text.Fit
292+
minimumPointSize: 10
289293
font.bold: true
290294
visible: !largeButton
291295

@@ -303,7 +307,11 @@ HomeForm {
303307
}
304308
text: secondLine
305309
horizontalAlignment: Text.AlignHCenter
310+
width: Math.max(50, parent.width - 12 * settings.ui_zoom / 100)
311+
height: 24 * settings.ui_zoom / 100
306312
font.pointSize: settings.theme_tile_secondline_textsize * settings.ui_zoom / 100
313+
fontSizeMode: Text.Fit
314+
minimumPointSize: 7
307315
font.bold: false
308316
visible: !largeButton
309317

@@ -316,11 +324,15 @@ HomeForm {
316324
top: myIcon.top
317325
}
318326
font.bold: true
319-
font.pointSize: labelFontSize
327+
font.pointSize: labelFontSize
328+
fontSizeMode: Text.Fit
329+
minimumPointSize: 8
320330
color: "white"
321331
text: name
322332
anchors.left: parent.left
323333
anchors.leftMargin: 55 * settings.ui_zoom / 100
334+
width: Math.max(40, parent.width - 61 * settings.ui_zoom / 100)
335+
height: 40 * settings.ui_zoom / 100
324336
anchors.topMargin: 20 * settings.ui_zoom / 100
325337
visible: !largeButton
326338

src/devices/bluetooth.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1927,6 +1927,7 @@ void bluetooth::deviceDiscovered(const QBluetoothDeviceInfo &device) {
19271927
(b.name().toUpper().startsWith("GLT") && deviceHasService(b, QBluetoothUuid((quint16)0x1826))) ||
19281928
(b.name().toUpper().startsWith("SPORT01-") && deviceHasService(b, QBluetoothUuid((quint16)0x1826))) || // Labgrey Magnetic Exercise Bike https://www.amazon.co.uk/dp/B0CXMF1NPY?_encoding=UTF8&psc=1&ref=cm_sw_r_cp_ud_dp_PE420HA7RD7WJBZPN075&ref_=cm_sw_r_cp_ud_dp_PE420HA7RD7WJBZPN075&social_share=cm_sw_r_cp_ud_dp_PE420HA7RD7WJBZPN075&skipTwisterOG=1
19291929
(b.name().toUpper().startsWith("FS-YK-")) ||
1930+
(b.name().toUpper().startsWith("T600E_")) ||
19301931
(b.name().toUpper().startsWith("SPEEDBIKE S2")) || // Maxxus Speedbike S2
19311932
(b.name().toUpper().startsWith("B56-")) || // Titan Life B56 bike
19321933
((b.name().toUpper().startsWith(QStringLiteral("HT")) && (b.name().length() == 10) &&

src/devices/ftmsrower/ftmsrower.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,9 @@ void ftmsrower::characteristicChanged(const QLowEnergyCharacteristic &characteri
447447
double watt =
448448
((double)(((uint16_t)((uint8_t)newValue.at(index + 1)) << 8) | (uint16_t)((uint8_t)newValue.at(index))));
449449
index += 2;
450-
if (!filterWattNull || watt != 0) {
450+
if (WDK_PACE_POWER && instantPace > 0 && instantPace != 65535 && Cadence.value() > 0) {
451+
m_watt = rower::calculateWattsFromPace(instantPace);
452+
} else if (!filterWattNull || watt != 0) {
451453
if((DFIT_L_R && Cadence.value() > 0) || !DFIT_L_R)
452454
m_watt = watt;
453455
}
@@ -833,6 +835,7 @@ void ftmsrower::deviceDiscovered(const QBluetoothDeviceInfo &device) {
833835
device.address().toString() + ')');
834836
{
835837
bluetoothDevice = device;
838+
const QString deviceName = device.name().trimmed().toUpper();
836839

837840
if (device.name().trimmed().toUpper().startsWith("WHIPR")) {
838841
filterWattNull = true;
@@ -877,6 +880,11 @@ void ftmsrower::deviceDiscovered(const QBluetoothDeviceInfo &device) {
877880
} else if (device.name().toUpper().startsWith(QStringLiteral("DOMYOS-ROW-"))) {
878881
DOMYOS = true;
879882
qDebug() << "DOMYOS found!";
883+
} else if (deviceName.size() >= 7 && deviceName.startsWith(QStringLiteral("WDK")) &&
884+
deviceName.at(3).isDigit() && deviceName.at(4).isDigit() &&
885+
deviceName.at(5).isDigit() && deviceName.at(6).isDigit()) {
886+
WDK_PACE_POWER = true;
887+
qDebug() << "WDK rower found! estimating wattage from pace";
880888
}
881889

882890
m_control = QLowEnergyController::createCentral(bluetoothDevice, this);

src/devices/ftmsrower/ftmsrower.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class ftmsrower : public rower {
7474
bool ICONSOLE_PLUS = false;
7575
bool FITSHOW = false;
7676
bool DOMYOS = false;
77+
bool WDK_PACE_POWER = false;
7778

7879
bool WATER_ROWER = false;
7980
bool DFIT_L_R = false;

src/devices/horizontreadmill/horizontreadmill.cpp

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,10 @@ void horizontreadmill::btinit() {
105105
horizon_treadmill_profile_users.append(
106106
settings.value(QZSettings::horizon_treadmill_profile_user5, QZSettings::default_horizon_treadmill_profile_user5)
107107
.toString());
108+
bool horizon_treadmill_omega_z =
109+
settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
108110
bool horizon_paragon_x =
109-
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool();
111+
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool() || horizon_treadmill_omega_z;
110112
bool miles_unit =
111113
settings.value(QZSettings::miles_unit, QZSettings::default_miles_unit).toBool();
112114
static const QBluetoothUuid merachUnlockCharId(
@@ -927,10 +929,12 @@ void horizontreadmill::update() {
927929
/*initDone*/) {
928930

929931
QSettings settings;
932+
bool horizon_treadmill_omega_z =
933+
settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
930934
bool horizon_treadmill_7_8 =
931-
settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool();
935+
settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool() || horizon_treadmill_omega_z;
932936
bool horizon_paragon_x =
933-
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool();
937+
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool() || horizon_treadmill_omega_z;
934938
bool treadmill_direct_distance =
935939
settings.value(QZSettings::treadmill_direct_distance, QZSettings::default_treadmill_direct_distance).toBool();
936940
update_metrics(!powerReceivedFromPowerSensor, watts(settings.value(QZSettings::weight, QZSettings::default_weight).toFloat()));
@@ -1208,8 +1212,10 @@ bool horizontreadmill::checkIfForceSpeedNeeding(double requestSpeed) {
12081212
void horizontreadmill::forceSpeed(double requestSpeed) {
12091213
QSettings settings;
12101214
const double miles_conversion = 0.621371;
1215+
bool horizon_treadmill_omega_z =
1216+
settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
12111217
bool horizon_paragon_x =
1212-
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool();
1218+
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool() || horizon_treadmill_omega_z;
12131219

12141220
if (gattCustomService) {
12151221
if (!horizon_paragon_x) {
@@ -1291,8 +1297,10 @@ void horizontreadmill::forceSpeed(double requestSpeed) {
12911297
// example frame: 55aa3800030603005d0b0a0000
12921298
void horizontreadmill::forceIncline(double requestIncline) {
12931299
QSettings settings;
1300+
bool horizon_treadmill_omega_z =
1301+
settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
12941302
bool horizon_paragon_x =
1295-
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool();
1303+
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool() || horizon_treadmill_omega_z;
12961304

12971305
if(tunturi_t60_treadmill)
12981306
Inclination = treadmillInclinationOverride(requestIncline);
@@ -1845,7 +1853,8 @@ void horizontreadmill::characteristicChanged(const QLowEnergyCharacteristic &cha
18451853

18461854
} else if (characteristic.uuid() == QBluetoothUuid((quint16)0x2ACD)) {
18471855
bool horizon_treadmill_7_0_at_24 = settings.value(QZSettings::horizon_treadmill_7_0_at_24, QZSettings::default_horizon_treadmill_7_0_at_24).toBool();
1848-
bool horizon_treadmill_7_8 = settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool();
1856+
bool horizon_treadmill_omega_z = settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
1857+
bool horizon_treadmill_7_8 = settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool() || horizon_treadmill_omega_z;
18491858
bool miles = settings.value(QZSettings::miles_unit, QZSettings::default_miles_unit).toBool();
18501859
lastPacket = newValue;
18511860

@@ -2885,10 +2894,12 @@ bool horizontreadmill::autoPauseWhenSpeedIsZero() {
28852894

28862895
bool horizontreadmill::autoStartWhenSpeedIsGreaterThenZero() {
28872896
QSettings settings;
2897+
bool horizon_treadmill_omega_z =
2898+
settings.value(QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z).toBool();
28882899
bool horizon_treadmill_7_8 =
2889-
settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool();
2900+
settings.value(QZSettings::horizon_treadmill_7_8, QZSettings::default_horizon_treadmill_7_8).toBool() || horizon_treadmill_omega_z;
28902901
bool horizon_paragon_x =
2891-
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool();
2902+
settings.value(QZSettings::horizon_paragon_x, QZSettings::default_horizon_paragon_x).toBool() || horizon_treadmill_omega_z;
28922903

28932904
// the horizon starts with a strange speed, since that i can auto start (maybe the best way to solve this
28942905
// is to understand why it's starting with this strange speed)

src/qzsettings.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,6 +1096,7 @@ const QString QZSettings::proform_carbon_tlx_v84_314_treadmill = QStringLiteral(
10961096
const QString QZSettings::proform_carbon_tl_PFTL59723_6 = QStringLiteral("proform_carbon_tl_PFTL59723_6");
10971097
const QString QZSettings::proform_treadmill_cst_505_pftl59420_0 = QStringLiteral("proform_treadmill_cst_505_pftl59420_0");
10981098
const QString QZSettings::applewatch_as_treadmill_speed = QStringLiteral("applewatch_as_treadmill_speed");
1099+
const QString QZSettings::horizon_treadmill_omega_z = QStringLiteral("horizon_treadmill_omega_z");
10991100

11001101
const QString QZSettings::shortcuts_enabled = QStringLiteral("shortcuts_enabled");
11011102
const QString QZSettings::shortcut_speed_plus = QStringLiteral("shortcut_speed_plus");
@@ -2209,6 +2210,7 @@ QVariant allSettings[allSettingsCount][2] = {
22092210
{QZSettings::proform_carbon_tl_PFTL59723_6, QZSettings::default_proform_carbon_tl_PFTL59723_6},
22102211
{QZSettings::proform_treadmill_cst_505_pftl59420_0, QZSettings::default_proform_treadmill_cst_505_pftl59420_0},
22112212
{QZSettings::applewatch_as_treadmill_speed, QZSettings::default_applewatch_as_treadmill_speed},
2213+
{QZSettings::horizon_treadmill_omega_z, QZSettings::default_horizon_treadmill_omega_z},
22122214
};
22132215

22142216
void QZSettings::qDebugAllSettings(bool showDefaults) {

src/qzsettings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3176,6 +3176,9 @@ class QZSettings {
31763176
static const QString applewatch_as_treadmill_speed;
31773177
static constexpr bool default_applewatch_as_treadmill_speed = false;
31783178

3179+
static const QString horizon_treadmill_omega_z;
3180+
static constexpr bool default_horizon_treadmill_omega_z = false;
3181+
31793182
/**
31803183
* @brief Write the QSettings values using the constants from this namespace.
31813184
* @param showDefaults Optionally indicates if the default should be shown with the key.

src/settings-catalog.json

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"$schema": "https://qdomyos-zwift.local/settings-catalog.schema.json",
33
"schemaVersion": 1,
44
"format": "qdomyos-zwift-settings-catalog",
5-
"settingCount": 946,
5+
"settingCount": 947,
66
"pages": [
77
{
88
"key": "page_custom_gear_table",
@@ -13453,6 +13453,19 @@
1345313453
"defaultExpression": "\"\"",
1345413454
"options": null
1345513455
},
13456+
{
13457+
"key": "horizon_treadmill_omega_z",
13458+
"name": "Omega Z",
13459+
"description": null,
13460+
"parent": "Horizon Treadmill Options",
13461+
"type": "boolean",
13462+
"qmlType": "bool",
13463+
"control": "switch",
13464+
"visible": true,
13465+
"defaultValue": false,
13466+
"defaultExpression": "false",
13467+
"options": null
13468+
},
1345613469
{
1345713470
"key": "app_language",
1345813471
"name": "App Language",

src/settings.qml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,8 +1683,9 @@ import Qt.labs.platform 1.1
16831683
property string shortcut_preset_powerzone_6: ""
16841684
property string shortcut_preset_powerzone_7: ""
16851685
property string shortcut_lap: ""
1686-
property string shortcut_start_stop: ""
1687-
1686+
property string shortcut_start_stop: ""
1687+
property bool horizon_treadmill_omega_z: false
1688+
16881689
property string app_language: "auto"
16891690
}
16901691

@@ -10617,6 +10618,20 @@ import Qt.labs.platform 1.1
1061710618
Layout.fillWidth: true
1061810619
onClicked: { settings.horizon_treadmill_7_8 = checked; window.settings_restart_to_apply = true; }
1061910620
}
10621+
IndicatorOnlySwitch {
10622+
id: horizonOmegaZTreadmillDelegate
10623+
text: qsTr("Omega Z")
10624+
spacing: 0
10625+
bottomPadding: 0
10626+
topPadding: 0
10627+
rightPadding: 0
10628+
leftPadding: 0
10629+
clip: false
10630+
checked: settings.horizon_treadmill_omega_z
10631+
Layout.alignment: Qt.AlignLeft | Qt.AlignTop
10632+
Layout.fillWidth: true
10633+
onClicked: { settings.horizon_treadmill_omega_z = checked; window.settings_restart_to_apply = true; }
10634+
}
1062010635

1062110636
IndicatorOnlySwitch {
1062210637
id: horizonTreadmillDisablePauseDelegate

0 commit comments

Comments
 (0)