Skip to content

Commit

Permalink
Merge pull request #10560 from tamland/splash_text_pt2
Browse files Browse the repository at this point in the history
splash text improvements
  • Loading branch information
tamland committed Sep 28, 2016
2 parents f75cc2c + 32554c2 commit 31886da
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 21 deletions.
5 changes: 3 additions & 2 deletions xbmc/Application.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1142,9 +1142,10 @@ bool CApplication::Initialize()

g_windowManager.CreateWindows();

CSplash::GetInstance().Show(g_localizeStrings.Get(24151));
m_confirmSkinChange = false;
m_incompatibleAddons = CAddonSystemSettings::GetInstance().MigrateAddons();
m_incompatibleAddons = CAddonSystemSettings::GetInstance().MigrateAddons([](){
CSplash::GetInstance().Show(g_localizeStrings.Get(24151));
});
m_confirmSkinChange = true;
CSplash::GetInstance().Show();

Expand Down
4 changes: 3 additions & 1 deletion xbmc/addons/AddonSystemSettings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ bool CAddonSystemSettings::UnsetActive(const AddonPtr& addon)
}


std::vector<std::string> CAddonSystemSettings::MigrateAddons()
std::vector<std::string> CAddonSystemSettings::MigrateAddons(std::function<void(void)> onMigrate)
{
auto getIncompatible = [](){
VECADDONS incompatible;
Expand All @@ -141,6 +141,8 @@ std::vector<std::string> CAddonSystemSettings::MigrateAddons()

if (CSettings::GetInstance().GetInt(CSettings::SETTING_ADDONS_AUTOUPDATES) == AUTO_UPDATES_ON)
{
onMigrate();

if (CRepositoryUpdater::GetInstance().CheckForUpdates())
CRepositoryUpdater::GetInstance().Await();

Expand Down
8 changes: 6 additions & 2 deletions xbmc/addons/AddonSystemSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "addons/IAddon.h"
#include "settings/lib/ISettingCallback.h"
#include <functional>
#include <string>

namespace ADDON
Expand Down Expand Up @@ -48,9 +49,12 @@ class CAddonSystemSettings : public ISettingCallback
bool UnsetActive(const AddonPtr& addon);

/*!
* Attempt to migrate installed addons. Returns a list of addons that was modified.
* Check compatibility of installed addons and attempt to migrate.
*
* @param onMigrate Called when a long running migration task takes place.
* @return list of addons that was modified.
*/
std::vector<std::string> MigrateAddons();
std::vector<std::string> MigrateAddons(std::function<void(void)> onMigrate);

private:
CAddonSystemSettings();
Expand Down
29 changes: 13 additions & 16 deletions xbmc/utils/Splash.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@ void CSplash::Show()

void CSplash::Show(const std::string& message)
{
if (g_advancedSettings.m_splashImage)
if (!g_advancedSettings.m_splashImage)
return;

if (!m_image)
{
if (!m_image)
{
std::string splashImage = "special://home/media/Splash.png";
if (!XFILE::CFile::Exists(splashImage))
splashImage = "special://xbmc/media/Splash.png";
std::string splashImage = "special://home/media/Splash.png";
if (!XFILE::CFile::Exists(splashImage))
splashImage = "special://xbmc/media/Splash.png";

m_image = std::unique_ptr<CGUIImage>(new CGUIImage(0, 0, 0, 0, g_graphicsContext.GetWidth(),
g_graphicsContext.GetHeight(), CTextureInfo(splashImage)));
m_image->SetAspectRatio(CAspectRatio::AR_SCALE);
}
m_image = std::unique_ptr<CGUIImage>(new CGUIImage(0, 0, 0, 0, g_graphicsContext.GetWidth(),
g_graphicsContext.GetHeight(), CTextureInfo(splashImage)));
m_image->SetAspectRatio(CAspectRatio::AR_SCALE);
}

g_graphicsContext.Lock();
Expand All @@ -69,12 +69,9 @@ void CSplash::Show(const std::string& message)
//render splash image
g_Windowing.BeginRender();

if (m_image)
{
m_image->AllocResources();
m_image->Render();
m_image->FreeResources();
}
m_image->AllocResources();
m_image->Render();
m_image->FreeResources();

if (!message.empty())
{
Expand Down

0 comments on commit 31886da

Please sign in to comment.