#include "DesktopPreviewProvider.h" #include #include #include #include DesktopPreviewProvider::DesktopPreviewProvider() { } constexpr const char* DesktopPreviewProvider::imagePaths[]; QSharedPointer DesktopPreviewProvider::getInstance() { static QSharedPointer instance = DependencyManager::get(); return instance; } QImage DesktopPreviewProvider::getPreviewDisabledImage(bool vsyncEnabled) const { auto imageIndex = vsyncEnabled ? VSYNC : m_previewDisabledReason; assert(imageIndex >= 0 && imageIndex <= VSYNC); return !m_previewDisabled[imageIndex].isNull() ? m_previewDisabled[imageIndex] : loadPreviewImage(m_previewDisabled[imageIndex], PathUtils::resourcesPath() + imagePaths[imageIndex]); } void DesktopPreviewProvider::setPreviewDisabledReason(PreviewDisabledReasons reason) { if (reason == VSYNC) { qDebug() << "Preview disabled reason can't be forced to " << QMetaEnum::fromType().valueToKey(reason); return; // Not settable via this interface, as VSYNC is controlled by HMD plugin.. } m_previewDisabledReason = reason; } void DesktopPreviewProvider::setPreviewDisabledReason(const QString& reasonString) { PreviewDisabledReasons reason = USER; bool ok = false; reason = (PreviewDisabledReasons) QMetaEnum::fromType().keyToValue(reasonString.toLatin1().data(), &ok); if (ok) { setPreviewDisabledReason(reason); } } QImage& DesktopPreviewProvider::loadPreviewImage(QImage& image, const QString& path) const { return image = QImage(path).mirrored().convertToFormat(QImage::Format_RGBA8888); }