⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialogs_provider.cpp

📁 VLC Player Source Code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}void DialogsProvider::openNetDialog(){    openDialog( OPEN_NETWORK_TAB );}void DialogsProvider::openCaptureDialog(){    openDialog( OPEN_CAPTURE_TAB );}/* Same as the open one, but force the enqueue */void DialogsProvider::PLAppendDialog(){    OpenDialog::getInstance( p_intf->p_sys->p_mi, p_intf, false, OPEN_AND_ENQUEUE)                            ->showTab( OPEN_FILE_TAB );}void DialogsProvider::MLAppendDialog(){    OpenDialog::getInstance( p_intf->p_sys->p_mi, p_intf, false,                            OPEN_AND_ENQUEUE, false, false )                                    ->showTab( OPEN_FILE_TAB );}/** * Simple open ***/QStringList DialogsProvider::showSimpleOpen( QString help,                                             int filters,                                             QString path ){    QString fileTypes = "";    if( filters & EXT_FILTER_MEDIA ) {        ADD_FILTER_MEDIA( fileTypes );    }    if( filters & EXT_FILTER_VIDEO ) {        ADD_FILTER_VIDEO( fileTypes );    }    if( filters & EXT_FILTER_AUDIO ) {        ADD_FILTER_AUDIO( fileTypes );    }    if( filters & EXT_FILTER_PLAYLIST ) {        ADD_FILTER_PLAYLIST( fileTypes );    }    if( filters & EXT_FILTER_SUBTITLE ) {        ADD_FILTER_SUBTITLE( fileTypes );    }    ADD_FILTER_ALL( fileTypes );    fileTypes.replace(QString(";*"), QString(" *"));    return QFileDialog::getOpenFileNames( NULL,        help.isNull() ? qfu(I_OP_SEL_FILES ) : help,        path.isNull() ? qfu( p_intf->p_sys->psz_filepath ) : path,        fileTypes );}/** * Open a file, * pl helps you to choose from playlist or media library, * go to start or enqueue **/void DialogsProvider::addFromSimple( bool pl, bool go){    QStringList files = DialogsProvider::showSimpleOpen();    int i = 0;    foreach( QString file, files )    {        const char * psz_utf8 = qtu( file );        playlist_Add( THEPL, psz_utf8, NULL,                      go ? ( PLAYLIST_APPEND | ( i ? 0 : PLAYLIST_GO ) |                                               ( i ? PLAYLIST_PREPARSE : 0 ) )                         : ( PLAYLIST_APPEND | PLAYLIST_PREPARSE ),                      PLAYLIST_END,                      pl ? true : false, false );        i++;    }}void DialogsProvider::simpleOpenDialog(){    addFromSimple( true, true ); /* Playlist and Go */}void DialogsProvider::simplePLAppendDialog(){    addFromSimple( true, false );}void DialogsProvider::simpleMLAppendDialog(){    addFromSimple( false, false );}/* Directory *//** * Open a directory, * pl helps you to choose from playlist or media library, * go to start or enqueue **/static void openDirectory( intf_thread_t *p_intf, bool pl, bool go ){    QString dir = QFileDialog::getExistingDirectory( 0, qtr("Open Directory") );    if (!dir.isEmpty()) {        input_item_t *p_input = input_item_NewExt( THEPL,                                        qtu( "directory://" + dir ), NULL,                                        0, NULL, -1 );        /* FIXME: playlist_AddInput() can fail */        playlist_AddInput( THEPL, p_input,                       go ? ( PLAYLIST_APPEND | PLAYLIST_GO ) : PLAYLIST_APPEND,                       PLAYLIST_END, pl, pl_Unlocked );        if( !go )            input_Read( THEPL, p_input, true );        vlc_gc_decref( p_input );    }}void DialogsProvider::PLOpenDir(){    openDirectory( p_intf, true, true );}void DialogsProvider::PLAppendDir(){    openDirectory( p_intf, true, false );}void DialogsProvider::MLAppendDir(){    openDirectory( p_intf, false , false );}/**************** * Playlist     * ****************/void DialogsProvider::openAPlaylist(){    QStringList files = showSimpleOpen( qtr( "Open playlist file" ),                                        EXT_FILTER_PLAYLIST );    foreach( QString file, files )    {        playlist_Import( THEPL, qtu(file) );    }}void DialogsProvider::saveAPlaylist(){    QFileDialog *qfd = new QFileDialog( NULL,                                   qtr( "Choose a filename to save playlist" ),                                   qfu( p_intf->p_sys->psz_filepath ),                                   qtr( "XSPF playlist (*.xspf);; " ) +                                   qtr( "M3U playlist (*.m3u);; Any (*.*) " ) );    qfd->setFileMode( QFileDialog::AnyFile );    qfd->setAcceptMode( QFileDialog::AcceptSave );    qfd->setConfirmOverwrite( true );    if( qfd->exec() == QDialog::Accepted )    {        if( qfd->selectedFiles().count() > 0 )        {            static const char psz_xspf[] = "export-xspf",                              psz_m3u[] = "export-m3u";            const char *psz_module;            QString file = qfd->selectedFiles().first();            QString filter = qfd->selectedFilter();            if( file.contains( ".xsp" ) ||                ( filter.contains( ".xspf" ) && !file.contains( ".m3u" ) ) )            {                psz_module = psz_xspf;                if( !file.contains( ".xsp" ) )                    file.append( ".xspf" );            }            else            {                psz_module = psz_m3u;                if( !file.contains( ".m3u" ) )                    file.append( ".m3u" );            }            playlist_Export( THEPL, qtu( file ), THEPL->p_local_category,                             psz_module);        }    }    delete qfd;}/**************************************************************************** * Sout emulation ****************************************************************************/void DialogsProvider::streamingDialog( QWidget *parent, QString mrl,                                       bool b_transcode_only ){    SoutDialog *s = SoutDialog::getInstance( parent, p_intf, b_transcode_only );    if( s->exec() == QDialog::Accepted )    {        msg_Dbg( p_intf, "Sout mrl %s", qta( s->getMrl() ) );        /* Just do it */        int i_len = strlen( qtu( s->getMrl() ) ) + 10;        char *psz_option = (char*)malloc( i_len );        snprintf( psz_option, i_len - 1, "%s", qtu( s->getMrl() ) );        playlist_AddExt( THEPL, qtu( mrl ), "Streaming",                         PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END,                        -1, &psz_option, 1, true, pl_Unlocked );    }}void DialogsProvider::openThenStreamingDialogs(){    OpenDialog::getInstance( p_intf->p_sys->p_mi, p_intf, false, OPEN_AND_STREAM )                                ->showTab( OPEN_FILE_TAB );}void DialogsProvider::openThenTranscodingDialogs(){    OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, false, OPEN_AND_SAVE )                                ->showTab( OPEN_FILE_TAB );}/**************************************************************************** * Menus / Interaction ****************************************************************************/void DialogsProvider::menuAction( QObject *data ){    QVLCMenu::DoAction( p_intf, data );}void DialogsProvider::menuUpdateAction( QObject *data ){    MenuFunc * f = qobject_cast<MenuFunc *>(data);    f->doFunc( p_intf );}void DialogsProvider::SDMenuAction( QString data ){    char *psz_sd = strdup( qtu( data ) );    if( !playlist_IsServicesDiscoveryLoaded( THEPL, psz_sd ) )        playlist_ServicesDiscoveryAdd( THEPL, psz_sd );    else        playlist_ServicesDiscoveryRemove( THEPL, psz_sd );    free( psz_sd );}void DialogsProvider::doInteraction( intf_dialog_args_t *p_arg ){    InteractionDialog *qdialog;    interaction_dialog_t *p_dialog = p_arg->p_dialog;    switch( p_dialog->i_action )    {    case INTERACT_NEW:        qdialog = new InteractionDialog( p_intf, p_dialog );        p_dialog->p_private = (void*)qdialog;        if( !(p_dialog->i_status == ANSWERED_DIALOG) )            qdialog->show();        break;    case INTERACT_UPDATE:        qdialog = (InteractionDialog*)(p_dialog->p_private);        if( qdialog )            qdialog->update();        else        {            /* The INTERACT_NEW message was forgotten               so we must create the dialog and update it*/            qdialog = new InteractionDialog( p_intf, p_dialog );            p_dialog->p_private = (void*)qdialog;            if( !(p_dialog->i_status == ANSWERED_DIALOG) )                qdialog->show();            if( qdialog )                qdialog->update();        }        break;    case INTERACT_HIDE:        msg_Dbg( p_intf, "Hide the Interaction Dialog" );        qdialog = (InteractionDialog*)(p_dialog->p_private);        if( qdialog )            qdialog->hide();        p_dialog->i_status = HIDDEN_DIALOG;        break;    case INTERACT_DESTROY:        msg_Dbg( p_intf, "Destroy the Interaction Dialog" );        qdialog = (InteractionDialog*)(p_dialog->p_private);        if( !p_dialog->i_flags & DIALOG_NONBLOCKING_ERROR )            delete qdialog;        p_dialog->i_status = DESTROYED_DIALOG;        break;    }}void DialogsProvider::loadSubtitlesFile(){    input_thread_t *p_input = THEMIM->getInput();    if( !p_input )        return;    input_item_t *p_item = input_GetItem( p_input );    if( !p_item )        return;    char *path = input_item_GetURI( p_item );    if( !path )        path = strdup( "" );    char *sep = strrchr( path, DIR_SEP_CHAR );    if( sep )        *sep = '\0';    QStringList qsl = showSimpleOpen( qtr( "Open subtitles file" ),                                      EXT_FILTER_SUBTITLE,                                      path );    free( path );    QString qsFile;    foreach( qsFile, qsl )    {        if( !input_AddSubtitles( p_input, qtu( qsFile ), true ) )            msg_Warn( p_intf, "unable to load subtitles from '%s'",                      qtu( qsFile ) );    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -