jamulus icon indicating copy to clipboard operation
jamulus copied to clipboard

Add option to delete stored servers from combo lists

Open pgScorpio opened this issue 4 years ago • 24 comments

Has this feature been discussed and generally agreed?

Issue has been mentioned multiple times in discussion groups and on Jamulus facebook groups, but afaik not on github. The given solution is always to edit the ini file (or even to delete it!), but I don't think this is very user friendly.

Describe the solution you'd like

Add an option to delete servers from the "Server" and "Custom Central Server" lists. i.e. right-click server and select "Remove from list"

Describe alternatives that have been considered

Until now users have to edit the ini file to clean up their server lists.

pgScorpio avatar Apr 01 '21 15:04 pgScorpio

What is the use case? Why would someone need to delete a server? If it's not used, it would just move to the end of the list.

DominikSchaller avatar Apr 01 '21 16:04 DominikSchaller

What is the use case? Why would someone need to delete a server? If it's not used, it would just move to the end of the list.

For one "How do I delete a server" is a question I regularly get on several communities. Often because they accidentally entered a wrong server address and regularly, again accidentally, keep clicking this wrong server. And sometimes they just want to delete the server because the server no longer exists (also logical).

Also accidentally clicking the wrong server happens regularly with people that have participated in an event, and therefore sometimes end up in another event where they are not supposed to be (if this was a one time event, they should be able to delete the server after the event, right?)

Especially if most of the server addresses are IP numbers a mistake is easily made. Unfortunately accidentally clicking the wrong server brings it back to the top of the list, increasing the chance of making the same mistake again.

In all of these cases it would be very appreciated if they just could delete that server address in a simple way.

pgScorpio avatar Apr 01 '21 18:04 pgScorpio

Just to be clear, you are talking about the combo boxes that store a list of previously selected addresses, is that right?

combo

image

If so, then there isn't a standard way of "editing" combo boxes so I guess this would need to be a custom component. BTW best not implemented with a context menu in case that causes trouble for the Android crew, but also because "intermittent" use of right click is not generally recommended,

gilgongo avatar Apr 02 '21 08:04 gilgongo

Just to be clear, you are talking about the combo boxes that store a list of previously selected addresses, is that right?

combo

image

If so, then there isn't a standard way of "editing" combo boxes so I guess this would need to be a custom component. BTW best not implemented with a context menu in case that causes trouble for the Android crew, but also because "intermittent" use of right click is not generally recommended,

Yes, you are correct. I'm talking about the combo boxes.

I personally would stick to the standard ways of doing things, In this case this is a context menu. right-click on mouse systems (or ctrl-click on some mac's), two finger click on a trackpad, or long press on a touchscreen (Android),

pgScorpio avatar Apr 02 '21 10:04 pgScorpio

In this case this is a context menu.

The trouble with having a context menu for this is that nothing else in Jamulus is using one. So it's not "the standard ways of doing things", I'm afraid. Context menus really need to be "all or nothing" if the user isn't going to be playing a game of right click hide and seek in the app ("Does the context menu work here? No. OK, maybe here? No. Here? Yes!").

Even if we had a convention in Jamulus for context menu control, combo boxes don't usually have that, so the user may not think to use it. Better to make the removal option explicit in the UI in some way really. But there is a weak (if not very obvious) convention used in some apps (eg the Mac's network finder I think), where the act of selecting the item in the field, then back-spacing over it signals removal from the list.

Either way, it's potentially quite a big job if it involves a custom component I think, but I don't know for sure.

gilgongo avatar Apr 02 '21 12:04 gilgongo

Well for anyone who wants to have a go at implementing it, there are some suggestions at these links:

  • https://forum.qt.io/topic/22473/combobox-with-delete-item-buttons-at-items
  • https://stackoverflow.com/questions/17820947/remove-items-from-qcombobox-from-ui

softins avatar Apr 02 '21 13:04 softins

Comboboxes don't usually have this possibility and using a method that is not usually used on any UI item is even farther from being intuitive. I think the possibilities are context menu or not at all, in which case the entry falls off the end of the list when it is long enough. I will look at using a context menu in the next week. Note that for some strange reason there is already a right click context menu on the connect combobox with 7 entries, but everything is grayed out but paste. I can't find where it is defined and would replace it with just a 1 liner for delete.

dcorson-ticino-com avatar Apr 04 '21 20:04 dcorson-ticino-com

This has now been implemented in the settings so we should probably do the same for the connection window:

https://user-images.githubusercontent.com/4561747/145236192-74a49ec8-55c0-4197-9ead-df7860a59e9f.mp4

gilgongo avatar Dec 08 '21 15:12 gilgongo

Note your video depends on use of the mouse. Certainly for Windows and Linux, you need https://github.com/jamulussoftware/jamulus/pull/2129 to get it to work with the keyboard.

pljones avatar Dec 08 '21 18:12 pljones

Also I still wonder why this is implemented in such an unusual way? Why not use a context menu, as is standard on all platforms? I already got a lot of questions from a lot of users on how to delete no longer used (directory) servers from the list. They all tried to get a context menu, but none of them figured out this way of deleting themselves.

pgScorpio avatar Dec 09 '21 18:12 pgScorpio

As I explained: https://github.com/jamulussoftware/jamulus/issues/1421#issuecomment-812514473

A casual look though some other desktop apps I have also shows that none have context menus for this, but most have "select delete" patterns. As noted too though, we would have preferred a simple "x" mini button.

gilgongo avatar Dec 09 '21 18:12 gilgongo

Any updates here? I think the solution is to implement it similar to how the directories can be deleted?

ann0see avatar Apr 22 '22 19:04 ann0see

@ann0see

Any updates here? I think the solution is to implement it similar to how the directories can be deleted?

Yes, that would be a solution, but still I think that's a strange, unusual way, and as CONTRIBUTING says "Features should be usable in the sense that they act as expected to somebody who does not have a technical background."

And, in my opinion the current way is far from "as expected" since I have to explain this way to everyone "who does not have a technical background" again and again...

pgScorpio avatar Apr 22 '22 23:04 pgScorpio

Out of interest, why are the people who ask you having to delete the values in the list in the first place?

gilgongo avatar Apr 23 '22 06:04 gilgongo

If someone hosts a server at home and gives out the IP each time, there would be a long list of unusable IPs in the connect window.

ann0see avatar Apr 23 '22 06:04 ann0see

So would you prefer a "ₓ" delete button?

ann0see avatar Apr 23 '22 06:04 ann0see

So that hitting "x" (preferably inside the field) would do the same thing as select/delete, then that would be clear, yes. The problem is that there isn't really a convention to have dropdowns that allow add/remove: https://ux.stackexchange.com/questions/64036/deleting-items-from-a-dropdown-menu and I don't think a separate "management UI" is really warranted.

gilgongo avatar Apr 23 '22 09:04 gilgongo

Why would we want to add a completely non-standard delete? I had implemented delete using the right click menu a long time ago, but although a very standard way to do things, it was not OK because it is not used as such elsewhere in Jamulus. Where is the logic?

dcorson-ticino-com avatar Apr 23 '22 10:04 dcorson-ticino-com

@dcorson-ticino-com Having a context menu on a drop-down menu in order to delete items in that menu is not a standard way of doing things. A least, I know of no application that does it, or if there are I was not aware of it. An "x" visible in the UI makes you aware of the function and is (albeit uncommonly) sometimes a feature seen in other apps. (see also my comment I think you allude to about Jamulus https://github.com/jamulussoftware/jamulus/issues/1421#issuecomment-812514473)

That said, select/delete is an extremely common pattern in other UI contexts, just not very common in drop-downs.

gilgongo avatar Apr 23 '22 10:04 gilgongo

Just a quick note:

Mozilla does similar to us in the custom directories field https://support.mozilla.org/en-US/questions/1220341

I've seen x buttons on macOS

Right click doesn't work well on mobile/touchscreens.

ann0see avatar Apr 23 '22 11:04 ann0see

Right click doesn't work well on mobile/touchscreens.

I guess that when they have good Ethernet connectivity that will be an issue, but I don't see it coming.

dcorson-ticino-com avatar Apr 23 '22 12:04 dcorson-ticino-com

Having a context menu on a drop-down menu in order to delete items in that menu is not a standard way of doing things. A least, I know of no application that does it

AFAIK almost any app uses right-click menus for things like delete, rename, etc.

Right click doesn't work well on mobile/touchscreens.

No but long-press does exactly the same (At least on android and iOS).

pgScorpio avatar Apr 23 '22 13:04 pgScorpio

@gilgongo

Out of interest, why are the people who ask you having to delete the values in the list in the first place?

I already explained this in a earlier post... ;=)

In most cases because they entered a wrong address, or they want to delete "one time event" servers.

pgScorpio avatar Apr 23 '22 13:04 pgScorpio

AFAIK almost any app uses right-click menus for things like delete, rename, etc.

Not for drop-down menus. But even if that WAS the case, the wider point is that having a context menu for this would mean we'd need to have context menus for everything, if the user isn't going to be playing a game of right click hide and seek in the app ("Does the context menu work here? No. OK, maybe here? No. Here? Yes!").

Context menus are useful in some apps like DAWS or design tools that have large numbers of often contextual commands that can be applied to "objects" in the UI. But Jamulus is not one of those apps.

There is nothing wrong with a "clear" control visible if we need that, as @ann0see demonstrates in his examples.

gilgongo avatar Apr 23 '22 13:04 gilgongo

The server uses the "x" button approach to clear the current entry from input boxes: image (These are boxes that can be empty or have a chosen value -- just you can't choose an empty value, so the button is there to allow it to be reset.)

pljones avatar May 21 '23 13:05 pljones

If we go for the above idea, this should be pretty easy to do.

pljones avatar Aug 12 '23 11:08 pljones