diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 364002b1c..c59e2e750 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -3869,6 +3869,9 @@ int CNeutrinoApp::exec(CMenuTarget* parent, const std::string & actionKey) return menu_return::RETURN_EXIT_ALL; } else if(actionKey=="restart") { + //usage of slots from any classes + OnBeforeRestart(); + if (recordingstatus) DisplayErrorMessage(g_Locale->getText(LOCALE_SERVICEMENU_RESTART_REFUSED_RECORDING)); else { diff --git a/src/neutrino.h b/src/neutrino.h index 0a704617b..51b000e51 100644 --- a/src/neutrino.h +++ b/src/neutrino.h @@ -39,7 +39,7 @@ #include "gui/personalize.h" #include "gui/user_menue.h" #include - +#include #include #define ANNOUNCETIME (1 * 60) @@ -57,7 +57,7 @@ class CFrameBuffer; class CConfigFile; class CScanSettings; -class CNeutrinoApp : public CMenuTarget, CChangeObserver +class CNeutrinoApp : public CMenuTarget, CChangeObserver, sigc::trackable { public: enum @@ -228,6 +228,8 @@ public: void stopPlayBack(bool lock = false); bool adjustToChannelID(const t_channel_id channel_id); void screensaver(bool); + //signal/event handler before restart of neutrino gui + sigc::signal OnBeforeRestart; }; #endif