+
+ {{#button id='cineDisplaySetPrevious' title='Previous display set'}}
+
+ {{/button}}
+ {{#button id='cineDisplaySetNext' title='Next display set'}}
+
+ {{/button}}
-
- {{#inputRange id='cineSlider' key='speed' labelClass='form-group'}}
- {{#section 'labelAfterText'}}: {{framerate}}{{/section}}
+
+
+
+ {{#button id='cineFirstButton' title='Skip to first image'}}
+
+ {{/button}}
+ {{#button id='cineBackButton' title='Previous image'}}
+
+ {{/button}}
+ {{#button id='cineSlowPlaybackButton' title='Slow playback'}}
+
+ {{/button}}
+ {{#button id='cinePlayButton' title='Play / Stop' class=(valueIf isPlaying 'active' '')}}
+ {{#if isPlaying}}
+
+ {{else}}
+
+ {{/if}}
+ {{/button}}
+ {{#button id='cineFastForwardButton' title='Increase playback speed'}}
+
+ {{/button}}
+ {{#button id='cineNextButton' title='Next image'}}
+
+ {{/button}}
+ {{#button id='cineLastButton' title='Skip to last image'}}
+
+ {{/button}}
+
+
+
+
+ {{#inputRange id='cineSlider' key='speed' class='p-a-0' labelClass='form-group m-a-0' labelAsDiv=true}}
+ {{#section 'labelAfterText'}}:
+ {{framerate}}
+ {{>inputCheckbox id='cineLoopCheckbox' key='loop' labelClass='pull-right m-a-0'}}
+ {{/section}}
{{/inputRange}}
diff --git a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js
index 14683b392..3e0dbed3c 100644
--- a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js
+++ b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.js
@@ -23,8 +23,8 @@ Template.cineDialog.onCreated(() => {
OHIF.viewer.cine.framesPerSecond = rate;
// Update playClip toolData for this imageId
- var element = getActiveViewportElement();
- var playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
+ const element = getActiveViewportElement();
+ const playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
playClipToolData.data[0].framesPerSecond = OHIF.viewer.cine.framesPerSecond;
// If the movie is playing, stop/start to update the framerate
@@ -38,12 +38,19 @@ Template.cineDialog.onCreated(() => {
});
Template.cineDialog.onRendered(() => {
- const instance = Template.instance();
- const dialog = instance.$('#cineDialog');
- dialog.draggable();
+ // Make the CINE dialog bounded and draggable
+ Template.instance().$('#cineDialog').bounded().draggable();
});
Template.cineDialog.events({
+ 'click #cineDisplaySetPrevious'(event, instance) {
+ OHIF.viewer.moveDisplaySets(false);
+ },
+
+ 'click #cineDisplaySetNext'(event, instance) {
+ OHIF.viewer.moveDisplaySets(true);
+ },
+
'click #cineFirstButton'(event, instance) {
switchToImageByIndex(0);
},
@@ -79,16 +86,20 @@ Template.cineDialog.events({
},
'change #cineLoopCheckbox'(event, instance) {
- var element = getActiveViewportElement();
- var playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
+ const element = getActiveViewportElement();
+ const playClipToolData = cornerstoneTools.getToolState(element, 'playClip');
playClipToolData.data[0].loop = $(event.currentTarget).is(':checked');
OHIF.viewer.cine.loop = playClipToolData.data[0].loop;
},
'input #cineSlider'(event, instance) {
// Update the FPS text onscreen
- var rate = parseFloat($(event.currentTarget).val());
+ const rate = parseFloat($(event.currentTarget).val());
instance.updateFramerate(rate);
+ },
+
+ submit(event, instance) {
+ event.preventDefault();
}
});
diff --git a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.styl b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.styl
index a9966399f..dab8cbcbf 100644
--- a/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.styl
+++ b/Packages/viewerbase/client/components/viewer/cineDialog/cineDialog.styl
@@ -4,25 +4,29 @@
theme('border', '1px solid $uiBorderColor')
theme('background', '$uiGrayDarkest')
theme('color', '$textSecondaryColor')
- display: none
- z-index: 1000
- position: absolute
- top: auto
- left: auto
+ border-radius: 8px
bottom: 3px
- right: 3px
+ box-sizing: border-box
+ display: none
+ height: 150px
+ left: auto
+ opacity: 0.95
overflow: hidden
padding: 10px
+ position: absolute
+ right: 3px
+ top: auto
width: 300px
- height: 175px
- opacity: 0.95
- border-radius: 8px
+ z-index: 1000
+
+ h5
+ font-size: 20px
+ line-height: 35px
+ margin: 0
h5, label
font-weight: 400
- box-sizing: border-box
-
.btn
theme('background', '$uiGrayDarkest')
theme('color', '$textSecondaryColor')
@@ -33,9 +37,25 @@
&:active, &.active
theme('color', '$activeColor')
- #cineOptions
+ .cine-navigation
+ position: absolute
+ right: 24px
+ top: 4px
+
+ .btn
+ padding: 0 4px
+
+ i
+ font-size: 36px
+ line-height: 36px
+
+ .cine-controls
+ display: table
+ margin: 0 auto
+
+ .cine-options
padding: 5px 0
overflow: auto
- #loopSection
+ .loop-section
padding-right: 12px