- User Since
- Feb 18 2021, 3:37 PM (31 w, 1 d)
Thu, Sep 23
With both subtasks done, we have successfully implemented the main goal of this task. The remaining bug that deactivating a segmentation tool resets the interaction to an earlier state (the one at which the tool was activated) has been split off into T28630 because it is not critical and can be easily handled with the new feature of deactivating PACS tools.
Wed, Sep 15
Fri, Sep 10
The proposed change goes kind of in the opposite direction of recent changes that were made, specifically in D531 and part of D532. If the approach of D535 is to be continued, it would need to take into account D532, in which an additional PACS scheme was introduced that leaves the left mouse button unused.
I would personally prefer the direction we have been taking now, splitting up the config files into smaller chunks. This reduces code redundancy, instead of having almost identical config files many times.
Also, in my opinion the approach of D531 makes a lot of sense for overlapping interactions. It allows to change only the aspects of interaction that are necessary while staying oblivious to the current interaction (MITK default, with swivel, PACS, ...). If we want to use full configs, one would need any variation of each scheme for each situation where alterations may be necessary. For example 2D segmentation tools require the left mouse button, so any possible interaction scheme needs to have a corresponding version where the left mouse button is unused. If a tool requires something new, like the right mouse button, new config files have to be implemented for every existing interaction scheme instead of just one file that will be appended.
Aug 25 2021
Possible duplicate of T28278? That task's description is not very clear about the problem, but could be referencing the same thing
Aug 17 2021
Aug 13 2021
Aug 11 2021
As of now, we will remain with Qt 5.12 for a while, since it is a well maintained long-term version
Aug 10 2021
Aug 3 2021
Aug 2 2021
The cause for this problem lies in missing state-transitions of the interaction state-machine. DisplayConfigPACS.xml defines the events based on which the state-machine in DisplayInteraction.xml acts. For modifier-based interactions, a MousePressEvent / MouseReleaseEvent in combination with a modifier-key are responsible to transition into / out of the corresponding state ("move", "zoom", ...). When the modifier-key is released BEFORE releasing the mouse button, the second event is never triggered, causing the state machine to get stuck in that specific state, which blocks most other interactions.
Jul 28 2021
Jul 26 2021
It seems this idea is currently not directly implementable, in the way of clicking a button again to deactivate it. In the constructor of QmitkInteractionSchemeToolBar.cpp the line m_ActionGroup->setExclusive(true); guarantees that exactly one option is selected at any time. Since Qt 5.14 there is the option to set an ExclusionPolicy of ExclusionOptional, which accomplishes exactly what was thought of in this task. As this is not available yet, one would either need to manually implement the desired behavior of activating/deactivating actions, or wait until perhaps a newer version of Qt is used.
Jul 22 2021
Jul 19 2021
Jul 15 2021
Jul 7 2021
So far, I have not heard from anybody about the message I sent around. I wanted to send another reminder of it soon, in case some people just forgot
Jul 6 2021
Jul 5 2021
André, Amir and I discussed the problem a bit and found multiple problems and ideas. The general question is: what is the intended behavior? Some options are:
- only one interaction can be active at any time. This would mean activating a segmentation tool would deactivate any PACS functionality and vice versa. Not really what we want, since it prohibits using regular MITK interaction behavior (e.g. zooming with the right mouse button) while segmenting
- only one left-mouse-button interaction is active at any time. Activating a segmentation tool would automatically disable left-mouse-button usage for display purposes
- multiple interactors can operate on the same events, i.e. PACS + segmentation at the same time is intended behavior, if the user wishes to do so. To make this useful, it should be possible to deactivate PACS interaction, either by allowing to click a button again to deselect it or by providing an additional button that does nothing on left clicks.
The problem really seems to be the disabling / resetting of interactors that was mentioned in an earlier comment, even with the fix that corrects the resetting when the tool is deactivated again. Correct usage would be:
- moving around the gui, using PACS
- selecting a segmentation tool (which deactivates other interactors)
- only using the segmentation tool, without changing the view
- deactivating the segmentation tool (and thus reenabling previous interactors)
- -> everything works as intended
When a PACS tool is selected after step 2, this messes up the active interaction and after the segmentation tool is deactivated it resets to what was previously selected, before the tool was activated.
Jun 28 2021
Some additional observations:
- The behavior works as expected when selecting the segmentation tool AFTER changing the PACS action. Only when selecting a new PACS action while the segmentation tool is still active, they both act simultaneously
- When some PACS action (action 1) is selected, then a segmentation tool is selected, the PACS action is changed (to action 2), and the segmentation tool is deselected again, PACS action 1 will be active but action 2 is marked in the sidebar as selected
I was not able to reproduce this bug on Windows with the v2021.02 release as well as the current develop branch
Jun 15 2021
I was able to reproduce the bug for all morphological operations (Dilation, Erosion, ...) and also in all orientations (axial, coronal, sagittal). Other segmentation utilities all work without problem.
Jun 2 2021
It seems to be the same bug, I just failed to find the existing task. Since I found it in the last Release version, the bugfix was just not included yet, but the problem is still solved. I guess this task can be closed then
Jun 1 2021
May 26 2021
May 17 2021
May 7 2021
I've started a draft for a message to send around, found here if you want to have a look or add something: https://hub.dkfz.de/s/HzpkipeWRkq3K8K
Apr 30 2021
Mar 30 2021
Mar 12 2021
Mar 1 2021
I got the same result as kislinsk, the crash only occurs when the documentation is open and not in the background