void DImgPreviewItem::slotGotImagePreview(const LoadingDescription& description, const DImg& image) { Q_D(DImgPreviewItem); if (description.filePath != d->path || description.isThumbnail()) { return; } setImage(image); if (image.isNull()) { d->state = ImageLoadingFailed; emit stateChanged(d->state); emit loadingFailed(); } else { d->state = ImageLoaded; emit stateChanged(d->state); emit loaded(); } preloadNext(); }
void PlayerWidget::findCurrent() { _index = -1; if (!_history) return; const History::MediaOverview *o = &(_msgmigrated ? _migrated : _history)->overview[OverviewAudioDocuments]; if ((_msgmigrated ? _migrated : _history)->channelId() == _song.msgId.channel) { for (int i = 0, l = o->size(); i < l; ++i) { if (o->at(i) == _song.msgId.msg) { _index = i; break; } } } preloadNext(); }
void PlayerWidget::mediaOverviewUpdated(PeerData *peer, MediaOverviewType type) { if (_history && (_history->peer == peer || (_migrated && _migrated->peer == peer)) && type == OverviewAudioDocuments) { _index = -1; History *history = _msgmigrated ? _migrated : _history; if (history->channelId() == _song.msgId.channel) { for (int i = 0, l = history->overview[OverviewAudioDocuments].size(); i < l; ++i) { if (history->overview[OverviewAudioDocuments].at(i) == _song.msgId.msg) { _index = i; preloadNext(); break; } } } updateControls(); } }
void DImgPreviewItem::DImgPreviewItemPrivate::init(DImgPreviewItem* const q) { previewThread = new PreviewLoadThread; preloadThread = new PreviewLoadThread; preloadThread->setPriority(QThread::LowPriority); QObject::connect(previewThread, SIGNAL(signalImageLoaded(LoadingDescription,DImg)), q, SLOT(slotGotImagePreview(LoadingDescription,DImg))); QObject::connect(preloadThread, SIGNAL(signalImageLoaded(LoadingDescription,DImg)), q, SLOT(preloadNext())); // get preview size from screen size, but limit from VGA to WQXGA previewSize = qBound(640, qMax(QApplication::desktop()->availableGeometry(-1).height(), QApplication::desktop()->availableGeometry(-1).width()), 2560); LoadingCacheInterface::connectToSignalFileChanged(q, SLOT(slotFileChanged(QString))); QObject::connect(IccSettings::instance(), SIGNAL(settingsChanged(ICCSettingsContainer,ICCSettingsContainer)), q, SLOT(iccSettingsChanged(ICCSettingsContainer,ICCSettingsContainer))); }
void DImgPreviewItem::setPreloadPaths(const QStringList& pathsToPreload) { Q_D(DImgPreviewItem); d->pathsToPreload = pathsToPreload; preloadNext(); }