Conversation
✅ Deploy Preview for volview-dev ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
This is an incomplete upgrade commit to vue 3 and vuetify 3. Most of the work is done, but a few bugs and missing functionality remain.
The vuetify vue-cli plugin auto-injects vuetify's plugin for us.
Watching pointState means we properly time our visibility update. Watching widget will trigger updateVisibility() too early.
vue-toastification v2 cannot render vuetify components. This is a workaround for now, until we decide to drop this library.
Ensure we disable color range rescaling *before* setting the colorBy property.
|
I think this will be ready to test and evaluate after the rectangle tool gets merged. |
Watching widget means updateVisibility gets called too soon and out-of-order.
The old ColorTransferFunctionSlider component is difficult to port over to vuetify 3.
This fixes an issue where selecting the currently selected dataset would result in a flickering 3D view. This is resolved by ensuring render() is not called unnecessarily. - Computed values depending on baseImageRep would trigger unnecessarily due to a deep watcher on the representation object, when nothing of importance has changed. - Add selective arrayEquals checks. - Add renderLater, which schedules a render for the next JS task. - Refactors VtkThreeView to reduce the size of setup(). - Listen to CVR parameters in a fine-grained fashion.
|
This is ready to evaluate. There are a lot of changes in this PR, partly due to vuetify/vue 3 upgrades and partly due to some refactoring in order to address some subtle bugs that appeared when upgrading. A code review would be nice, but given the size of this PR a skim should be sufficient. What is important is that the application preview operates as expected. |
|
Summary of latest commits:
|
PaulHax
left a comment
There was a problem hiding this comment.
The DICOMWeb data browser components have runtime errors. I'll open a PR on this one to fix.
|
Another window level issue:
|
fix(dicomweb): rename v-expansion-panel components and v-overlay
vue-toastification won't show toasts, since it likely isn't mounting until after the main app fully mounts.
|
Looks good overall. The warning box for volume quality slider is orange and too in the face. In the current version, it has a color set on it - VolView/src/components/VolumeProperties.vue Lines 104 to 112 in dd5f9e3 |
Batch all render calls inside a single task to the next task.
|
Good point. I'll tone down the colors a bit. |
Adjusts the mobile breakpoint to be more lenient.
|
I've adjusted some styles and improved the About popup. |
|
FYI all of these commits will be squashed prior to merging. |
|
This seems good to go. We can revert if needed. |
* feat(vue3): upgrade to vue 3 and vuetify 3 This is an incomplete upgrade commit to vue 3 and vuetify 3. Most of the work is done, but a few bugs and missing functionality remain. * feat(theme): customized themes * chore(vue-cli): use vuetify cli plugin The vuetify vue-cli plugin auto-injects vuetify's plugin for us. * fix: vuetify 3 changes * feat(PersistentOverlay): use custom overlay * fix(vuetify): bad theme test * fix(App): use toolbutton loading prop * fix: default expansion panel behavior * fix(Annotations): show empty-state messages * fix(ruler): watch pointState instead of widget Watching pointState means we properly time our visibility update. Watching widget will trigger updateVisibility() too early. * fix: misc styles update * fix(messages): toasts cannot render vuetify vue-toastification v2 cannot render vuetify components. This is a workaround for now, until we decide to drop this library. * fix(style): nicer light theme colors * fix(view): out-of-order disabling of rescale Ensure we disable color range rescaling *before* setting the colorBy property. * fix(RulerWidget): guard against nonexistent ruler * fix(RectangleWidget2D): watch pointState Watching widget means updateVisibility gets called too soon and out-of-order. * feat(VolumeRendering): simpler shift/width sliders The old ColorTransferFunctionSlider component is difficult to port over to vuetify 3. * fix(VtkThreeView): flicker on same selection This fixes an issue where selecting the currently selected dataset would result in a flickering 3D view. This is resolved by ensuring render() is not called unnecessarily. - Computed values depending on baseImageRep would trigger unnecessarily due to a deep watcher on the representation object, when nothing of importance has changed. - Add selective arrayEquals checks. - Add renderLater, which schedules a render for the next JS task. - Refactors VtkThreeView to reduce the size of setup(). - Listen to CVR parameters in a fine-grained fashion. * feat(Annotations): show rectangles * fix(Ruler/pointState): getRuler can be undefined * chore: upgrade vtk.js * refactor(useSceneBuilder): simplify computed * fix(useSceneBuilder): check for array changes This is a sanity check to guard against the potential case for the watch to trigger when nothing in the array actually changed. This commit also simplifies adding representations to the view. * fix(LPSView2DProxy): don't call parent addRep The parent addRepresentation method updates the slicing mode based on model.axis. This commit does two things: - Instead of calling the parent addRepresentation, we skip all of the unneeded code and just add directly. - We set model.axis in case another codepath depends on a valid value. * feat(windowingStore): split out windowing store - Fixes windowing synchronization bugs - Uses a simpler DoubleKeyRecord type * feat(viewSliceStore): split out slicing store * feat(viewCameraStore): split out camera store * feat(volumeColoringStore): split coloring store * feat(layerColoring): split out layer config store * fix(layout): menu and switching errors * fix(VtkThreeView): reset camera after scene * fix(Browser): do not hide layerable button * fix(dicomweb): rename v-expansion-panel components and v-overlay * fix(windowing): sync min/max as well * fix(PatientBrowser): auto flex basis on header * fix(PatientBrowser): guard against deleted patient * fix(App): show loading notification vue-toastification won't show toasts, since it likely isn't mounting until after the main app fully mounts. * chore: remove @vue/composition-api * style: prettier adjustments * fix: switch to using renderLater Batch all render calls inside a single task to the next task. * fix(VolumeProperties): less intrusive alert * fix(AboutBox): improved layout and styles Adjusts the mobile breakpoint to be more lenient. * fix(App): adjust styles for mobile * fix(AboutBox): Discourse link and adjust styles * fix(AboutBox): move version info block lower * style: delete unused code --------- Co-authored-by: Paul Elliott <paul.elliott@kitware.com>
Uh oh!
There was an error while loading. Please reload this page.