Ticket #3999: mythvideousability.diff

File mythvideousability.diff, 5.0 KB (added by davatar@…, 13 years ago)
  • mythvideo/mythvideo/videogallery.h

     
    5050    void updateView(QPainter *p);
    5151    void updateArrows(QPainter *p);
    5252    void updateSingleIcon(QPainter *p, int lx, int ly);
    53     void drawIcon(QPainter *p, GenericTree *curTreePos, int curPos, int xpos,
     53    bool drawIcon(QPainter *p, GenericTree *curTreePos, int curPos, int xpos,
    5454                  int ypos);
    5555
    5656    void positionIcon();
     
    8787
    8888    GenericTree *video_tree_root;
    8989    GenericTree *where_we_are;
     90
     91    bool updatedView;
     92    bool partialupdatedView;
    9093};
    9194
    9295#endif
  • mythvideo/mythvideo/imagecache.cpp

     
    131131            m_cache.push_back(*p->second);
    132132            m_cache.erase(p->second);
    133133            ret = *(p->second = --m_cache.end());
    134             VERBOSE(VB_GENERAL, QString("ImageCache hit for: %1")
     134            VERBOSE(VB_FILE, QString("ImageCache hit for: %1")
    135135                    .arg(image_file));
    136136        }
    137137        else
    138138        {
    139             VERBOSE(VB_GENERAL, QString("ImageCache miss for: %1")
     139            VERBOSE(VB_FILE, QString("ImageCache miss for: %1")
    140140                    .arg(image_file));
    141141
    142142            cache_entry_ptr cep(new cache_entry(image_file));
     
    164164            if (ret->scale_image.isNull() || ret->scale_mode != scale ||
    165165                    ret->scale_width != width || ret->scale_height != height)
    166166            {
    167                 VERBOSE(VB_GENERAL,
     167                VERBOSE(VB_FILE,
    168168                        QString("ImageCache miss for scale image: %1")
    169169                        .arg(image_file));
    170170                ret->scale_mode = scale;
     
    177177            }
    178178            else
    179179            {
    180                 VERBOSE(VB_GENERAL,
     180                VERBOSE(VB_FILE,
    181181                        QString("ImageCache hit for scale image: %1")
    182182                        .arg(image_file));
    183183            }
  • mythvideo/mythvideo/videogallery.cpp

     
    272272    // Draw all video icons
    273273    //
    274274
     275    updatedView = FALSE;
     276    partialupdatedView = FALSE;
     277
    275278    GenericTree *lparent = where_we_are->getParent();
    276279    if (!lparent)
    277280        return;
     
    299302
    300303            GenericTree* curTreePos = lparent->getChildAt(curPos,0);
    301304
    302             drawIcon(&tmp, curTreePos, curPos, xpos, ypos);
     305            if(drawIcon(&tmp, curTreePos, curPos, xpos, ypos))
     306                p->drawPixmap(pr.topLeft(), pix);
    303307
    304308            curPos++;
     309
     310            qApp->processEvents();
     311            if(updatedView)
     312                return;
     313
     314            if(partialupdatedView)
     315            {
     316                updateView(p);
     317                return;
     318            }
    305319        }
    306320    }
    307321
    308322    tmp.end();
    309323    p->drawPixmap(pr.topLeft(), pix); // redraw area
     324    updatedView = TRUE;
    310325}
    311326
    312327void VideoGallery::updateSingleIcon(QPainter *p, int lx, int ly)
     
    345360    p->drawPixmap(pr.topLeft(), pix); // redraw area
    346361}
    347362
    348 void VideoGallery::drawIcon(QPainter *p, GenericTree* curTreePos, int curPos,
     363bool VideoGallery::drawIcon(QPainter *p, GenericTree* curTreePos, int curPos,
    349364                            int xpos, int ypos)
    350365{
    351366    QString icon_file;
    352367    int yoffset = 0;
    353368    Metadata *meta = NULL;
     369    bool retVal = FALSE;
    354370
    355371    if (curTreePos->getInt() < 0) // directory
    356372    {
     
    437453
    438454    if (icon_file.length() && !isDefaultCoverFile(icon_file))
    439455    {
     456        if(!ImageCache::getImageCache().hitTest(icon_file))
     457            retVal = TRUE;
     458
    440459        const QPixmap *icon_image = ImageCache::getImageCache().
    441460                load(icon_file, int(thumbW - 2 * sw),
    442461                     int(thumbH - 2 * sh - yoffset),
     
    484503        for (int i = 0; i < 4; ++i)
    485504            ttype->Draw(p, i, 0);
    486505    }
     506
     507    return retVal;
    487508}
    488509
    489510void VideoGallery::doMenu(bool info)
     
    507528                                           SLOT(slotDoFilter()));
    508529            AddPopupViews();
    509530        }
    510 
     531        popup->addButton(tr("Increment Parental"), this, SLOT(shiftParental(1)));
    511532        popup->addButton(tr("Cancel"), this, SLOT(slotDoCancel()));
    512533
    513534        popup->ShowPopup(this, SLOT(slotDoCancel()));
     
    742763
    743764    if (topRow != oldRow)     // renew the whole screen
    744765    {
     766        update(arrowsRect);
    745767        update(viewRect);
    746768        update(textRect);
    747         update(arrowsRect);
     769
    748770    }
    749771    else                     // partial update only
    750772    {
     
    752774        updateSingleIcon(&p,prevCol,prevRow);
    753775        updateSingleIcon(&p,currCol,currRow);
    754776        updateText(&p);
     777        partialupdatedView = TRUE;
    755778    }
    756779}
    757780