diff --git a/common/lc_mainwindow.cpp b/common/lc_mainwindow.cpp index a9b5860a..4d2116bb 100644 --- a/common/lc_mainwindow.cpp +++ b/common/lc_mainwindow.cpp @@ -108,6 +108,7 @@ lcMainWindow::lcMainWindow() mSelectionMode = lcSelectionMode::Single; mModelTabWidget = nullptr; mPreviewToolBar = nullptr; + mPreviewWidget = nullptr; memset(&mSearchOptions, 0, sizeof(mSearchOptions)); diff --git a/common/lc_partselectionwidget.cpp b/common/lc_partselectionwidget.cpp index c459cdad..e2301715 100644 --- a/common/lc_partselectionwidget.cpp +++ b/common/lc_partselectionwidget.cpp @@ -718,7 +718,7 @@ void lcPartSelectionListView::PreviewSelection(int InfoIndex) { if (!Preview->SetCurrentPiece(Info->mFileName, ColorCode)) QMessageBox::critical(gMainWindow, tr("Error"), tr("Preview %1 failed.").arg(Info->mFileName)); - + ViewWidget->SetPreviewPosition(rect()); } else { diff --git a/common/lc_previewwidget.cpp b/common/lc_previewwidget.cpp index 6db432dd..6a586a76 100644 --- a/common/lc_previewwidget.cpp +++ b/common/lc_previewwidget.cpp @@ -54,7 +54,8 @@ bool lcPreviewDockWidget::SetCurrentPiece(const QString& PartType, int ColorCode void lcPreviewDockWidget::ClearPreview() { - mPreview->ClearPreview(); + if (mPreview->GetActiveModel()->GetPieces().GetSize()) + mPreview->ClearPreview(); mLabel->setText(QString()); } @@ -95,6 +96,8 @@ lcPreviewWidget::~lcPreviewWidget() delete mCamera; delete mLoader; + + gPreviewWidget = nullptr; } bool lcPreviewWidget::SetCurrentPiece(const QString& PartType, int ColorCode) diff --git a/qt/lc_qpropertiestree.cpp b/qt/lc_qpropertiestree.cpp index 6ba41942..f8b5c343 100644 --- a/qt/lc_qpropertiestree.cpp +++ b/qt/lc_qpropertiestree.cpp @@ -940,7 +940,7 @@ void lcQPropertiesTree::SetPiece(const lcArray& Selection, lcObject* ColorIndex = Piece->mColorIndex; Info = Piece->mPieceInfo; lcPreferences& Preferences = lcGetPreferences(); - if (Preferences.mPreviewEnabled) + if (Preferences.mPreviewEnabled && Preferences.mPreviewPosition != lcPreviewPosition::Floating) { quint32 ColorCode = lcGetColorCode(ColorIndex); PreviewSelection(Info->mFileName, ColorCode);