View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003956 | Slicer4 | Core: MRML | public | 2015-02-10 05:38 | 2018-03-02 11:06 |
Reporter | kikinis | Assigned To | nicole | ||
Priority | high | Severity | block | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | Slicer 4.4.0 | ||||
Target Version | Slicer 4.5.0-1 | Fixed in Version | Slicer 4.5.0-1 | ||
Summary | 0003956: Repeated saves of MRBs cause corruption | ||||
Description | From Ron and Sonia: | ||||
Steps To Reproduce | To be simplified later, the key seems to be restoring a scene view: Download sample data MRHead | ||||
Tags | No tags attached. | ||||
related to | 0003689 | closed | jcfr | MRB saving - remember last save location |
related to | 0003961 | closed | nicole | Problem with removing all markups from a fiducial list |
related to | 0002816 | feedback | alexy | Restoring scene views from MRB |
related to | 0003992 | closed | nicole | LUT lost when changing scene views |
related to | 0003584 | closed | nicole | Don't create VolumeNode when reading fails |
related to | 0004033 | closed | nicole | Duplicated event when a new vtkMRMLScalarVolumeNode is added to the scene |
related to | 0003888 | closed | jcfr | Double .vtk extension when saving models with .vtk in the name |
Test written showing simplified steps to reproduce this bug: https://github.com/naucoin/Slicer/commit/eb05c4fae83166c1704df22aa40228db41add442 |
|
Added more fixes to the branch: |
|
Getting closer to the empty fid list: |
|
When a new fiducial list is made, no storage node is added. If you then make a new scene view, the scene view also doesn't contain a fiducial storage node (same thing for loading a sample data volume after my change to clear out the storage node properly).
Exploring the first option. |
|
First option didn't help much, on restore scene the scene view copy of the fid list doesn't have any fiducials. |
|
Found a different option that works: when the scene is restoring and the scene view fiducial list is empty, don't clear out the data in teh current node. See verbose commit messages on this branch: |
|
Reminder sent to: jcfr, pieper Feedback requested on the 8 commits on the branch: Steve: this runs into the scene view restore with different data having been saved to a scene view than in the scene. I'm not tied to the last commit (adding missing storage nodes) because it doesn't make a functional difference as far as I can tell but it makes the mrml files more "correct". |
|
Hmm, looks like you are on the right track but I don't really have the cycles to fully digest this right now. Having more extensive tests is definitely a great thing, so we can define the behavior we would expect to have when everything is working. I see you have added a new test but having some more would be helpful I think, like running the save/restore many times in a loop and seeing what happens to the scene. Also adding various node types (maybe one of each Storable) to confirm they load and save correctly. This might, I hope, expose some patterns of behavior that would help us better understand how the detail issues are working. As you note there is a lot going on here! |
|
I think the main issues with MRBs and scene views are still the things from bug 2816 - changes to data that's only saved on disk won't get restored. That bug is still in feedback right now though, I don't think we ever agreed on a final solution. My fixes on this branch fix a few of the book keeping issues but there's a larger semantic one. I'll add it to the developer hangout agenda for next week. |
|
Okay, yes, discussing it in the hangout should help. Maybe you can screenshare and show the test and the behaviors that are/aren't working correctly. Maybe you can focus on coming up with a concise description of the semantic issue you find with scene views. Now might be the time to change the behavior so that they are well defined with respect to storables and mrbs. |
|
Added notes to the developer meeting about the semantic issues, let me know if it needs another clarifying pass: |
|
Master Scene View is getting skipped for path updates, see this commit: Larger question: should there only be one master scene view per scene, or should they be renamed to show the save date/time if there are multiple ones? The MRB save process seems to ensure only one data bundle scene view, and does enforce a unique name. |
|
Current git hub branch: |
|
Pull request with 27 commits: |
|
Integrated as of SVN 24399: |
|
Topic branch warning users when scene view restore will delete data, with option to save data to the scene view: |
|
+1 Topic "3956-warn-when-sceneview-restore-will-delete-data " looks good |
|
Squashed, rebased, pull request: https://github.com/Slicer/Slicer/pull/313 |
|
Integrated in svn 24491 (CTK version bump) and 24493 (warning the user on scene view restore): |
|
Pull request for fixing missed volume property files: |
|
Added the general check in the save data dialogue to the pull request: |
|
Integrated: |
|
Import 2017-06-07 23:51:09: master 64f2ebc2 2015-07-07 13:52:40 naucoin Details Diff |
BUG: adding a test to show MRB and scene view bug Set up a scene with a volume and a fiducial list. Save scene views. Save to MRB. Close scene, reload MRB, restore scene view, save to MRB. Reload the MRB and make sure that the volume and fiducial list are as expected - when this bug is not fixed, the fiducial list size will be zero at this point. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24370 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/CMakeLists.txt | Diff File | ||
add - Applications/SlicerApp/Testing/Python/SlicerMRBMultipleSaveRestoreTest.py | Diff File | ||
Import 2017-06-07 23:51:09: master 9d3738d1 2015-07-07 13:52:44 naucoin Details Diff |
BUG: remove unreferenced storage node after loading sample data When loading a sample data volume, the volume node stops observing it, but the storage node was still in the scene. This change removes the unneeded storage node to simplify scene saving debugging. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24371 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Scripted/SampleData/SampleData.py | Diff File | ||
Import 2017-06-07 23:51:09: master 3fd97443 2015-07-07 13:52:48 naucoin Details Diff |
BUG: check for compressed file names Get the complete extension when files have paths that end in X.gz. This fixes bugs that came from multiple saves where a file might end up with the name brain.nii.nii.nii.nii.gz. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24372 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/QTGUI/qSlicerNodeWriter.cxx | Diff File | ||
mod - Base/QTGUI/qSlicerSaveDataDialog.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLStorageNode.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 17f2807b 2015-07-07 13:52:51 naucoin Details Diff |
BUG: update file list members when saving MRBs The file lists were not getting updated when volumes with multiple files listed were saved in the default format of nrrd. This change saves and restores the file list around MRB saving. Fixed the unique file name to not just append .nrrd to the end of the current file name. TODO: deal with the file lists in the storage nodes in the master scene view (problem when save a scene as mrml then save it to mrb). Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24373 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.h | Diff File | ||
Import 2017-06-07 23:51:09: master 43e94a5a 2015-07-07 13:52:54 naucoin Details Diff |
BUG: fix scene view storage leak on MRB save The new scene view storage node that was created to save a scene view snapshot for a new MRB wasn't being removed from the scene due to a variable scoping issue. Renamed the variable and stopped it from being hidden and remove it from the scene and delete as necessary. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24374 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master f07b0fbe 2015-07-07 13:52:58 naucoin Details Diff |
BUG: update test with more correct visibility toggles Digging into the missing fiducials data I realised that on MRB load and then scene view restore the individual fiducial visibility will not get saved/restored in scene views since that information is saved in the file on disk, only the list level visibility is saved. Updated the test to only test list level fiducial visibility. TBD: find a backward compatible way to move the per markup visibility into the markups display node. This behaviour is confusing since from a freshly started Slicer in which you create new scene views, the per markup visibility toggling does work (node copies are in memory), it will just cease to work once the scene is saved to disk and then re-opened. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24375 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/SlicerMRBMultipleSaveRestoreTest.py | Diff File | ||
Import 2017-06-07 23:51:09: master 1440084b 2015-07-07 13:53:01 naucoin Details Diff |
BUG: avoid overwriting markup information on scene view restore When a scene view is created in a running Slicer, the fiducial list nodes in the scene views have correct per fiducial information (visibility, position, etc). When the scene is saved to disk, only one fiducial file is saved, the current one for the main scene. The scene view nodes do not hold per fiducial information now that all of that is saved to disk. The fiducials are now the same as volumes and models in terms of not supporting data that's saved to disk changing between scene views. For individual fiducials, this means: position, orientation, visibility, selected, locked, label, description, and the associated node ID When loading a scene from disk and restoring a scene view, previously the markups node in the Copy function would clear out the data that it had been populated with via the storage node read. This change checks if the scene view is restoring and the node in the scene view, from which the data is going to get copied, has no fiducials in it, and in that case, don't clear out the list. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24376 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 7718bca3 2015-07-07 13:53:04 naucoin Details Diff |
BUG: add missing storage nodes on scene view save This is an optional fix, the issue is fixed without it but it is something that I ran across while digging into the series of bugs that needed fixing. If you open up Slicer, add a fiducial and a downloaded sample data volume, then save a scene view, the scene view is missing storage nodes for those nodes since they haven't been saved yet. Then when you save the scene to disk, storage nodes are created (usually by the save data dialog) and added to the main scene. Now there's a mismatch between the nodes in the main scene, the scene view saved at the save to disk moment, and the old scene view. This change checks for storable nodes that are to go into a scene view and adds storage nodes for them to avoid that node mismatch. The reason it's optional is that on scene load, the storage nodes are not triggered to read (and they currently all point to the same file name anyway). The MRB-Scene View multiple saves and restores test passes without this, but it makes the mrml file more clean to have matching storage nodes in all scene views. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24377 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master b62148ee 2015-07-07 13:53:07 naucoin Details Diff |
BUG: use smart pointers for leaking storage node Thanks to JC for pointing out a better way to manage the new scene view storage node, this change switches to using a smart pointer. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24378 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master b51b8c79 2015-07-07 13:53:11 naucoin Details Diff |
BUG: use smart pointers for new storage nodes From JC, use smart pointers for new storable node storage nodes being added to scene views. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24379 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master c6d6ec14 2015-07-07 13:53:15 naucoin Details Diff |
BUG: implement a Slicer specific Qt file suffix In the MRML storage node it is dealing correctly with tricky file names like brain.1.nii.gz to return the proper suffix. In Qt we were relying on completeSuffix but that was returning everything after the first dot in the file name and would fail on that example case. This change leverages the storage nodes to gather a list of valid file suffixes and compares them against the file name endings and returns a matching one. Special case included if .* is a valid Slicer suffix, that goes back to Qt's completeSuffix call. Note: tried calling fileWriterExtensions and ran into a crash as it was trying to add new storage nodes to the scene. Use the new suffix in the save data dialog and node writer. Added testing, more file name cases can be added easily. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24380 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/QTCore/Testing/Cxx/qSlicerCoreIOManagerTest1.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.h | Diff File | ||
mod - Base/QTGUI/qSlicerNodeWriter.cxx | Diff File | ||
mod - Base/QTGUI/qSlicerSaveDataDialog.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 7666fb8a 2015-07-07 13:53:20 naucoin Details Diff |
BUG: function name clarification, add getting readable extensions Thanks to comments from JC: Renamed completeSlicerSuffix to ompleteSlicerWritableFileNameSuffix in order to make it explicit that this was only checking writable extensions. Renamed allFileExtensions to allWritableFileExtensions to be more clear as well as adding the equivalent call for readable extensions, allReadableFileExtensions Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24381 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/QTCore/Testing/Cxx/qSlicerCoreIOManagerTest1.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.h | Diff File | ||
mod - Base/QTGUI/qSlicerNodeWriter.cxx | Diff File | ||
mod - Base/QTGUI/qSlicerSaveDataDialog.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 68a6db7c 2015-07-07 13:53:24 naucoin Details Diff |
BUG: warn the user when they add storable data after scene views When a storable node is added to the scene after scene views, warn the user that restoring a scene view will lose the newly added data. To avoid too many pop ups, don't warn during batch processing. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24382 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.h | Diff File | ||
Import 2017-06-07 23:51:09: master 785b4454 2015-07-07 13:53:31 naucoin Details Diff |
BUG: use a mini scene for volume loading The volumes logic was adding in multiple volume, display, storage nodes as it tries to load a file. This generated lots of node added/removed events so it was placed inside of a batch processing state for the scene. This leads to no node added event after the batch processing end event so the warning about adding new storable nodes to the scene after a scene view is already present wasn't getting triggered. This change uses a mini test scene to try loading data (borrowing the main scene cache manager in case the data is remote) and then adding the successful set of volume nodes to the main scene, with an extra node added event after batch processing ends. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24383 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx | Diff File | ||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.h | Diff File | ||
Import 2017-06-07 23:51:09: master cc0cc610 2015-07-07 13:53:34 naucoin Details Diff |
BUG: add support for remote IO The crop volume module self test uses remote data, it was failing with the mini scene in volumes logic until all the pieces were added in to support remote IO. TBD: update the infrastructure to make this more modular, test without batch processing flags. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24384 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master ab2676a1 2015-07-07 13:53:41 naucoin Details Diff |
ENH: factor out adding data io to the scene Encapsulated setting up the remote IO logic and the data manager IO in the application so that it can work as an example template. Moved the hooking up of the data logic to the scene to the application logic so that it can be called by classes with access to the application logic, and use it in the volumes logic for the mini scene. Added some comments to direct developers to the places they need to look to hook up a mini scene that can do data management both locally and remotely. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24385 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/Logic/vtkSlicerApplicationLogic.cxx | Diff File | ||
mod - Base/Logic/vtkSlicerApplicationLogic.h | Diff File | ||
mod - Base/QTCore/qSlicerCoreApplication.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreApplication.h | Diff File | ||
mod - Base/QTCore/qSlicerCoreApplication_p.h | Diff File | ||
mod - Libs/MRML/Logic/vtkMRMLRemoteIOLogic.cxx | Diff File | ||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 9d69cc06 2015-07-07 13:53:45 naucoin Details Diff |
ENH: test adding storable data after a scene view is created Add a fiducial, store a scene view, add a volume, restore the scene view. To conform with the current implmentation, the new storable node should not be present after the scene view is restored. The test pops up an info window which times out after 15s (needed during run time to let the user read it). Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24386 3bd1e089-480b-0410-8dfb-8563597acbee |
||
add - Modules/Loadable/SceneViews/Testing/Python/AddStorableDataAfterSceneViewTest.py | Diff File | ||
mod - Modules/Loadable/SceneViews/Testing/Python/CMakeLists.txt | Diff File | ||
Import 2017-06-07 23:51:09: master b651869b 2015-07-07 13:53:49 naucoin Details Diff |
COMP: fix test name for label Configuration was failing with the previous name for the new scripted self test. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24387 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/SceneViews/Testing/Python/CMakeLists.txt | Diff File | ||
Import 2017-06-07 23:51:09: master 904f2c42 2015-07-07 13:53:56 naucoin Details Diff |
BUG: reduce message noise When adding a storable node to the scene after a scene view has been added, make sure that only nodes that are saved with the scene generate the warning. Cleaned up debugging messages by changing warning to debug macros. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24389 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 1721c0ef 2015-07-07 13:54:03 naucoin Details Diff |
ENH: stress test saving and restoring MRBs, util methods added Add a test to save and restore MRBs in a loop, fixing the bug note in the save restore test as well. Clean up the testing of saving and loading MRBs by exposing the core io manager loadScene method to Python, and adding a saveScene one. This will simplify testing since it uses detects that it needs to use the scene writer which will use the application logic save to MRB bundle directory + zip calls, so from python you won't need to make the two calls with attendant managing of temporary directories. Added a note to the application logic header file pointing to saveScene for general use. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24390 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/CMakeLists.txt | Diff File | ||
add - Applications/SlicerApp/Testing/Python/SlicerMRBMultipleSaveRestoreLoopTest.py | Diff File | ||
mod - Applications/SlicerApp/Testing/Python/SlicerMRBMultipleSaveRestoreTest.py | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.cxx | Diff File | ||
mod - Base/QTCore/qSlicerCoreIOManager.h | Diff File | ||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.h | Diff File | ||
Import 2017-06-07 23:51:09: master 5a954215 2015-07-07 13:54:22 naucoin Details Diff |
BUG: fix moving volume nodes from test to main scene In testing the Reporting extension, a bug was found where error messages were being printed and the volume node had it's IJK to RAS matrix reset to identity. Removing the nodes from the test scene before adding them to the main scene seems to have fixed this, all relevant tests are passing now. This change removes the following error messages: GetNodeByID: Node is in the scene, but its ID is missing from the NodeIDs cache: vtkMRMLScalarVolumeNode3 ditto for vtkMRMLScalarVolumeDisplayNode2 and vtkMRMLVolumeArchetypeStorageNode2 and fixes the test py_ReportingRoundTripTest Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24391 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master ad493e38 2015-07-07 13:54:25 naucoin Details Diff |
BUG: redo observations for volume loading with mini scene Found during stress testing MRBs with file paths, the final correct set of nodes used to load the volume need the storage and display node observations reset after moving from the mini scene to the main scene. The SampleData module wasn't finding the extra storage node to remove it. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24392 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Volumes/Logic/vtkSlicerVolumesLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master e6477abb 2015-07-07 13:54:31 naucoin Details Diff |
BUG: remove node SceneRootDir, use RootDirectory on MRML scene The node ivar scene root directory wasn't staying updated when the root directory was changing on the scene. Updated the code to refer to the scene for the root directory. One important change is that in the XML parser, the scene has to be set on a storage node before reading/writing it so that the absolute path can be determined. Also set the scene root dir more consistently Updated the fiber bundle node test to use the testing macros since it was reproducing code. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24393 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/Testing/vtkMRMLFiberBundleNodeTest1.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLCoreTestingMacros.h | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLNode.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLNode.h | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLParser.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLScene.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLStorageNode.cxx | Diff File | ||
mod - Modules/Loadable/Data/qSlicerSceneWriter.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master d34213e3 2015-07-07 13:54:36 naucoin Details Diff |
BUG: Add a test that checks file paths after MRML and MRB save/load Add a test that checks the paths in the scene with saving to mrml (have to force a write of a sample data node since the saveScene call only writes out the MRML file, no storage nodes are triggered to write) and MRB and reloading and saving to MRB. Remove skipping the master scene view as paths of storage nodes there do need to be updated. TBD: fix the paths after saving the MRB a second time (they get reset to the deleted bundle directory from the first MRB save). Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24394 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/CMakeLists.txt | Diff File | ||
add - Applications/SlicerApp/Testing/Python/SlicerMRBSaveRestoreCheckPathsTest.py | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.cxx | Diff File | ||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master b29d28c9 2015-07-07 13:54:42 naucoin Details Diff |
BUG: update file list members, scene vars, update test Update the MRB save/restore test to use the slicer util delayDisplay method, as well as not counting file paths that point to the deleted bundle expansion directory. In scene view nodes make sure to also reset the file list Restore the url and root direcotry after saving a scene to the data bundle directory so that absolute paths can be calculatediproperly Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24395 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/Testing/Python/SlicerMRBSaveRestoreCheckPathsTest.py | Diff File | ||
mod - Base/QTCore/qSlicerSceneBundleReader.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.cxx | Diff File | ||
mod - Libs/MRML/Logic/vtkMRMLApplicationLogic.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master bed28d5a 2015-07-07 13:54:45 naucoin Details Diff |
BUG: after MRB save, reset storables to modified When saving files into an MRB, the storable nodes are marked as not modified since the last save. This is a problem when new data was generated (for example via model maker) and the new files were only saved in the now deleted MRB directory. Reset all the storable nodes to modified since reads so that saving the scene as a .mrml file and data files will succeed. Will not affect multiple MRB savings. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24396 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/Data/qSlicerSceneWriter.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master 1589f1c2 2015-07-07 13:54:49 naucoin Details Diff |
BUG: only time out extra storable message during testing The pop up window that gives the user feedback about how not to lose new storable data after creating a scene view was timing out before some testers could finish reading and understanding the information. Added a boolean property to the capture tool bar, popupsTimeOut, that the main window can set to true when the enable testing attribute has been turned on. Verified that the test AddStorableDataAfterSceneViewTest still passes and doesn't hang. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24397 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Applications/SlicerApp/qSlicerAppMainWindow.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.h | Diff File | ||
Import 2017-06-07 23:51:09: master 96d3e073 2015-07-07 13:54:52 naucoin Details Diff |
STYLE: add blank lines to warning message Make the message more readable by adding white space. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24398 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master ce8488e6 2015-07-07 13:55:01 naucoin Details Diff |
BUG: remove storable added after scene view message Testing showed that this was confusing, remove the observation on node added events from the capture toolbar as well as the pop up message. Leaves the popup timeout flag for future messages. TODO: move the test to on scene view about to be restored. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24399 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.cxx | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLCaptureToolBar.h | Diff File | ||
Import 2017-06-07 23:51:09: master 399bc48a 2015-07-07 15:30:53 naucoin Details Diff |
BUG: update test to fix regression Update the scene view node store test to take into account the newly added storage nodes in scene view scenes. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24401 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/Testing/vtkMRMLSceneViewNodeStoreSceneTest.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master cfd202cb 2015-07-07 15:39:24 naucoin Details Diff |
BUG: fix regression introduced by adding storage nodes to scene views Update the test to check for the correct number of nodes, 3 to include the added storage node in the scene view. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24402 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/Testing/vtkMRMLSceneViewNodeImportSceneTest.cxx | Diff File | ||
Import 2017-06-07 23:51:09: master a1b0691e 2015-08-11 19:09:33 naucoin Details Diff |
ENH: check for data that will get deleted on scene view restore Added a flag to the scene view node restore call that will cancel if any nodes come up as being in the main Slicer scene but not in the scene view scene about to be restored. Added a method to add nodes to the scene view scene that are in the main Slicer scene but not in the scene view. Updated the GUI for restoring scenes via the tool bar and the Scene Views module to pop up message boxes to give the user options to discard the data, add it to the scene view, or cancel the restore. Updated the test to include a failure case when removing nodes is not allowed. Unify scene view node to use SafeDownCast instead of a mix of dynamic_cast and SafeDownCast. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24493 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.cxx | Diff File | ||
mod - Libs/MRML/Core/vtkMRMLSceneViewNode.h | Diff File | ||
mod - Libs/MRML/Widgets/qMRMLSceneViewMenu.cxx | Diff File | ||
mod - Modules/Loadable/SceneViews/GUI/qSlicerSceneViewsModuleWidget.cxx | Diff File | ||
mod - Modules/Loadable/SceneViews/Logic/vtkSlicerSceneViewsModuleLogic.cxx | Diff File | ||
mod - Modules/Loadable/SceneViews/Logic/vtkSlicerSceneViewsModuleLogic.h | Diff File | ||
mod - Modules/Loadable/SceneViews/Testing/Python/AddStorableDataAfterSceneViewTest.py | Diff File | ||
Import 2017-06-07 23:51:09: master 4f65338f 2015-09-29 17:48:02 naucoin Details Diff |
BUG: fix volume property file extensions for saving When fixing the repeated file extensions problem, the volume property files were missed. The problem came up when loading in a volume property file via add data (rather than a scene file) then trying to save it again. The node was named with the .vp file extension and then the file name was adjusted to add another .vp to the end. This fix changes the the name of the node to exclude the extension so it will save correctly. Added testing for the AddVolumePropertyFromFile method and added some checks to it for missing scene and file names. Added the supported write types as well. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24583 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Modules/Loadable/VolumeRendering/Logic/Testing/Cxx/CMakeLists.txt | Diff File | ||
add - Modules/Loadable/VolumeRendering/Logic/Testing/Cxx/vtkSlicerVolumeRenderingLogicAddFromFileTest.cxx | Diff File | ||
mod - Modules/Loadable/VolumeRendering/Logic/vtkSlicerVolumeRenderingLogic.cxx | Diff File | ||
mod - Modules/Loadable/VolumeRendering/MRML/vtkMRMLVolumePropertyStorageNode.cxx | Diff File | ||
mod - Modules/Loadable/VolumeRendering/MRML/vtkMRMLVolumePropertyStorageNode.h | Diff File | ||
Import 2017-06-07 23:51:09: master c44f73b3 2015-09-29 17:48:06 naucoin Details Diff |
ENH: remove doubled extenions before saving Some nodes when they are read in by the node readers end up with names that include the extension, such as vol.vp. This change ensures that the known extension will not be added to the end of the name to create a file name with a doubled extension, such as vol.vp.vp. Fixed a typo in a variable name. Issue 0003956 git-svn-id: http://svn.slicer.org/Slicer4/trunk@24584 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - Base/QTGUI/qSlicerSaveDataDialog.cxx | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2015-02-10 05:38 | nicole | New Issue | |
2015-02-10 05:38 | nicole | Status | new => assigned |
2015-02-10 05:38 | nicole | Assigned To | => nicole |
2015-02-10 05:39 | nicole | Reporter | nicole => kikinis |
2015-02-10 05:39 | nicole | Relationship added | related to 0003689 |
2015-02-10 10:33 | nicole | Note Added: 0012904 | |
2015-02-13 10:46 | nicole | Note Added: 0012910 | |
2015-02-17 12:30 | nicole | Relationship added | related to 0003961 |
2015-02-17 12:31 | nicole | Note Added: 0012918 | |
2015-02-18 11:05 | nicole | Note Added: 0012921 | |
2015-02-18 12:58 | nicole | Note Added: 0012922 | |
2015-02-19 11:36 | nicole | Note Added: 0012923 | |
2015-02-19 11:39 | nicole | Note Added: 0012924 | |
2015-02-19 11:41 | nicole | Relationship added | related to 0002816 |
2015-02-19 13:26 | pieper | Note Added: 0012925 | |
2015-02-19 13:50 | nicole | Note Added: 0012926 | |
2015-02-19 13:56 | pieper | Note Added: 0012927 | |
2015-02-23 12:22 | nicole | Note Added: 0012929 | |
2015-02-24 07:34 | nicole | Note Added: 0012933 | |
2015-04-28 10:41 | nicole | Relationship added | related to 0003992 |
2015-04-28 10:47 | nicole | Note Added: 0013025 | |
2015-06-10 11:39 | nicole | Note Added: 0013123 | |
2015-07-07 10:28 | nicole | Note Added: 0013173 | |
2015-07-07 10:28 | nicole | Status | assigned => resolved |
2015-07-07 10:28 | nicole | Fixed in Version | => Slicer 4.5.0-1 |
2015-07-07 10:28 | nicole | Resolution | open => fixed |
2015-07-28 14:59 | nicole | Note Added: 0013195 | |
2015-07-28 15:45 | jcfr | Note Added: 0013196 | |
2015-08-03 23:02 | jcfr | Relationship added | related to 0003584 |
2015-08-04 08:17 | nicole | Note Added: 0013225 | |
2015-08-12 10:01 | nicole | Note Added: 0013239 | |
2015-08-18 12:46 | nicole | Relationship added | related to 0004033 |
2015-09-09 08:29 | jcfr | Target Version | Slicer 4.4.1 => Slicer 4.5.0-1 |
2015-09-15 10:23 | nicole | Note Added: 0013273 | |
2015-09-28 10:06 | nicole | Note Added: 0013322 | |
2015-09-29 14:24 | nicole | Note Added: 0013324 | |
2015-11-30 18:20 | jcfr | Relationship added | has duplicate 0003888 |
2015-11-30 18:20 | jcfr | Relationship deleted | has duplicate 0003888 |
2015-11-30 18:20 | jcfr | Relationship added | related to 0003888 |
2017-06-10 08:51 | Changeset attached | => Slicer master c44f73b3 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 4f65338f | |
2017-06-10 08:51 | Changeset attached | => Slicer master a1b0691e | |
2017-06-10 08:51 | Changeset attached | => Slicer master cfd202cb | |
2017-06-10 08:51 | Changeset attached | => Slicer master 399bc48a | |
2017-06-10 08:51 | Changeset attached | => Slicer master ce8488e6 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 96d3e073 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 1589f1c2 | |
2017-06-10 08:51 | Changeset attached | => Slicer master bed28d5a | |
2017-06-10 08:51 | Changeset attached | => Slicer master b29d28c9 | |
2017-06-10 08:51 | Changeset attached | => Slicer master d34213e3 | |
2017-06-10 08:51 | Changeset attached | => Slicer master e6477abb | |
2017-06-10 08:51 | Changeset attached | => Slicer master ad493e38 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 5a954215 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 1721c0ef | |
2017-06-10 08:51 | Changeset attached | => Slicer master 904f2c42 | |
2017-06-10 08:51 | Changeset attached | => Slicer master b651869b | |
2017-06-10 08:51 | Changeset attached | => Slicer master 9d69cc06 | |
2017-06-10 08:51 | Changeset attached | => Slicer master ab2676a1 | |
2017-06-10 08:51 | Changeset attached | => Slicer master cc0cc610 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 785b4454 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 68a6db7c | |
2017-06-10 08:51 | Changeset attached | => Slicer master 7666fb8a | |
2017-06-10 08:51 | Changeset attached | => Slicer master c6d6ec14 | |
2017-06-10 08:51 | Changeset attached | => Slicer master b51b8c79 | |
2017-06-10 08:51 | Changeset attached | => Slicer master b62148ee | |
2017-06-10 08:51 | Changeset attached | => Slicer master 7718bca3 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 1440084b | |
2017-06-10 08:51 | Changeset attached | => Slicer master f07b0fbe | |
2017-06-10 08:51 | Changeset attached | => Slicer master 43e94a5a | |
2017-06-10 08:51 | Changeset attached | => Slicer master 17f2807b | |
2017-06-10 08:51 | Changeset attached | => Slicer master 3fd97443 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 9d3738d1 | |
2017-06-10 08:51 | Changeset attached | => Slicer master 64f2ebc2 | |
2018-03-02 11:06 | jcfr | Status | resolved => closed |