[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:
1 parent
5ee4598bbe
commit
4dfe144bf8
18 files changed
+178
-40
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user