[OHIF-251] - Double click to maximise viewport/ revert to previous layout. (#1860)

* WIP

* double click to maximise implemented at the viewport grid layer.

* Remove memory of cached layout when the layout is changed, or a different displaySet is set.

* WIP fix double click for cornerstone.

* Update CST

* Prevent maximising when double clicking the action bar

* Update extensions/dicom-sr/src/OHIFCornerstoneSRViewport.js

* Apply suggestions from code review

* Fix conflicts.

Co-authored-by: Danny Brown <danny.ri.brown@gmail.com>
This commit is contained in:
James PettsandDanny Brown authored and GitHub committed 2020-07-03 19:12:33 +02:00
1 parent 5ee4598bbe
commit 4dfe144bf8
18 files changed
+178 -40

No files matched your search

+1 -1
View File
@@ -67,7 +67,7 @@
"classnames": "^2.2.6",
"core-js": "^3.2.1",
"cornerstone-math": "^0.1.8",
"cornerstone-tools": "4.17.0",
"cornerstone-tools": "4.18.0",
"cornerstone-wado-image-loader": "^3.1.2",
"dcmjs": "0.14.2",
"dicom-parser": "^1.8.3",
@@ -11,7 +11,7 @@ const { ImageSet } = classes;
function ViewerViewportGrid(props) {
const { servicesManager, viewportComponents, dataSource } = props;
const [
{ numCols, numRows, activeViewportIndex, viewports },
{ numCols, numRows, activeViewportIndex, viewports, cachedLayout },
viewportGridService,
] = useViewportGrid();
@@ -67,6 +67,43 @@ function ViewerViewportGrid(props) {
};
};
const onDoubleClick = viewportIndex => {
if (cachedLayout) {
viewportGridService.setLayout({
numCols: cachedLayout.numCols,
numRows: cachedLayout.numRows,
});
cachedLayout.viewports.forEach((viewport, viewportIndex) => {
viewportGridService.setDisplaysetForViewport({
viewportIndex,
displaySetInstanceUID: viewport.displaySetInstanceUID,
});
});
return;
}
const cachedViewports = viewports.map(viewport => {
return {
displaySetInstanceUID: viewport.displaySetInstanceUID,
};
});
viewportGridService.setDisplaysetForViewport({
viewportIndex: 0,
displaySetInstanceUID: viewports[viewportIndex].displaySetInstanceUID,
});
viewportGridService.setLayout({ numCols: 1, numRows: 1 });
viewportGridService.setCachedLayout({
numCols,
numRows,
viewports: cachedViewports,
});
};
// TODO:
// Hmm... Should a "displaySet" being added update the viewport based on HP?
// I guess it might.
@@ -127,6 +164,7 @@ function ViewerViewportGrid(props) {
acceptDropsFor="displayset"
onDrop={onDropHandler.bind(null, viewportIndex)}
onInteraction={onInterationHandler}
onDoubleClick={() => onDoubleClick(viewportIndex)}
isActive={activeViewportIndex === viewportIndex}
>
<ViewportComponent