Ticket #3642: translate-key-presses_v2.diff

File translate-key-presses_v2.diff, 2.5 KB (added by Roo, 13 years ago)

updated patch to add filterJumpPoint parameter to translateKeyPress

  • mythtv/libs/libmythui/mythmainwindow.cpp

     
    718718
    719719bool MythMainWindow::TranslateKeyPress(const QString &context,
    720720                                       QKeyEvent *e, QStringList &actions,
    721                                        bool allowJumps)
     721                                       bool allowJumps,
     722                                       const QStringList &filteredJumpPoints)
    722723{
    723724    actions.clear();
    724725    int keynum = d->TranslateKeyNum(e);
    725 
     726    QString destination;
     727   
    726728    if (allowJumps &&
    727729        d->jumpMap.count(keynum) > 0 && d->exitmenucallback == NULL)
    728730    {
    729         d->exitingtomain = true;
    730         d->exitmenucallback = d->jumpMap[keynum]->callback;
    731         QApplication::postEvent(this, new ExitToMainMenuEvent());
    732         return false;
     731
     732        // Create iterator to retrieve jump destination
     733        QMap<int, JumpData*>::Iterator it;
     734        it = d->jumpMap.find(keynum);
     735
     736        // Retrieve jump destination
     737        if ( it != d->jumpMap.end())
     738        {
     739            JumpData *jd = it.data();
     740            destination = jd->destination;
     741        }
     742
     743        // If no match then setup jump point
     744        if (filteredJumpPoints.contains(destination) == 0)
     745        {
     746            d->exitingtomain = true;
     747            d->exitmenucallback = d->jumpMap[keynum]->callback;
     748            QApplication::postEvent(this, new ExitToMainMenuEvent());
     749            return false;
     750        }
    733751    }
    734752
    735753    bool retval = false;
     
    893911    }
    894912}
    895913
    896 
    897914void MythMainWindow::BindJump(const QString &destination, const QString &key)
    898915{
    899916    /* make sure the jump point exists */
  • mythtv/libs/libmythui/mythmainwindow.h

     
    6262    MythScreenStack *GetMainStack();
    6363
    6464    bool TranslateKeyPress(const QString &context, QKeyEvent *e,
    65                            QStringList &actions, bool allowJumps = true);
     65                           QStringList &actions, bool allowJumps = true,
     66                           const QStringList &filteredJumpPoints = QStringList());
    6667
    6768    void ClearKey(const QString &context, const QString &action);
    6869    void BindKey(const QString &context, const QString &action,