Commit 3b6b39ac authored by Erwan Tulou's avatar Erwan Tulou

skins2: fix UTF8 conversion issues

The issue is twofold:
- converting filenames that are already UTF8 encoded from the Qt dialog box
- missing UTF8-to-locale conversion for filename passed as parameter to vlc

These bugs accounted for skins with name or path containing multibyte
characters not being able to load successfully on Windows.

This fixes trac #14843
parent 9565350a
...@@ -42,7 +42,7 @@ void Dialogs::showChangeSkinCB( intf_dialog_args_t *pArg ) ...@@ -42,7 +42,7 @@ void Dialogs::showChangeSkinCB( intf_dialog_args_t *pArg )
{ {
// Create a change skin command // Create a change skin command
CmdChangeSkin *pCmd = CmdChangeSkin *pCmd =
new CmdChangeSkin( pIntf, sFromLocale( pArg->psz_results[0] ) ); new CmdChangeSkin( pIntf, pArg->psz_results[0] );
// Push the command in the asynchronous command queue // Push the command in the asynchronous command queue
AsyncQueue *pQueue = AsyncQueue::instance( pIntf ); AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
...@@ -66,7 +66,7 @@ void Dialogs::showPlaylistLoadCB( intf_dialog_args_t *pArg ) ...@@ -66,7 +66,7 @@ void Dialogs::showPlaylistLoadCB( intf_dialog_args_t *pArg )
{ {
// Create a Playlist Load command // Create a Playlist Load command
CmdPlaylistLoad *pCmd = CmdPlaylistLoad *pCmd =
new CmdPlaylistLoad( pIntf, sFromLocale( pArg->psz_results[0] ) ); new CmdPlaylistLoad( pIntf, pArg->psz_results[0] );
// Push the command in the asynchronous command queue // Push the command in the asynchronous command queue
AsyncQueue *pQueue = AsyncQueue::instance( pIntf ); AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
......
...@@ -92,7 +92,7 @@ ThemeRepository::ThemeRepository( intf_thread_t *pIntf ): SkinObject( pIntf ) ...@@ -92,7 +92,7 @@ ThemeRepository::ThemeRepository( intf_thread_t *pIntf ): SkinObject( pIntf )
free( psz_current ); free( psz_current );
// check if skins exists and is readable // check if skins exists and is readable
bool b_readable = !ifstream( current.c_str() ).fail(); bool b_readable = !ifstream( sToLocale(current).c_str() ).fail();
msg_Dbg( getIntf(), "requested skins %s is %s accessible", msg_Dbg( getIntf(), "requested skins %s is %s accessible",
current.c_str(), b_readable ? "" : "NOT" ); current.c_str(), b_readable ? "" : "NOT" );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment