aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Arrskog <topfs2@xbmc.org>2013-04-02 00:31:28 -0700
committerTobias Arrskog <topfs2@xbmc.org>2013-04-02 00:31:28 -0700
commit7008e3561de5064f5cd9d902ba742c271d9e6efa (patch)
tree9cb81204f815b1c42c8a1dbb91accff295bf8643
parent6737e7411926da2b5e0b8a842e4c62ddbd11253d (diff)
parent2f8398025dcaf52f606fd8655c4e24788e14bbef (diff)
Merge pull request #2500 from topfs2/powermanagerinteraction
[PowerManagement] Made busy dialog open when something issues suspend, h...
-rw-r--r--xbmc/powermanagement/PowerManager.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/xbmc/powermanagement/PowerManager.cpp b/xbmc/powermanagement/PowerManager.cpp
index ca94f49034..0756b1e1b1 100644
--- a/xbmc/powermanagement/PowerManager.cpp
+++ b/xbmc/powermanagement/PowerManager.cpp
@@ -31,6 +31,8 @@
#include "interfaces/AnnouncementManager.h"
#include "guilib/LocalizeStrings.h"
#include "guilib/GraphicContext.h"
+#include "guilib/GUIWindowManager.h"
+#include "dialogs/GUIDialogBusy.h"
#include "dialogs/GUIDialogKaiToast.h"
#if defined(TARGET_DARWIN)
@@ -137,25 +139,58 @@ void CPowerManager::SetDefaults()
bool CPowerManager::Powerdown()
{
- return CanPowerdown() ? m_instance->Powerdown() : false;
+ if (CanPowerdown() && m_instance->Powerdown())
+ {
+ CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
+ if (dialog)
+ dialog->Show();
+
+ return true;
+ }
+
+ return false;
}
bool CPowerManager::Suspend()
{
- return CanSuspend() ? m_instance->Suspend() : false;
+ if (CanSuspend() && m_instance->Suspend())
+ {
+ CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
+ if (dialog)
+ dialog->Show();
+
+ return true;
+ }
+
+ return false;
}
bool CPowerManager::Hibernate()
{
- return CanHibernate() ? m_instance->Hibernate() : false;
+ if (CanHibernate() && m_instance->Hibernate())
+ {
+ CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
+ if (dialog)
+ dialog->Show();
+
+ return true;
+ }
+
+ return false;
}
bool CPowerManager::Reboot()
{
bool success = CanReboot() ? m_instance->Reboot() : false;
if (success)
+ {
CAnnouncementManager::Announce(System, "xbmc", "OnRestart");
+ CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
+ if (dialog)
+ dialog->Show();
+ }
+
return success;
}
@@ -209,6 +244,10 @@ void CPowerManager::OnWake()
// reset out timers
g_application.ResetShutdownTimers();
+ CGUIDialogBusy* dialog = (CGUIDialogBusy*)g_windowManager.GetWindow(WINDOW_DIALOG_BUSY);
+ if (dialog)
+ dialog->Close();
+
#if defined(HAS_SDL) || defined(TARGET_WINDOWS)
if (g_Windowing.IsFullScreen())
{