diff --git a/src/driver/lcd4l.cpp b/src/driver/lcd4l.cpp index dccac69ec..c590b1d04 100644 --- a/src/driver/lcd4l.cpp +++ b/src/driver/lcd4l.cpp @@ -167,6 +167,8 @@ void CLCD4l::StartLCD4l() { if (exec_initscript("lcd4linux", "start", "systemctl")) OnAfterStart(); + else + OnAfterError(); } } @@ -188,6 +190,8 @@ void CLCD4l::StopLCD4l() if (exec_initscript("lcd4linux", "stop", "systemctl")) OnAfterStop(); + else + OnAfterError(); } void CLCD4l::SwitchLCD4l() @@ -881,6 +885,8 @@ void CLCD4l::ParseInfo(uint64_t parseID, bool newID, bool firstRun) OnBeforeRestart(); if (exec_initscript("lcd4linux", "restart", "systemctl")) OnAfterRestart(); + else + OnAfterError(); } } } diff --git a/src/driver/lcd4l.h b/src/driver/lcd4l.h index 64c6cc12f..f63e2866e 100644 --- a/src/driver/lcd4l.h +++ b/src/driver/lcd4l.h @@ -79,12 +79,13 @@ class CLCD4l // use signal/slot handlers // That is helping to keep the GUI code away from code inside ./src/driver. - sigc::signal OnBeforeRestart, - OnAfterRestart, - OnBeforeStart, - OnAfterStart, - OnBeforeStop, - OnAfterStop; + sigc::signal OnBeforeStart, + OnAfterStart, + OnBeforeStop, + OnAfterStop, + OnBeforeRestart, + OnAfterRestart, + OnAfterError; private: std::thread *thrLCD4l; diff --git a/src/gui/lcd4l_setup.cpp b/src/gui/lcd4l_setup.cpp index 2a1968a64..bd08a197a 100644 --- a/src/gui/lcd4l_setup.cpp +++ b/src/gui/lcd4l_setup.cpp @@ -328,4 +328,6 @@ void CLCD4lSetup::connectSlots() CLCD4l::getInstance()->OnAfterStart.connect(sl_remove); CLCD4l::getInstance()->OnAfterStop.connect(sl_remove); CLCD4l::getInstance()->OnAfterRestart.connect(sl_remove); + + CLCD4l::getInstance()->OnAfterError.connect(sl_remove); }