# Delete control point / delete fiducial pop-up - confirm box?

**URL:** <https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430>\
**Category:** Development\
**Created:** [October 31, 2021, 3:10pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430 "2021-10-31T15:10:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![hherhold](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/hherhold/32/12199_2.png) [@hherhold](https://discourse.slicer.org/u/hherhold)\
**Post date:** [October 31, 2021, 3:10pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/1 "2021-10-31T15:10:34Z")

</div>

This kinda harkens back to some discussions here and there with @muratmaga and others here regarding placing control points and the right-click pop-up menu. I rename and delete control points placed in the 3D view a lot, and on several occasions I’ve accidentally hit “Delete Fiducial” instead of “Delete control point”, and wind up blowing away a bunch of points. I fully realize it’s my own lack of dexterity that leads to this, but would it make sense to have a confirmation dialog for “Delete Fiducial”? Or possibly moving it so it’s not right next to “Delete control point”? If I’m the only one with this issue, it’s no big deal and I can live with it, just wondering if others have run into this and if it’s worth thinking about changing.

Thanks!

-Hollister

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [October 31, 2021, 3:54pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/2 "2021-10-31T15:54:38Z")

</div>

I don’t believe an additional confirmation box is the right solution to this issue. Right-click context menu with selection and clicking is a fairly deliberate action, so it would be a bit annoying to deliberately choose to “Delete Fiducial” and then have to click another pop-up to confirm the deliberate action to delete.

Moving the location of this action to the top of the list however, could be a nice solution to move the two options away from being directly next to each other. It would also make consistent the ordering of the control point actions versus the fiducial object actions where the “Delete” action is at the top followed by various editing of that object below it. Having it at the top is probably also consistent with it seemingly being the more commonly used action as well. See the image below of this change.

| Current | New Option |
| --- | --- |
| ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/7/7/7774f072aecc8ac3f501c1cebfacb7239baf2196.png) | |

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 4:11pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/3 "2021-10-31T16:11:40Z")

</div>

> [@jamesobutler](#):
>
> I don’t believe an additional confirmation box is the right solution to this issue. Right-click context menu with selection and clicking is a fairly deliberate action, so it would be a bit annoying to deliberately choose to “Delete Fiducial” and then have to click another pop-up to confirm the deliberate action to delete.

It is true, but we don’t have an undo. So a mistake of accidentally deleting a whole markup node vs a control point is very costly (that you might loose dozens or hundreds of points). While I don’t see a need for confirmation for deleting an individual point, I think the cost of error overweighs the minor annoyance, for confirming to delete a whole node.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [October 31, 2021, 4:16pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/4 "2021-10-31T16:16:34Z")

</div>

If a confirmation dialog is added, then it should be added consistently across the application for all delete object actions. This would including right-clicking and pressing “Delete” when selecting an object to delete in a node table such as the Data module or Markups module. This just doesn’t strike me as the correct solution. It is going to be annoying to users who know what they are doing and are saying to delete and then get asked are you sure you want to delete. All this to avoid the more infrequent case of accidentally deleting.

![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/7/5/75403a54eef98759825cefb63f2084ef7111fed7.png)

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 4:25pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/5 "2021-10-31T16:25:46Z")

</div>

> [@jamesobutler](#):
>
> If a confirmation dialog is added, then it should be added consistently across the application for all delete object actions.

Why? It is not like we have lots of consistency across actions in all modules?

THe screenshot you share is not reflective of the issue in hand. In markups, in the menu there are two delete operations and that the difference between control points and fiducials has been murky for users (perhaps with the exception of people who has been using Slicer since version 2) at best. In your scenario above, there is no accidental deleting (i.e., mistaking an action).

I would also second that confirmation should be added to any costly unrecoverable operations, with the option to disable the confirmation (e.g., like we do closing the slicer scene without asking to save the files, if it is a deliberate action)

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [October 31, 2021, 4:31pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/6 "2021-10-31T16:31:14Z")

</div>

> [@muratmaga](#):
>
> It is not like we have lots of consistency across actions in all modules?

This should be something attempted. Blatantly going against consistency is bad design.

If your users have some confusion between fiducials and control points have you considered creating a Slicer custom application so that you can customize the right-click context menu as you please for your users?

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 4:40pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/7 "2021-10-31T16:40:41Z")

</div>

> [@jamesobutler](#):
>
> This should be something attempted. Blatantly going against consistency is bad design.

I would argue risking to loose data is even worse design.

> [@jamesobutler](#):
>
> If your users have some confusion between fiducials and control points have you considered creating a Slicer custom application so that you can customize the right-click context menu as you please for your users?

We do not have a set of ‘fixed users’. A lot of ‘our users’ are biologists, who are likely to use the base SLicer application, not a customized version of slicer. Nor we have the bandwidth or resources to maintain such application. We are biologists, not software developers. Plus, this mistake is likely to affect any new Slicer user, just ‘our users’.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [October 31, 2021, 4:49pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/8 "2021-10-31T16:49:37Z")

</div>

@hherhold Would the proposed design of moving the delete control point action to the top of the list be helpful for you? If so, I would be happy to submit that change as a new PR.

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 5:00pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/9 "2021-10-31T17:00:14Z")

</div>

I would suggest having these actions close together and with at a more description, perhaps something like this:

- Delete Control Point
- Delete FiducialNode (deletes all control points).

@lassoan @hherhold @smrolfe what do you think?

---

<div class="post-metadata">

**Author:** ![hherhold](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/hherhold/32/12199_2.png) [@hherhold](https://discourse.slicer.org/u/hherhold)\
**Post date:** [October 31, 2021, 6:09pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/10 "2021-10-31T18:09:34Z")

</div>

I think @jamesobutler 's suggestion of moving Delete Fiducial Node away from Delete Control Point is the “low hanging fruit” for this. Regarding the last suggestion from @muratmaga - It’s not that I don’t know what each one does, it’s just in the heat of the moment (putting down markups is pretty exciting) I will inadvertently click the wrong one and delete a bunch of work.

I would leave Rename as the first option as it’s probably done more than any other, and delete control point right under it.

Opinions?

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 6:29pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/11 "2021-10-31T18:29:12Z")

</div>

> [@hherhold](#):
>
> It’s not that I don’t know what each one does, it’s just in the heat of the moment (putting down markups is pretty exciting) I

That’s exactly my point. You as an experienced user can potentially confuse this. İ thought keeping them right next to each other oppose to far from, likely to reduce this error. Because you are more likely to see both at the same time and give it a thought before you click the whichever one you saw first.

---

<div class="post-metadata">

**Author:** ![hherhold](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/hherhold/32/12199_2.png) [@hherhold](https://discourse.slicer.org/u/hherhold)\
**Post date:** [October 31, 2021, 6:30pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/12 "2021-10-31T18:30:41Z")

</div>

Oh, I see. Yeah, that’s a valid point, and having the extra verbiage is probably enough to make sure I don’t click the wrong one. And organizationally it does make sense to have them in the same general area. Sure, I’ll vote for that option.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [October 31, 2021, 8:51pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/13 "2021-10-31T20:51:41Z")

</div>

Actions that apply to the entire node actions are kept away from actions that only apply to the current control point. I wouldn’t break this grouping. There are reasons to have “Delete…” at the top of the action group and bottom of the action group, too.

The proper solution would be to [enable scene undo](https://discourse.slicer.org/t/new-markups-functionality-retains-unset-control-point-positions/20140/11) (at least for markups), but we can also add a confirmation popup (with a “Don’t show again” checkbox) - it is easy to implement, and we already have such popups at a number of places.

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [October 31, 2021, 9:57pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/14 "2021-10-31T21:57:11Z")

</div>

If we can not show the confirmation Dialog by default, but support customization to show it, that would be great. It would help reduce customization of code and maintenance burden on our group’s end to maintain current behavior. Adding code to maintain current behavior is not desired.

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [October 31, 2021, 11:58pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/15 "2021-10-31T23:58:45Z")

</div>

> [@lassoan](#):
>
> The proper solution would be to [enable scene undo](https://discourse.slicer.org/t/new-markups-functionality-retains-unset-control-point-positions/20140/11) (at least for markups)

That will indeed be the best solution. +1

---

<div class="post-metadata">

**Author:** ![jamesobutler](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jamesobutler/32/7511_2.png) [@jamesobutler](https://discourse.slicer.org/u/jamesobutler)\
**Post date:** [November 1, 2021, 1:04am UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/16 "2021-11-01T01:04:50Z")

</div>

Renaming “Fiducial” to “Fiducial List” would resolve issues of terminology confusion between “Fiducial” vs “Control Point”. Use of the “node” terminology is too technical for regular users, so would have to be something like “Fiducial List” rather than “Fiducial Node”. It is unexpected that “Fiducial” is a group of points. I understand some of the mistakes from the past about this terminology, but surely some improvement is possible even if it may be annoying to fix on the backend code side.

---

<div class="post-metadata">

**Author:** ![hherhold](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/hherhold/32/12199_2.png) [@hherhold](https://discourse.slicer.org/u/hherhold)\
**Post date:** [November 1, 2021, 1:36am UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/17 "2021-11-01T01:36:02Z")

</div>

That’s a valid point too, as to casual users “Fiducial” sounds singular, as in a single point. Renaming it to “Delete Fiducial List” seems like a good compromise?

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [November 1, 2021, 4:41am UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/18 "2021-11-01T04:41:01Z")

</div>

> [@jamesobutler](#):
>
> Renaming “Fiducial” to “Fiducial List” would resolve issues of terminology confusion between “Fiducial” vs “Control Point”

We’ll do this. This need to separate the _machine readable_ markup type (`Fiducial`, `ClosedCurve`, etc.) from what is displayed on the GUI (with better formatting, more clear meaning, translatable to different languages; such as `fiducial list`, `closed curve`) has come up in another discussion already. I’ve added a ticket to track this:

> <https://github.com/Slicer/Slicer/issues/5976>
>
> It is not clear for users that "Fiducial node" means a "fiducial list". It is no…t nice that a closed curve is referred to as "ClosedCurve node" on the GUI.
> 
> \## Describe the solution you'd like
> 
> Use a different string for markup type in code and files (simple machine-readable string, such as \`Fiducial\`, \`ClosedCurve\`) and on the GUI (human-readable, translatable string, such as \`fiducial list\`, \`closed curve\`).
> 
> \## Describe alternatives you've considered
> 
> Automatic conversion from CamelCase to space separators could work, but would not be translatable to different languages.
> 
> \## Additional context
> 
> https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/14

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [November 1, 2021, 2:49pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/19 "2021-11-01T14:49:32Z")

</div>

Going further, the term “Fiducial” is pretty odd (it comes from Slicer’s neurosurgery roots where it refers to a marker stuck to the skin before a scan, and those are even used any more). If we are changing things why not drop that term completely and use a term like “Point Set” or “Point List” or “Landmarks”?

As an aside, for proper names of data types I think Title Case is correct, so Closed Curve and Point Set make sense, even if they are used in a UI element where the text is in Sentence case (that is the menu item would read “Delete highlighted Point Set” or “Delete highlighted Closed Curve”).

---

<div class="post-metadata">

**Author:** ![muratmaga](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/muratmaga/32/3622_2.png) [@muratmaga](https://discourse.slicer.org/u/muratmaga)\
**Post date:** [November 1, 2021, 2:50pm UTC](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430/20 "2021-11-01T14:50:29Z")

</div>

> [@pieper](#):
>
> Going further, the term “Fiducial” is pretty odd (it comes from Slicer’s neurosurgery roots where it refers to a marker stuck to the skin before a scan, and those are even used any more). If we are changing things why not drop that term completely and use a term like “Point Set” or “Point List” or “Landmarks”?

I agree. Point List or Landmark List would be great to refer to fiducials.

[Next page](https://discourse.slicer.org/t/delete-control-point-delete-fiducial-pop-up-confirm-box/20430.md?page=2)
