{"action":"created","issue":{"url":"https://api.github.com/repos/Slicer/Slicer/issues/480","repository_url":"https://api.github.com/repos/Slicer/Slicer","labels_url":"https://api.github.com/repos/Slicer/Slicer/issues/480/labels{/name}","comments_url":"https://api.github.com/repos/Slicer/Slicer/issues/480/comments","events_url":"https://api.github.com/repos/Slicer/Slicer/issues/480/events","html_url":"https://github.com/Slicer/Slicer/pull/480","id":146527476,"number":480,"title":"BUG: Fixed edit properties option in node selectors","user":{"login":"lassoan","id":307929,"avatar_url":"https://avatars.githubusercontent.com/u/307929?v=3","gravatar_id":"","url":"https://api.github.com/users/lassoan","html_url":"https://github.com/lassoan","followers_url":"https://api.github.com/users/lassoan/followers","following_url":"https://api.github.com/users/lassoan/following{/other_user}","gists_url":"https://api.github.com/users/lassoan/gists{/gist_id}","starred_url":"https://api.github.com/users/lassoan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lassoan/subscriptions","organizations_url":"https://api.github.com/users/lassoan/orgs","repos_url":"https://api.github.com/users/lassoan/repos","events_url":"https://api.github.com/users/lassoan/events{/privacy}","received_events_url":"https://api.github.com/users/lassoan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-04-07T07:08:09Z","updated_at":"2016-04-07T14:01:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Slicer/Slicer/pulls/480","html_url":"https://github.com/Slicer/Slicer/pull/480","diff_url":"https://github.com/Slicer/Slicer/pull/480.diff","patch_url":"https://github.com/Slicer/Slicer/pull/480.patch"},"body":"Fixes http://www.na-mic.org/Bug/view.php?id=2109\r\n\r\nNow any module can associate a MRML node type with a module (instead of having a hardcoded list of modules\r\nin qSlicerApplication) and when switching to a module, the chosen node is selected as active node.\r\nAssociations can be added by calling qSlicerApplication::registerNodeModule().\r\nMultiple modules can be associated with the same MRML node type.\r\n\r\nThe best module for a specific node instance is determined run-time, by calling\r\nqSlicerAbstractModuleWidget::nodeEditable() for each candidate and choosing\r\nthe one that has the highest confidence in handling the node.\r\nThis mechanism is used for selecting the CLI module that corresponds to a specific CLI module parameter node.\r\nThis mechanism is also used for switching to volume rendering module if a volume rendering clipping ROI node\r\nis selected for editing (instead of switching to the Annotations module).\r\nThe most suitable module's qSlicerAbstractModuleWidget::setEditedNode() method is called to select the currently edited node.\r\nqSlicerAbstractModuleWidget::nodeEditable() and qSlicerAbstractModuleWidget::setEditedNode() methods can be overridden\r\nin scripted loadable modules as well.\r\n\r\nAs edited node selection is now possible using a clean, unified method call, it is no longer necessary\r\nto access GUI widgets directly. Therefore, almost all editProperties() method calls in subject hierarchy plugins were\r\nremoved (replaced by a common implementation in the base class). This new, simplified method fixes robustness issues\r\nof using node name filters for selecting a node in model hierarchy, inability to choose annotation hierarchy nodes, etc.\r\n\r\nqSlicerAbstractModuleWidget::setEditedNode(vtkMRMLNode* node, QString role, QString context) has two extra (optional)\r\narguments. Role can be used to specify additional nodes for a module (e.g., if there are multiple inputs for a module\r\nthen role argument can select between them). Context can be used for specifying a sub-selection within a node (for\r\nexample, Segment Editor module can be activated for a selected segment - specified by 'context' - of a specific\r\nsegmentation node - specified by 'node')."},"comment":{"url":"https://api.github.com/repos/Slicer/Slicer/issues/comments/206921130","html_url":"https://github.com/Slicer/Slicer/pull/480#issuecomment-206921130","issue_url":"https://api.github.com/repos/Slicer/Slicer/issues/480","id":206921130,"user":{"login":"pieper","id":126077,"avatar_url":"https://avatars.githubusercontent.com/u/126077?v=3","gravatar_id":"","url":"https://api.github.com/users/pieper","html_url":"https://github.com/pieper","followers_url":"https://api.github.com/users/pieper/followers","following_url":"https://api.github.com/users/pieper/following{/other_user}","gists_url":"https://api.github.com/users/pieper/gists{/gist_id}","starred_url":"https://api.github.com/users/pieper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pieper/subscriptions","organizations_url":"https://api.github.com/users/pieper/orgs","repos_url":"https://api.github.com/users/pieper/repos","events_url":"https://api.github.com/users/pieper/events{/privacy}","received_events_url":"https://api.github.com/users/pieper/received_events","type":"User","site_admin":false},"created_at":"2016-04-07T14:01:17Z","updated_at":"2016-04-07T14:01:17Z","body":"Very nice!  Thanks!"}}