コード例 #1
0
void TvShowWidgetSeason::onDownloadFinished(DownloadManagerElement elem)
{
    if (elem.imageType == TypeSeasonPoster) {
        if (m_show == elem.show) {
            QImage img = QImage::fromData(elem.data);
            ui->poster->setPixmap(QPixmap::fromImage(img).scaled(200, 300, Qt::KeepAspectRatio, Qt::SmoothTransformation));
            ui->posterResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
            ui->buttonPreviewPoster->setEnabled(true);
            m_currentPoster = img;
        }
        elem.show->setSeasonPosterImage(elem.season, elem.data);
    } else if (elem.imageType == TypeSeasonBackdrop) {
        Helper::resizeBackdrop(elem.data);
        if (m_show == elem.show) {
            QImage img = QImage::fromData(elem.data);
            ui->backdrop->setPixmap(QPixmap::fromImage(img).scaled(200, 112, Qt::KeepAspectRatio, Qt::SmoothTransformation));
            ui->backdropResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
            ui->buttonPreviewBackdrop->setEnabled(true);
            m_currentBackdrop = img;
        }
        elem.show->setSeasonBackdropImage(elem.season, elem.data);
    } else if (elem.imageType == TypeSeasonBanner) {
        if (m_show == elem.show) {
            QImage img = QImage::fromData(elem.data);
            ui->banner->setPixmap(QPixmap::fromImage(img).scaled(200, 37, Qt::KeepAspectRatio, Qt::SmoothTransformation));
            ui->bannerResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
            ui->buttonPreviewBanner->setEnabled(true);
            m_currentBanner = img;
        }
        elem.show->setSeasonBannerImage(elem.season, elem.data);
    }

    if (m_downloadManager->downloadsLeftForShow(m_show) == 0)
        emit sigSetActionSaveEnabled(true, WidgetTvShows);
}
コード例 #2
0
void TvShowWidgetSeason::onChooseBanner()
{
    if (!m_show)
        return;

    ImageDialog::instance()->setImageType(TypeBanner);
    ImageDialog::instance()->clear();
    ImageDialog::instance()->setTvShow(m_show);
    ImageDialog::instance()->setSeason(m_season);
    ImageDialog::instance()->setDownloads(m_show->seasonBanners(m_season));
    ImageDialog::instance()->exec(ImageDialogType::TvShowSeasonBanner);
    if (ImageDialog::instance()->result() == QDialog::Accepted) {
        emit sigSetActionSaveEnabled(false, WidgetTvShows);
        DownloadManagerElement d;
        d.imageType = TypeSeasonBanner;
        d.url = ImageDialog::instance()->imageUrl();
        d.season = m_season;
        d.show = m_show;
        m_downloadManager->addDownload(d);
        ui->banner->setPixmap(QPixmap());
        ui->banner->setMovie(m_loadingMovie);
        ui->bannerResolution->clear();
        ui->buttonPreviewBanner->setEnabled(false);
    }
}
コード例 #3
0
void TvShowWidgetSeason::setSeason(TvShow *show, int season)
{
    onClear();

    m_show = show;
    m_season = season;

    emit sigSetActionSearchEnabled(false, WidgetTvShows);
    ui->title->setText(QString(show->name()) + " - " + tr("Season %1").arg(season));

    updateImages(QList<ImageType>() << TypeSeasonPoster << TypeSeasonBackdrop << TypeSeasonBanner);

    onSetEnabled(!show->downloadsInProgress());
    emit sigSetActionSaveEnabled(!show->downloadsInProgress(), WidgetTvShows);
}
コード例 #4
0
void TvShowWidgetSeason::onChooseBackdrop()
{
    if (!m_show)
        return;

    ImageDialog::instance()->setImageType(TypeBackdrop);
    ImageDialog::instance()->clear();
    ImageDialog::instance()->setTvShow(m_show);
    ImageDialog::instance()->setSeason(m_season);
    ImageDialog::instance()->setDownloads(m_show->seasonBackdrops(m_season));
    ImageDialog::instance()->exec(ImageDialogType::TvShowSeasonBackdrop);
    if (ImageDialog::instance()->result() == QDialog::Accepted) {
        emit sigSetActionSaveEnabled(false, WidgetTvShows);
        DownloadManagerElement d;
        d.imageType = TypeSeasonBackdrop;
        d.url = ImageDialog::instance()->imageUrl();
        d.season = m_season;
        d.show = m_show;
        m_downloadManager->addDownload(d);
        ui->backdrop->setLoading(true);
    }
}
コード例 #5
0
void TvShowWidgetSeason::onDownloadFinished(DownloadManagerElement elem)
{
    if (elem.imageType == TypeSeasonPoster) {
        if (m_show == elem.show)
            ui->poster->setImage(elem.data);
        ImageCache::instance()->invalidateImages(Manager::instance()->mediaCenterInterface()->seasonPosterImageName(elem.show, elem.season));
        elem.show->setSeasonPosterImage(elem.season, elem.data);
    } else if (elem.imageType == TypeSeasonBackdrop) {
        Helper::resizeBackdrop(elem.data);
        if (m_show == elem.show)
            ui->backdrop->setImage(elem.data);
        ImageCache::instance()->invalidateImages(Manager::instance()->mediaCenterInterface()->seasonBackdropImageName(elem.show, elem.season));
        elem.show->setSeasonBackdropImage(elem.season, elem.data);
    } else if (elem.imageType == TypeSeasonBanner) {
        if (m_show == elem.show)
            ui->banner->setImage(elem.data);
        ImageCache::instance()->invalidateImages(Manager::instance()->mediaCenterInterface()->seasonBannerImageName(elem.show, elem.season));
        elem.show->setSeasonBannerImage(elem.season, elem.data);
    }

    if (m_downloadManager->downloadsLeftForShow(m_show) == 0)
        emit sigSetActionSaveEnabled(true, WidgetTvShows);
}
コード例 #6
0
void TvShowWidgetSeason::setSeason(TvShow *show, int season)
{
    onClear();

    m_show = show;
    m_season = season;

    emit sigSetActionSearchEnabled(false, WidgetTvShows);
    ui->title->setText(QString(show->name()) + " - " + tr("Season %1").arg(season));

    if (!m_show->seasonPosterImage(season).isNull()) {
        QImage img = QImage::fromData(m_show->seasonPosterImage(season));
        ui->poster->setPixmap(QPixmap::fromImage(img).scaledToWidth(200, Qt::SmoothTransformation));
        ui->posterResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
        ui->buttonPreviewPoster->setEnabled(true);
        m_currentPoster = img;
    } else if (!Manager::instance()->mediaCenterInterfaceTvShow()->seasonPosterImageName(m_show, season).isEmpty()) {
        QPixmap p(Manager::instance()->mediaCenterInterfaceTvShow()->seasonPosterImageName(m_show, season));
        ui->poster->setPixmap(p.scaledToWidth(200, Qt::SmoothTransformation));
        ui->posterResolution->setText(QString("%1x%2").arg(p.width()).arg(p.height()));
        ui->buttonPreviewPoster->setEnabled(true);
        m_currentPoster = p.toImage();
    } else {
        ui->poster->setPixmap(QPixmap(":/img/poster.png"));
        ui->posterResolution->clear();
        ui->buttonPreviewPoster->setEnabled(false);
    }

    if (!m_show->seasonBackdropImage(season).isNull()) {
        QImage img = QImage::fromData(m_show->seasonBackdropImage(season));
        ui->backdrop->setPixmap(QPixmap::fromImage(img).scaledToWidth(200, Qt::SmoothTransformation));
        ui->backdropResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
        ui->buttonPreviewBackdrop->setEnabled(true);
        m_currentBackdrop = img;
    } else if (!Manager::instance()->mediaCenterInterfaceTvShow()->seasonBackdropImageName(m_show, season).isEmpty()) {
        QPixmap p(Manager::instance()->mediaCenterInterfaceTvShow()->seasonBackdropImageName(m_show, season));
        ui->backdrop->setPixmap(p.scaledToWidth(200, Qt::SmoothTransformation));
        ui->backdropResolution->setText(QString("%1x%2").arg(p.width()).arg(p.height()));
        ui->buttonPreviewBackdrop->setEnabled(true);
        m_currentBackdrop = p.toImage();
    } else {
        ui->backdrop->setPixmap(QPixmap(":/img/missing_art.png").scaled(64, 64, Qt::KeepAspectRatio, Qt::SmoothTransformation));
        ui->backdropResolution->clear();
        ui->buttonPreviewBackdrop->setEnabled(false);
    }

    if (!m_show->seasonBannerImage(season).isNull()) {
        QImage img = QImage::fromData(m_show->seasonBannerImage(season));
        ui->banner->setPixmap(QPixmap::fromImage(img).scaledToWidth(200, Qt::SmoothTransformation));
        ui->bannerResolution->setText(QString("%1x%2").arg(img.width()).arg(img.height()));
        ui->buttonPreviewBanner->setEnabled(true);
        m_currentBanner = img;
    } else if (!Manager::instance()->mediaCenterInterfaceTvShow()->seasonBannerImageName(m_show, season).isEmpty()) {
        QPixmap p(Manager::instance()->mediaCenterInterfaceTvShow()->seasonBannerImageName(m_show, season));
        ui->banner->setPixmap(p.scaledToWidth(200, Qt::SmoothTransformation));
        ui->bannerResolution->setText(QString("%1x%2").arg(p.width()).arg(p.height()));
        ui->buttonPreviewBanner->setEnabled(true);
        m_currentBanner = p.toImage();
    } else {
        ui->banner->setPixmap(QPixmap(":/img/missing_art_small.png"));
        ui->bannerResolution->clear();
        ui->buttonPreviewBanner->setEnabled(false);
    }

    onSetEnabled(!show->downloadsInProgress());
    emit sigSetActionSaveEnabled(!show->downloadsInProgress(), WidgetTvShows);
}