Skip to content

Commit 4afa85f

Browse files
committed
feat: Add Display Date option to Standby settings
1 parent b0c2597 commit 4afa85f

14 files changed

Lines changed: 4689 additions & 2075 deletions

File tree

eez-ui/gaggimate.eez-project

Lines changed: 909 additions & 113 deletions
Large diffs are not rendered by default.

src/display/core/Settings.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ Settings::Settings() {
108108
standbyAnalogClock = preferences.getInt("sanalog", 1);
109109
standbyDigitalClock = preferences.getInt("sdigital", 1);
110110
standbyBinaryClock = preferences.getBool("sbinary", false);
111+
displayDate = preferences.getBool("sdate", false);
111112

112113
// Sunrise settings
113114
sunriseR = preferences.getInt("sr_r", 0);
@@ -459,6 +460,12 @@ void Settings::setStandbyBinaryClock(bool standby_binary_clock) {
459460
save();
460461
}
461462

463+
464+
void Settings::setDisplayDate(bool display_date){
465+
displayDate = display_date;
466+
save();
467+
}
468+
462469
void Settings::setHistoryIndex(int history_index) {
463470
historyIndex = history_index;
464471
save();
@@ -648,6 +655,7 @@ void Settings::doSave() {
648655
preferences.putInt("sanalog", standbyAnalogClock);
649656
preferences.putBool("sdigital", standbyDigitalClock);
650657
preferences.putBool("sbinary", standbyBinaryClock);
658+
preferences.putInt("sdate", displayDate);
651659

652660
// Sunrise Settings
653661
preferences.putString("sr_i", sunriseIdle);

src/display/core/Settings.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ class Settings {
9494
bool isMomentaryButtons() const { return momentaryButtons; }
9595
String getTimezone() const { return timezone; }
9696
bool isClock24hFormat() const { return clock24hFormat; }
97+
bool getDisplayDate() const { return displayDate; }
9798
String getSelectedProfile() const { return selectedProfile; }
9899
String getStartupProfile() const { return startupProfile; }
99100
const std::vector<String> &getFavoritedProfiles() const { return favoritedProfiles; }
@@ -211,6 +212,7 @@ class Settings {
211212
void setStandbyAnalogClock(int standby_analog_clock);
212213
void setStandbyDigitalClock(int standby_digital_clock);
213214
void setStandbyBinaryClock(bool standby_binary_clock);
215+
void setDisplayDate(bool display_date);
214216
void setHistoryIndex(int history_index);
215217
[[deprecated]]
216218
void setSunriseR(int sunrise_r);
@@ -304,6 +306,7 @@ class Settings {
304306
int standbyAnalogClock = 1;
305307
int standbyDigitalClock = 1;
306308
bool standbyBinaryClock = false;
309+
bool displayDate = true;
307310
// Sunrise settings
308311
int sunriseR = 0;
309312
int sunriseG = 0;

src/display/plugins/WebUIPlugin.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,7 @@ void WebUIPlugin::handleSettings(AsyncWebServerRequest *request) const {
689689
settings->setStandbyLogo(request->hasArg("standbyLogo"));
690690
settings->setStandbyStatus(request->hasArg("standbyStatus"));
691691
settings->setStandbyTouchIcon(request->hasArg("standbyTouchIcon"));
692+
settings->setDisplayDate(request->hasArg("displayDate"));
692693
if(request->hasArg("standbyDigitalClock"))
693694
settings->setStandbyDigitalClock(request->arg("standbyDigitalClock").toInt());
694695
if(request->hasArg("standbyAnalogClock"))
@@ -824,6 +825,7 @@ void WebUIPlugin::handleSettings(AsyncWebServerRequest *request) const {
824825
doc["standbyDigitalClock"] = settings.getStandbyDigitalClock();
825826
doc["standbyAnalogClock"] = settings.getStandbyAnalogClock();
826827
doc["standbyBinaryClock"] = settings.getStandbyBinaryClock();
828+
doc["displayDate"] = settings.getDisplayDate();
827829
doc["sunriseIdle"] = settings.getSunriseIdle();
828830
doc["sunriseActive"] = settings.getSunriseActive();
829831
doc["sunriseFinished"] = settings.getSunriseFinished();

src/display/ui/default/DefaultUI.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,12 +567,14 @@ void DefaultUI::updateSystemStatus() {
567567
systemStatus.standby_binary_clock(settings.getStandbyBinaryClock());
568568

569569

570-
//char timeBuf[12] = "";
570+
char timeBuf[40] = "";
571571
struct tm timeinfo;
572572
int hour, min, sec;
573573
if (getLocalTime(&timeinfo, 5)) {
574-
//const ::Settings &settings = controller->getSettings();
575-
//strftime(timeBuf, sizeof(timeBuf), settings.isClock24hFormat() ? "%H:%M" : "%I:%M %p", &timeinfo);
574+
const ::Settings &settings = controller->getSettings();
575+
if(settings.getDisplayDate())
576+
strftime(timeBuf, sizeof(timeBuf), "%A %d.%m.%Y", &timeinfo);
577+
576578
hour = timeinfo.tm_hour % 12;
577579
min = timeinfo.tm_min;
578580
sec = timeinfo.tm_sec;
@@ -581,6 +583,7 @@ void DefaultUI::updateSystemStatus() {
581583
time_container.min(min);
582584
time_container.sec(sec);
583585
time_container.time_in_minutes(hour * 60 + min);
586+
time_container.date(timeBuf);
584587
}
585588

586589
static void populateProfileInfo(ProfileInfoValue &info, const Profile &profile, bool isCurrent) {

src/display/ui/default/eez/.eez-project-build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"eez-flow.h",
66
"fonts.h",
77
"fonts/ui_font_montserrat_b_120.c",
8+
"fonts/ui_font_rolblox_18.c",
89
"fonts/ui_font_rolbox_90.c",
910
"fonts/ui_font_seg7_80.c",
1011
"images.c",

src/display/ui/default/eez/fonts.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ extern "C" {
1010
extern const lv_font_t ui_font_seg7_80;
1111
extern const lv_font_t ui_font_rolbox_90;
1212
extern const lv_font_t ui_font_montserrat_b_120;
13+
extern const lv_font_t ui_font_rolblox_18;
1314

1415
#ifndef EXT_FONT_DESC_T
1516
#define EXT_FONT_DESC_T

0 commit comments

Comments
 (0)