View Issue Details

IDProjectCategoryView StatusLast Update
0002832Slicer4Core: GUIpublic2014-03-06 06:15
Reporterpieper Assigned Tofinetjul  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002832: Cannot type values into the spacing field of the Volumes -> Information interface
Description

The spin boxes in the Volume Information field behave very strangely.

Steps To Reproduce

Download MR head (or any volume)

Enter Volumes module and try to type in the Image spacing field. Note that sometimes you can't type any numbers. Other times you maybe can delete one character and type one but not more numbers.

Additional Information

Probably we should not use the information from the spin box until it loses focus - that is, let the user type a full number like 10.324 but only try to update the volume property when the user has finished.

TagsNo tags attached.

Relationships

related to 0002973 closedfinetjul cannot type small numbers into the Volume spacing field 

Activities

sankhesh

sankhesh

2012-12-25 08:03

developer   ~0007580

Pushed CTK topic: https://github.com/commontk/CTK/pull/284/files

Kindly review and merge. I can then update the CTK tag to checkout for Slicer.

sankhesh

sankhesh

2012-12-28 11:27

developer   ~0007594

Pushed additional changes to CTK topic: https://github.com/commontk/CTK/pull/284

finetjul

finetjul

2013-01-07 08:09

administrator   ~0007623

This problem is not localized but is widespread to Slicer.
I don't think CTK pull request 0000284 is the correct(unique) solution to this problem.
For instance, it won't help when pressing down the up arrow in the spinboxes (it should increase the value as long as the button is down).
0000284 is not enough as it targets only ctkCoordinatesWidgets.
One should think of a more generic solution.
Here the root of the problem is that:
1) a value is being changed by the user in a spinbox.
1b) the spinbox enters in an "interactive" mode
2) the module is notified
3) the module sets the MRML node property accordingly
4) the node fires a Modified event and the module is notified
5) the module sets the new value to the spinbox.
6) setting the value (sometime slightly different because of some rounding) stops the "interactive" mode of the spinbox ( e.g. a) despite the arrow button being down, it won't trigger any new value change on timer, b) typing a new digit in the spinbox doesn't change the following digit).

We need to think of some generic solution. So far, I can think of:
a) add a custom ctkSpinBox::setValueInteractively(double val ) which tries to not stop the "interactive" mode (to investigate)
b) add a custom ctkSpinBox::setValueIfDifferent(double) which doesn't do anything if the value is the same (or close), this would prevent the interactive mode from being stopped.
c) have a custom ctkSpinBox edition mode that replaces the next digit (same behavior as if "Insert" keyboard key is not active).
There might be other ideas, feel free to post.

sankhesh

sankhesh

2013-01-14 18:53

developer   ~0007670

@Julien,

Thanks for reviewing.
I gave a little thought to the suggested changes. However, I am not sure if I understand how exactly would the spinbox end the "interactive mode" and why would the module set a new value on the spinbox while the user is entering a value? Shouldn't leaving focus or pressing return key trigger the interactive mode to end?

Pressing either the "up" button or the "down" button emits editingFinished() signal at each increment. I checked the behavior and it seems to work fine with ctkCoordinatesWidget and ctkMatrixWidget.

pieper

pieper

2013-01-29 09:25

administrator   ~0007753

Hi Guys - any further thoughts on this? Typing new values into these spin boxes is still very confusing...

finetjul

finetjul

2013-01-29 10:22

administrator   ~0007760

It's in progress, we are discussing ways of doing it.

finetjul

finetjul

2013-07-17 09:51

administrator   ~0009099

Fixed in r22151

jcfr

jcfr

2014-03-06 05:18

administrator   ~0011123

Closing resolved issues that have not been updated in more than 3 months

Issue History

Date Modified Username Field Change
2012-12-17 09:16 pieper New Issue
2012-12-17 09:16 pieper Status new => assigned
2012-12-17 09:16 pieper Assigned To => finetjul
2012-12-17 13:10 finetjul Assigned To finetjul => sankhesh
2012-12-25 08:03 sankhesh Note Added: 0007580
2012-12-25 08:03 sankhesh Status assigned => feedback
2012-12-28 11:27 sankhesh Note Added: 0007594
2013-01-07 08:09 finetjul Note Added: 0007623
2013-01-14 18:53 sankhesh Note Added: 0007670
2013-01-29 09:25 pieper Note Added: 0007753
2013-01-29 10:22 finetjul Note Added: 0007760
2013-06-03 05:15 jcfr Status feedback => assigned
2013-06-03 05:15 jcfr Assigned To sankhesh => jcfr
2013-07-17 09:51 finetjul Relationship added related to 0002973
2013-07-17 09:51 finetjul Assigned To jcfr => finetjul
2013-07-17 09:51 finetjul Note Added: 0009099
2013-07-17 09:51 finetjul Status assigned => resolved
2013-07-17 09:51 finetjul Fixed in Version => Slicer 4.3.0
2013-07-17 09:51 finetjul Resolution open => fixed
2014-03-06 05:18 jcfr Note Added: 0011123
2014-03-06 05:19 jcfr Status resolved => closed
2014-03-06 06:15 jcfr Target Version => Slicer 4.3.0