Beispiel #1
0
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();
}
Beispiel #2
0
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();
}
Beispiel #3
0
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();
	}
}
Beispiel #4
0
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)));
}
Beispiel #5
0
void DImgPreviewItem::setPreloadPaths(const QStringList& pathsToPreload)
{
    Q_D(DImgPreviewItem);
    d->pathsToPreload = pathsToPreload;
    preloadNext();
}