#include "../src/os_loop.hpp"
#include "../src/theme.hpp"
#include "../src/theme_loader.hpp"
+#include "../src/theme_repository.hpp"
#include "../src/window_manager.hpp"
+#include "../src/vout_manager.hpp"
+#include "../src/vlcproc.hpp"
void CmdChangeSkin::execute()
pOldTheme->getWindowManager().hideAll();
}
+ VoutManager::instance( getIntf() )->saveVoutConfig();
+
ThemeLoader loader( getIntf() );
if( loader.load( m_file ) )
{
// Everything went well
msg_Info( getIntf(), "new theme successfully loaded (%s)",
m_file.c_str() );
- if( pOldTheme )
- {
- delete pOldTheme;
- }
+ delete pOldTheme;
+
+ // restore vout config
+ VoutManager::instance( getIntf() )->restoreVoutConfig( true );
}
else if( pOldTheme )
{
msg_Warn( getIntf(), "a problem occurred when loading the new theme,"
" restoring the previous one" );
getIntf()->p_sys->p_theme = pOldTheme;
+ VoutManager::instance( getIntf() )->restoreVoutConfig( false );
pOldTheme->getWindowManager().restoreVisibility();
}
else
CmdQuit cmd( getIntf() );
cmd.execute();
}
+
+ // update the repository
+ ThemeRepository::instance( getIntf() )->updateRepository();
}