Fix potentional race conditions

This commit is contained in:
2022-12-28 11:33:26 +01:00
parent 01febbf421
commit 22e3b06fdd
+6 -1
View File
@@ -97,13 +97,15 @@ ImageWidget::~ImageWidget()
void ImageWidget::setImage(std::shared_ptr<RawImage> image, int index) void ImageWidget::setImage(std::shared_ptr<RawImage> image, int index)
{ {
if(image == nullptr)return; if(image == nullptr)return;
makeCurrent();
m_rawImage = image; m_rawImage = image;
m_imgWidth = image->width(); m_imgWidth = image->width();
m_imgHeight = image->height(); m_imgHeight = image->height();
m_currentImg = index; m_currentImg = index;
if(!m_image)return;
const RawImageType &rawImageType = rawImageTypes[image->type()]; const RawImageType &rawImageType = rawImageTypes[image->type()];
m_srgb = rawImageType.textureFormat == QOpenGLTexture::SRGB8 || rawImageType.textureFormat == QOpenGLTexture::SRGB8_Alpha8; m_srgb = rawImageType.textureFormat == QOpenGLTexture::SRGB8 || rawImageType.textureFormat == QOpenGLTexture::SRGB8_Alpha8;
m_bwImg = rawImageType.bw; m_bwImg = rawImageType.bw;
@@ -489,6 +491,9 @@ void ImageWidget::initializeGL()
m_transferOptions = std::unique_ptr<QOpenGLPixelTransferOptions>(new QOpenGLPixelTransferOptions); m_transferOptions = std::unique_ptr<QOpenGLPixelTransferOptions>(new QOpenGLPixelTransferOptions);
m_transferOptions->setAlignment(1); m_transferOptions->setAlignment(1);
if(m_rawImage)
setImage(m_rawImage, m_currentImg);
} }
void ImageWidget::dragEnterEvent(QDragEnterEvent *event) void ImageWidget::dragEnterEvent(QDragEnterEvent *event)