// A time of day, stored as a decimal hour. // // SliderRow would render 17.5 as "17.50", which is not how anyone reads a // clock. This is the same control with the readout formatted as a time, so the // night light schedule says "5:30 PM" rather than a number you have to convert. // // Honours the 24-hour clock preference, because a user who has asked for 18:30 // everywhere else should not be shown 6:30 PM here. import QtQuick import qs.config import qs.services SliderRow { id: root // SliderRow renders `unit` after the number; a time needs the whole readout // replaced, so the formatting is done here instead. function display(value: real): string { const hour = Math.floor(value); const minute = Math.round((value - hour) * 60); const padded = String(minute).padStart(2, "0"); if (Settings.use24Hour) return `${String(hour).padStart(2, "0")}:${padded}`; const suffix = hour < 12 ? "AM" : "PM"; const twelve = hour % 12 === 0 ? 12 : hour % 12; return `${twelve}:${padded} ${suffix}`; } }