Ticket #3711: mythvideo-bookmark.diff

File mythvideo-bookmark.diff, 3.2 KB (added by Bill <level42@…>, 12 years ago)

Updated for SVN 15223

  • mythtv/programs/mythfrontend/main.cpp

    old new int internal_play_media(const QString &m 
    696696        pginfo->subtitle = QString( "%1: %2" ).arg(QObject::tr("Directed By")).arg(director);
    697697   
    698698    pginfo->title = title;
     699   
     700    long long pos = 0;
    699701
    700702    if (pginfo->pathname.startsWith("dvd:"))
    701703    {
    int internal_play_media(const QString &m 
    705707            gContext->GetNumSetting("DVDBookmarkPrompt", 0))
    706708        {
    707709            RingBuffer *tmprbuf = new RingBuffer(pginfo->pathname, false);
     710           
     711            if (!tmprbuf)
     712            {
     713                delete pginfo;
     714                return res;             
     715            }
     716     
    708717            QString name;
    709718            QString serialid;
    710719            if (tmprbuf->isDVD() &&
    int internal_play_media(const QString &m 
    714723                if (!fields.empty())
    715724                {
    716725                    QStringList::Iterator it = fields.begin();
    717                     long long pos = (long long)(atoi((*++it).ascii()) & 0xffffffffLL);
    718                     if (pos > 0)
    719                     {
    720                         QString msg = QObject::tr("DVD contains a bookmark");
    721                         QString btn0msg = QObject::tr("Play from bookmark");
    722                         QString btn1msg = QObject::tr("Play from beginning");
    723        
    724                         DialogCode ret = MythPopupBox::Show2ButtonPopup(
    725                             gContext->GetMainWindow(),
    726                             "", msg,
    727                             btn0msg,
    728                             btn1msg,
    729                             kDialogCodeButton0);
    730                         if (kDialogCodeButton1 == ret)
    731                             pginfo->setIgnoreBookmark(true);
    732                         else if (kDialogCodeRejected == ret)
    733                         {
    734                             delete tmprbuf;
    735                             delete pginfo;
    736                             return res;
    737                         }
    738                     }
     726                    pos = (long long)(atoi((*++it).ascii()) & 0xffffffffLL);
    739727                }
    740728            }
    741729            delete tmprbuf;
    742730        }
    743731    }
     732    else
     733    {
     734        bool allowdvdbookmark = gContext->GetNumSetting("EnableDVDBookmark", 0);
     735        pginfo->setIgnoreBookmark(!allowdvdbookmark);
     736        if (allowdvdbookmark && gContext->GetNumSetting("DVDBookmarkPrompt", 0))
     737            pos = pginfo->GetBookmark();
     738    }
     739   
     740    if (pos > 0)
     741    {
     742       QString msg = QObject::tr("Video contains a bookmark");
     743       QString btn0msg = QObject::tr("Play from bookmark");
     744       QString btn1msg = QObject::tr("Play from beginning");
     745   
     746       DialogCode ret = MythPopupBox::Show2ButtonPopup(
     747              gContext->GetMainWindow(),
     748              "", msg,
     749              btn0msg,
     750              btn1msg,
     751              kDialogCodeButton0);
     752       if (kDialogCodeButton1 == ret)
     753          pginfo->setIgnoreBookmark(true);
     754       else if (kDialogCodeRejected == ret)
     755       {
     756          delete pginfo;
     757          return res;
     758       }
     759    }
    744760
    745761    TV::StartTV(pginfo);
    746762