void ActivityButton::setActive(bool isActive) { if (m_isActive == isActive) return; m_isActive = isActive; if (isActive) { connect (getMovie(), SIGNAL(frameChanged(int)), this, SLOT(updateIcon()), Qt::UniqueConnection); } else {
QIcon getCurrentIcon() { QMovie* movie = getMovie(); int idx = movie->currentFrameNumber(); QString key = QString("%1").arg(idx); if (!icons.contains(key)) { QPixmap pm = movie->currentPixmap(); QIcon retval(pm); icons[key] = retval; } return icons[key]; }
void rottenTomatoes::finishedReply(QNetworkReply *pReply) { bool ok; QByteArray data = pReply->readAll(); QVariantMap result = parser.parse (data, &ok).toMap(); if (!ok) { qDebug() << "Paring JSON Failed"; } // Calculate the right number of pages, i.e. round to next integer, e.g. 1.2 is 2 pages. float cineTotalPagesf = (result["total"].toFloat() + 0.5) / 50; if (inTheaterMode) { // If we are working with inTheaters emit inTheaterResultsAvailable(result); // Calculate Total Pages inTheatersTotal = qRound(cineTotalPagesf); // qDebug() << "Total Movies: " << result["total"]; // qDebug() << "Total No. Of Pages: " << cineTotalPages; // qDebug() << "Movies in List: " << result["movies"].toList().count(); // qDebug() << "Synopsis: " << result["movies"].toList()[1].toMap()["synopsis"].toString(); // qDebug() << "Ratings: " << result["movies"].toList()[1].toMap()["ratings"].toMap()["critics_rating"].toString(); if (inTheatersCurrentPage < inTheatersTotal) { inTheatersCurrentPage++; getInTheater(); } else { // Let the calling class know we are done emit finishedInTheater(); } } else { // Movie search mode emit movieResultsAvailable(result); movieTotal = qRound(cineTotalPagesf); if (movieCurrentPage < movieTotal){ movieCurrentPage++; getMovie(movieNameSearch); } else { // Let the calling class know we are done emit finishedMovie(); } } }
QString key = QString("%1").arg(idx); if (!icons.contains(key)) { QPixmap pm = movie->currentPixmap(); QIcon retval(pm); icons[key] = retval; } return icons[key]; } ActivityButton::ActivityButton(QString text, QWidget* parent) : QPushButton(text, parent), m_isActive(false) { setIcon(QIcon(":/icons/inactive.png")); } void ActivityButton::setActive(bool isActive) { if (m_isActive == isActive) return; m_isActive = isActive; if (isActive) { connect (getMovie(), SIGNAL(frameChanged(int)), this, SLOT(updateIcon()), Qt::UniqueConnection); } else { disconnect (getMovie(), 0, this, 0); setIcon(QIcon(":/icons/inactive.png")); } } void ActivityButton::updateIcon() { setIcon(getCurrentIcon()); }