Commit 629242be authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Qt4: simplify and improve playlist item folder exploration

Unfortunately, there is currently no way to determine whether the
MRL scheme uses file paths (e.g. file, dir, vdr, zip...) or not, so
we always try.

Anyway, the folder browsing menu item should not be visible at all when
the item is not a local file. So there is no need to deal with that
failure care here.
parent 00411e8a
......@@ -1045,39 +1045,29 @@ void PLModel::popupSave()
void PLModel::popupExplore()
{
char *uri = NULL, *path = NULL;
PL_LOCK;
playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_popup_item );
if( p_item )
{
input_item_t *p_input = p_item->p_input;
char *psz_meta = input_item_GetURI( p_input );
PL_UNLOCK;
if( psz_meta )
{
const char *psz_access;
const char *psz_demux;
char *psz_path;
input_SplitMRL( &psz_access, &psz_demux, &psz_path, psz_meta );
if( !EMPTY_STR( psz_access ) && (
!strncasecmp( psz_access, "file", 4 ) ||
!strncasecmp( psz_access, "dire", 4 ) ))
{
#if defined( WIN32 ) || defined( __OS2__ )
/* Qt openURL doesn't know to open files that starts with a / or \ */
if( psz_path[0] == '/' || psz_path[0] == '\\' )
psz_path++;
#endif
uri = input_item_GetURI( p_input );
}
PL_UNLOCK;
QFileInfo info( qfu( decode_URI( psz_path ) ) );
QDesktopServices::openUrl(
QUrl::fromLocalFile( info.absolutePath() ) );
}
free( psz_meta );
}
if( uri != NULL )
{
path = make_path( uri );
free( uri );
}
else
PL_UNLOCK;
if( path == NULL )
return;
QFileInfo info( qfu( path ) );
free( path );
QDesktopServices::openUrl( QUrl::fromLocalFile( info.absolutePath() ) );
}
void PLModel::popupAddNode()
......
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