@@ -463,11 +463,11 @@ FocusScope {
463463 ' gamma' : Qt .binding (function () { return hdrImageToolbar .gammaValue }),
464464 ' gain' : Qt .binding (function () { return hdrImageToolbar .gainValue }),
465465 ' channelModeString' : Qt .binding (function () { return hdrImageToolbar .channelModeValue }),
466- ' isPrincipalPointsDisplayed' : Qt .binding (function () { return lensDistortionImageToolbar .displayPrincipalPoint }),
467- ' surface.displayGrid' : Qt .binding (function () { return lensDistortionImageToolbar .visible && lensDistortionImageToolbar .displayGrid }),
468- ' surface.gridOpacity' : Qt .binding (function () { return lensDistortionImageToolbar .opacityValue }),
469- ' surface.gridColor' : Qt .binding (function () { return lensDistortionImageToolbar .color }),
470- ' surface.subdivisions' : Qt .binding (function () { return root .useFloatImageViewer ? 1 : lensDistortionImageToolbar .subdivisionsValue }),
466+ ' isPrincipalPointsDisplayed' : Qt .binding (function () { return lensDistortionImageToolbar .displayPrincipalPoint }),
467+ ' surface.displayGrid' : Qt .binding (function () { return lensDistortionImageToolbar .visible && lensDistortionImageToolbar .displayGrid }),
468+ ' surface.gridOpacity' : Qt .binding (function () { return lensDistortionImageToolbar .opacityValue }),
469+ ' surface.gridColor' : Qt .binding (function () { return lensDistortionImageToolbar .color }),
470+ ' surface.subdivisions' : Qt .binding (function () { return root .useFloatImageViewer ? 1 : lensDistortionImageToolbar .subdivisionsValue }),
471471 ' viewerTypeString' : Qt .binding (function () { return displayLensDistortionViewer .checked ? " distortion" : " hdr" }),
472472 ' sfmRequired' : Qt .binding (function () { return displayLensDistortionViewer .checked ? true : false }),
473473 ' surface.msfmData' : Qt .binding (function () { return (msfmDataLoader .status === Loader .Ready && msfmDataLoader .item != null && msfmDataLoader .item .status === 2 ) ? msfmDataLoader .item : null }),
@@ -476,7 +476,7 @@ FocusScope {
476476 ' cropFisheye' : false ,
477477 ' sequence' : Qt .binding (function () { return ((root .enableSequencePlayer && _reconstruction && _reconstruction .viewpoints .count > 0 ) ? getSequence () : []) }),
478478 ' targetSize' : Qt .binding (function () { return floatImageViewerLoader .targetSize }),
479- ' useSequence' : Qt .binding (function () { return root .enableSequencePlayer && ! useExternal && _reconstruction }),
479+ ' useSequence' : Qt .binding (function () { return root .enableSequencePlayer && ! useExternal && _reconstruction })
480480 })
481481 } else {
482482 // Forcing the unload (instead of using Component.onCompleted to load it once and for all) is necessary since Qt 5.14
@@ -745,6 +745,39 @@ FocusScope {
745745 }
746746 }
747747 }
748+
749+ FloatingPane {
750+ Layout .fillWidth : true
751+ Layout .fillHeight : false
752+ Layout .preferredHeight : childrenRect .height
753+ visible: floatImageViewerLoader .item .imageStatus === Image .Error
754+ Layout .alignment : Qt .AlignHCenter
755+
756+ RowLayout {
757+ anchors .fill : parent
758+
759+ Label {
760+ font .pointSize : 8
761+ text: {
762+ switch (floatImageViewerLoader .item .status ) {
763+ case 2 : // AliceVision.FloatImageViewer.EStatus.OUTDATED_LOADING
764+ return " Outdated Loading"
765+ case 3 : // AliceVision.FloatImageViewer.EStatus.MISSING_FILE
766+ return " Missing File"
767+ case 4 : // AliceVision.FloatImageViewer.EStatus.ERROR
768+ return " Error"
769+ default :
770+ return " "
771+ }
772+ }
773+ horizontalAlignment: Text .AlignHCenter
774+ verticalAlignment: Text .AlignVCenter
775+ Layout .fillWidth : true
776+ Layout .alignment : Qt .AlignHCenter
777+ }
778+ }
779+ }
780+
748781 Item {
749782 id: imgPlaceholder
750783 Layout .fillWidth : true
0 commit comments