Ticket #3711: mythvideo-bookmark.2.diff

File mythvideo-bookmark.2.diff, 3.3 KB (added by wstewart@…, 12 years ago)

updated for trunk. Will not work with 0.21-fixes.

  • programs/mythfrontend/main.cpp

    diff -aurp -x '*.orig' mythtv-orig/programs/mythfrontend/main.cpp mythtv/programs/mythfrontend/main.cpp
    old new int internal_play_media(const QString &m 
    711711        pginfo->subtitle = QString( "%1: %2" ).arg(QObject::tr("Directed By")).arg(director);
    712712
    713713    pginfo->title = title;
     714   
     715    long long pos = 0;
    714716
    715717    if (pginfo->pathname.startsWith("dvd:"))
    716718    {
    int internal_play_media(const QString &m 
    720722            gContext->GetNumSetting("DVDBookmarkPrompt", 0))
    721723        {
    722724            RingBuffer *tmprbuf = new RingBuffer(pginfo->pathname, false);
     725           
     726            if (!tmprbuf)
     727            {
     728                delete pginfo;
     729                return res;             
     730            }
     731     
    723732            QString name;
    724733            QString serialid;
    725734            if (tmprbuf->isDVD() &&
    int internal_play_media(const QString &m 
    729738                if (!fields.empty())
    730739                {
    731740                    QStringList::Iterator it = fields.begin();
    732                     long long pos = (long long)
    733                         ((*++it).toLongLong() & 0xffffffffLL);
    734                     if (pos > 0)
    735                     {
    736                         QString msg = QObject::tr("DVD contains a bookmark");
    737                         QString btn0msg = QObject::tr("Play from bookmark");
    738                         QString btn1msg = QObject::tr("Play from beginning");
    739 
    740                         DialogCode ret = MythPopupBox::Show2ButtonPopup(
    741                             gContext->GetMainWindow(),
    742                             "", msg,
    743                             btn0msg,
    744                             btn1msg,
    745                             kDialogCodeButton0);
    746                         if (kDialogCodeButton1 == ret)
    747                             pginfo->setIgnoreBookmark(true);
    748                         else if (kDialogCodeRejected == ret)
    749                         {
    750                             delete tmprbuf;
    751                             delete pginfo;
    752                             return res;
    753                         }
    754                     }
     741                    pos = (long long)((*++it).toLongLong() & 0xffffffffLL);
    755742                }
    756743            }
    757744            delete tmprbuf;
    758745        }
    759746    }
     747    else
     748    {
     749        bool allowdvdbookmark = gContext->GetNumSetting("EnableDVDBookmark", 0);
     750        pginfo->setIgnoreBookmark(!allowdvdbookmark);
     751        if (allowdvdbookmark && gContext->GetNumSetting("DVDBookmarkPrompt", 0))
     752            pos = pginfo->GetBookmark();
     753    }
     754
     755    if (pos > 0)
     756    {
     757        QString msg = QObject::tr("DVD contains a bookmark");
     758        QString btn0msg = QObject::tr("Play from bookmark");
     759        QString btn1msg = QObject::tr("Play from beginning");
     760
     761        DialogCode ret = MythPopupBox::Show2ButtonPopup(
     762            gContext->GetMainWindow(),
     763            "", msg,
     764            btn0msg,
     765            btn1msg,
     766            kDialogCodeButton0);
     767        if (kDialogCodeButton1 == ret)
     768            pginfo->setIgnoreBookmark(true);
     769        else if (kDialogCodeRejected == ret)
     770        {
     771            delete pginfo;
     772            return res;
     773        }
     774    }
    760775
    761776    TV::StartTV(pginfo);
    762777