Ticket #640: browse.patch

File browse.patch, 6.4 KB (added by anonymous, 18 years ago)
  • mythflix/mythflix.cpp

     
    5858    m_InColumn     = 0;
    5959    m_UISites      = 0;
    6060    m_UIArticles   = 0;
    61     m_TimerTimeout = 10*60*1000;
    6261
    6362    setNoErase();
    6463    loadTheme();
     
    8988            new UIListBtnTypeItem(m_UISites, site->name());
    9089        item->setData(site);
    9190    }
    92    
    93     // Now do the actual work
    94     m_RetrieveTimer = new QTimer(this);
    95     connect(m_RetrieveTimer, SIGNAL(timeout()),
    96             this, SLOT(slotRetrieveNews()));
    97     m_UpdateFreq = gContext->GetNumSetting("NewsUpdateFrequency", 30);
    98     m_RetrieveTimer->start(m_TimerTimeout, false);
    9991
     92   
     93    NewsSite* site = (NewsSite*) m_NewsSites.first();
     94    connect(site, SIGNAL(finished(NewsSite*)),
     95            this, SLOT(slotNewsRetrieved(NewsSite*)));
     96   
    10097    slotRetrieveNews();
    10198
    102     slotSiteSelected((NewsSite*) m_NewsSites.first());
    103 
    10499    netflixShopperId = gContext->GetSetting("NetflixShopperId");
    105100    std::cerr << "MythFlix: Using NetflixShopperId " << netflixShopperId << std::endl;
    106101
     
    109104
    110105MythFlix::~MythFlix()
    111106{
    112     m_RetrieveTimer->stop();
    113107    delete m_Theme;
    114108}
    115109
     
    412406            cursorLeft();
    413407        else if (action == "RIGHT")
    414408            cursorRight();
    415         else if (action == "RETRIEVENEWS")
    416             slotRetrieveNews();
    417409        else if(action == "SELECT")
    418410            slotViewArticle();
    419         else if (action == "CANCEL")
    420         {
    421             cancelRetrieve();
    422         }
    423411        else
    424412            handled = false;
    425413    }
     
    493481    if (m_NewsSites.count() == 0)
    494482        return;
    495483
    496     cancelRetrieve();
    497 
    498     m_RetrieveTimer->stop();
    499 
    500484    for (NewsSite* site = m_NewsSites.first(); site; site = m_NewsSites.next())
    501485    {
    502         site->stop();
    503         connect(site, SIGNAL(finished(NewsSite*)),
    504                 this, SLOT(slotNewsRetrieved(NewsSite*)));
     486        site->retrieve();
    505487    }
    506488
    507     for (NewsSite* site = m_NewsSites.first(); site; site = m_NewsSites.next())
    508     {
    509         if (site->timeSinceLastUpdate() > m_UpdateFreq)
    510             site->retrieve();
    511         else
    512             processAndShowNews(site);
    513     }
    514 
    515     m_RetrieveTimer->start(m_TimerTimeout, false);
    516489}
    517490
    518491void MythFlix::slotNewsRetrieved(NewsSite* site)
    519492{
    520     unsigned int updated = site->lastUpdated().toTime_t();
    521 
    522     MSqlQuery query(MSqlQuery::InitCon());
    523     query.prepare("UPDATE netflix SET updated = :UPDATED "
    524                   "WHERE name = :NAME ;");
    525     query.bindValue(":UPDATED", updated);
    526     query.bindValue(":NAME", site->name().utf8());
    527     if (!query.exec() || !query.isActive())
    528         MythContext::DBError("news update time", query);
    529 
    530493    processAndShowNews(site);
    531494}
    532495
    533 void MythFlix::cancelRetrieve()
    534 {
    535     for (NewsSite* site = m_NewsSites.first(); site;
    536          site = m_NewsSites.next()) {
    537         site->stop();
    538         processAndShowNews(site);
    539     }
    540 }
    541 
    542496void MythFlix::processAndShowNews(NewsSite* site)
    543497{
    544498    if (!site)
     
    565519        update(m_InfoRect);
    566520    }
    567521}
    568 void MythFlix::slotSiteSelected(NewsSite* site)
    569 {
    570     if(!site)
    571         return;
    572        
    573     m_UIArticles->Reset();
    574522
    575     for (NewsArticle* article = site->articleList().first(); article;
    576          article = site->articleList().next()) {
    577         UIListBtnTypeItem* item =
    578             new UIListBtnTypeItem(m_UIArticles, article->title());
    579         item->setData(article);
    580     }
    581 
    582     update(m_SitesRect);
    583     update(m_ArticlesRect);
    584     update(m_InfoRect);
    585 }
    586 
    587523void MythFlix::slotSiteSelected(UIListBtnTypeItem *item)
    588524{
    589525    if (!item || !item->getData())
    590526        return;
    591527   
    592     slotSiteSelected((NewsSite*) item->getData());
     528    processAndShowNews((NewsSite*) item->getData());
    593529}
    594530
    595531void MythFlix::slotArticleSelected(UIListBtnTypeItem*)
     
    607543        NewsArticle *article = (NewsArticle*) articleUIItem->getData();
    608544        if(article)
    609545        {
     546
     547//            updateAddingView();
     548
    610549            QString cmdUrl(article->articleURL());
    611550            cmdUrl.replace('\'', "%27");
    612551
     
    641580      //do you listen for signal done
    642581      //delete http;
    643582
    644      if (debug)
     583    if (debug)
    645584        cerr << "MythFlix: Redirecting to (" << location << ")..." << endl;
    646585
    647       http = new QHttp();
    648       connect(http, SIGNAL(responseHeaderReceived (const QHttpResponseHeader&)), this, SLOT(slotMovieAdded(const QHttpResponseHeader&)));
     586        http = new QHttp();
     587        connect(http, SIGNAL(responseHeaderReceived (const QHttpResponseHeader&)), this, SLOT(slotMovieAdded(const QHttpResponseHeader&)));
    649588
    650       QHttpRequestHeader header( "GET", location );
    651       header.setValue( "Cookie", "validReEntryCookie=Y; validReEntryConfirmed=Y; NetflixShopperId=" + netflixShopperId + ";" );
    652       header.setValue( "Host", "www.netflix.com" );
    653       http->setHost( "www.netflix.com" );
    654       http->request( header );
     589        QHttpRequestHeader header( "GET", location );
     590        header.setValue( "Cookie", "validReEntryCookie=Y; validReEntryConfirmed=Y; NetflixShopperId=" + netflixShopperId + ";" );
     591        header.setValue( "Host", "www.netflix.com" );
     592        http->setHost( "www.netflix.com" );
     593        http->request( header );
    655594    }
    656595    else
    657596    {
    658 
    659       //How do you clean up http objects
    660       //do you listen for signal done
    661       //delete http;
    662 
    663 /*
    664      if (debug)
    665         cerr << "MythFlix: Movie Added" << endl;
    666 
    667       LayerSet* container = m_Theme->GetSet("info");
    668       UITextType* ttype =
    669         (UITextType *)container->GetType("status");
    670        
    671       if (ttype)
    672         ttype->SetText("Added");
    673 
    674 */       
    675 
    676597    }
    677598}
  • mythflix/mythflix.h

     
    7373
    7474    NewsSite::List m_NewsSites;
    7575
    76     QTimer        *m_RetrieveTimer;
    7776    QHttp         *http;
    7877
    7978    QString        netflixShopperId;
    8079
    81     int            m_TimerTimeout;
    82     unsigned int   m_UpdateFreq;
    83 
    8480private slots:
    8581    void slotViewArticle();
    8682    void slotRetrieveNews();
    8783    void slotNewsRetrieved(NewsSite* site);
    8884
    8985    void slotSiteSelected(UIListBtnTypeItem *item);
    90     void slotSiteSelected(NewsSite*);
    91    
    9286    void slotArticleSelected(UIListBtnTypeItem *item);
    9387
    9488    void slotMovieAdded(const QHttpResponseHeader &resp);