diff --git a/src/app/puzzle/vpiececarrousel.cpp b/src/app/puzzle/vpiececarrousel.cpp index 327e53054..1ff7db0e2 100644 --- a/src/app/puzzle/vpiececarrousel.cpp +++ b/src/app/puzzle/vpiececarrousel.cpp @@ -121,7 +121,7 @@ void VPieceCarrousel::Refresh() m_layersContainer->layout()->addWidget(carrouselLayer); } - m_comboBoxLayer->setCurrentIndex(0); + on_ActiveLayerChanged(0); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/puzzle/vpiececarrousellayer.cpp b/src/app/puzzle/vpiececarrousellayer.cpp index 5993ed71a..1c7c0e1f3 100644 --- a/src/app/puzzle/vpiececarrousellayer.cpp +++ b/src/app/puzzle/vpiececarrousellayer.cpp @@ -72,6 +72,7 @@ void VPieceCarrouselLayer::Refresh() [](const VPuzzlePiece* a, const VPuzzlePiece* b) -> bool { return a->GetName() < b->GetName();}); // create the corresponding carrousel pieces + for (auto piece : pieces) { // qCDebug(pCarrouselLayer, "piece name : %s", piece->GetName().toStdString().c_str()); @@ -79,5 +80,11 @@ void VPieceCarrouselLayer::Refresh() VPieceCarrouselPiece *carrouselPiece = new VPieceCarrouselPiece(piece); m_carrouselPieces.append(carrouselPiece); layout()->addWidget(carrouselPiece); + + // FIXME? the fitInView inside the refresh of the piece doesn't workd properly. + // only by doing the following I did get it to work: + setVisible(true); + carrouselPiece->CleanPreview(); + setVisible(false); } } diff --git a/src/app/puzzle/vpiececarrouselpiece.cpp b/src/app/puzzle/vpiececarrouselpiece.cpp index f31f4f963..fea3c1f57 100644 --- a/src/app/puzzle/vpiececarrouselpiece.cpp +++ b/src/app/puzzle/vpiececarrouselpiece.cpp @@ -79,6 +79,12 @@ void VPieceCarrouselPiece::Init() Refresh(); } +//--------------------------------------------------------------------------------------------------------------------- +void VPieceCarrouselPiece::CleanPreview() +{ + m_graphicsView->fitInView(m_graphicsView->scene()->sceneRect(), Qt::KeepAspectRatio); +} + //--------------------------------------------------------------------------------------------------------------------- void VPieceCarrouselPiece::Refresh() { diff --git a/src/app/puzzle/vpiececarrouselpiece.h b/src/app/puzzle/vpiececarrouselpiece.h index 845e3902c..7b9cc8e90 100644 --- a/src/app/puzzle/vpiececarrouselpiece.h +++ b/src/app/puzzle/vpiececarrouselpiece.h @@ -44,6 +44,11 @@ public: void Init(); void Refresh(); + /** + * @brief CleanPiecesPreview fitInView of the qGraphicsView of the pieces works properly + * only when the piece is in place in the layer and we call it from the layer. + */ + void CleanPreview(); signals: