Skip to content

Conversation

@ngocdh
Copy link
Contributor

@ngocdh ngocdh commented Jun 2, 2021

This pull request set own fader always to 1st position, regardless of the sorting setting.
See discussion #1646

In case we want to have the choice to set or unset the option, then UI changes must be involved.

@ann0see
Copy link
Member

ann0see commented Jun 2, 2021

Thanks for this. I think it should be possible to enable this in the UI to not confuse existing users. Tagging @gilgongo and @mulyaj here to voice their opinion on where to put it. I‘m still unsure where to put it since I fear that the new tabbed settings UI opens up cluttering the settings dialog with too many features.

@ngocdh
Copy link
Contributor Author

ngocdh commented Jun 2, 2021

Thanks for this. I think it should be possible to enable this in the UI to not confuse existing users. Tagging @gilgongo and @mulyaj here to voice their opinion on where to put it. I‘m still unsure where to put it since I fear that the new tabbed settings UI opens up cluttering the settings dialog with too many features.

A check box in the Edit menu, close to Sorting options

@dcorson-ticino-com
Copy link
Contributor

Thanks @ngocdh, this was on my "to be done soon" list.
I agree that enabling/disabling is most sensibly in the edit menu with the other sorting choices.

@ngocdh
Copy link
Contributor Author

ngocdh commented Jun 2, 2021

Thanks @ngocdh, this was on my "to be done soon" list.

Cool thanks @dcorson-ticino-com. When you get time, could you implement the menu? It seems CClientSettings (to store/load the option) and CClientDlg (the Menu item and action) are involved.

@ngocdh
Copy link
Contributor Author

ngocdh commented Jun 10, 2021

So I got around to implement that Menu action :)

Note though: the feature will not work if connected to old servers, just like any other feature relying on OnClientIDReceived, because it seems old servers don't send client id back to each client?

@softins
Copy link
Member

softins commented Jun 10, 2021

Note though: the feature will not work if connected to old servers, just like any other feature relying on OnClientIDReceived, because it seems old servers don't send client id back to each client?

If that's the case, could you determine which version server is the first to support that, and note it in a code comment and commit message? And mention it here too. Thanks!

@ngocdh
Copy link
Contributor Author

ngocdh commented Jun 10, 2021

Found: 3.5.5.
Ref: #148 (comment)

Also I put code comment in clientdlg.cpp, next to OwnFaderFirstAction definition.

// Edit menu --------------------------------------------------------------
QMenu* pEditMenu = new QMenu ( tr ( "&Edit" ), this );

// own fader first option: works from server version 3.5.5 which supports sending client ID back to client
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feature doesn't work if connected to server prior to version 3.5.5.

@hoffie hoffie added this to the Release 3.9.0 milestone Jun 13, 2021
@pljones
Copy link
Collaborator

pljones commented Jun 19, 2021

Just want a status update on this. Is anything outstanding? (I don't appear to have complained about anything, so I guess I better read the code :) ).

@pljones
Copy link
Collaborator

pljones commented Sep 15, 2021

This will need some refactoring following @jp8's menu changes for 3.8.1.

@jp8
Copy link
Contributor

jp8 commented Sep 15, 2021

Easy enough to move this setting to the View menu instead of the Edit menu.

But there's still a lot to think about, especially around the multi-row, sort-by-group views.

@pljones
Copy link
Collaborator

pljones commented Sep 15, 2021

But there's still a lot to think about, especially around the multi-row, sort-by-group views.

For an initial implementation, a "first means first" by whatever sort order is in use approach should be taken. Keep it simple is part of the Jamulus creed.

  1. Find "me"
  2. Remove "me" from the list
  3. Sort the list
  4. Insert me first
  5. Display the list

@pljones
Copy link
Collaborator

pljones commented Nov 13, 2021

@ngocdh are you still able to pick this up?

The client creates the channel for itself as the very first channel. It is always channel zero. So finding it is "easy". Then you just apply the sort to the later channels in the list.

I had a thought on the GUI.

Following the menu reorganisation, I'd really like to get the check boxes for "Settings" and "Chat" removed, so that they're controlled through the menus (with shortcuts available).

That would give space for a check box for "Keep me first in the mixer" or "Mixer 1st" as it needs to be very short.
image

@gilgongo
Copy link
Member

Is "Keep me first in the mixer" that important to be given such prominence? Seem a little odd given other settings we have.

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

My view was this should be the default when"sort by arrival time" is selected. And "sort by arrival time" still needs a better name.

But not when "sort by instrument" or "sort by name", etc. are selected. That would be allowing the users to select two conflicting settings.

And no need for an individual checkbox for it.

@pljones
Copy link
Collaborator

pljones commented Nov 13, 2021

My view was this should be the default when"sort by arrival time" is selected. And "sort by arrival time" still needs a better name.

But not when "sort by instrument" or "sort by name", etc. are selected. That would be allowing the users to select two conflicting settings.

And no need for an individual checkbox for it.

First, I'm never a fan of changing existing behaviour -- people have set expectations and shouldn't actively have to adjust a setting to restore to that behaviour.

I can't see why it shouldn't be a choice in all sort modes. It's fairly clear: put me first, always, then sort everyone else per whatever the sort rule is. So it's not exactly conflicting.

And there would need to be a way for the user to choose to have the behaviour or not. Maybe it should be a checkable option on the view menu. (Maybe I'd prefer that and clear even more check boxes off the mixer...)

@gilgongo
Copy link
Member

@jp8 Yes, that seems sensible.

As to the wording, I would think that most people would expect the default to be by arrival/joining time left to right, so we could just call it "default" and explain in the docs for the curious?

@gilgongo
Copy link
Member

put me first, always, then sort everyone else per whatever the sort rule is. So it's not exactly conflicting.

One for the settings panel I think, not the main screen though.

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

First, I'm never a fan of changing existing behaviour -- people have set expectations and shouldn't actively have to adjust a setting to restore to that behaviour.

You are certainly right. But just to be clear, I wasn't suggesting they would be able to adjust a setting to restore the old way. My suggestion would be to modify the 'Default" sort order so that the user's own channel is at the left (with no setting anywhere for the user to turn that off), and leave all the other sort orders unchanged.

My reasoning is that people who use the "Default" sort order just want to have the faders remain in the same place, and not jump around when musicians join. Putting own fader at the left doesn't (according to my theory) inconvenience them.

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

put me first, always, then sort everyone else per whatever the sort rule is. So it's not exactly conflicting.

One for the settings panel I think, not the main screen though.

The reason i disagree with this is because if the view menu says "sort by name", and the user selects that, but the channels are not sorted by name.... it's a non-intuitive user interface.

@pljones
Copy link
Collaborator

pljones commented Nov 13, 2021

put me first, always, then sort everyone else per whatever the sort rule is. So it's not exactly conflicting.

One for the settings panel I think, not the main screen though.

The reason i disagree with this is because if the view menu says "sort by name", and the user selects that, but the channels are not sorted by name.... it's a non-intuitive user interface.

Not if there's a check item on the same menu saying "Own channel first", surely?

And the same would apply to any sort mode -- so you're essentially saying "I don't want this feature"?

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

Not if there's a check item on the same menu saying "Own channel first", surely?

Right - if the setting exists I think it needs to be a checkbox on the View menu, right below the selectable views (like you first suggested).

But I am not convinced that users of the 'Default' sort order need an option to have their own fader somewhere other than the left position.

And I am not convinced that users who have sorted by name, instrument, etc, need an option to make an exception for their own fader. In my view, it should always go to the correct position for the chosen sort order.

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

so you're essentially saying "I don't want this feature"?

No I didn't mean to come across as not wanting the feature. But I would like the Jamulus interface to be clear and consistent for the users, so I am trying to think carefully about it.

@pljones
Copy link
Collaborator

pljones commented Nov 13, 2021

I just don't like arbitary decisions made on behalf of the user.

@jp8
Copy link
Contributor

jp8 commented Nov 13, 2021

Yeah I just want to think carefully, get a sensible default, and only add choices in the UI if they are really necessary.

The original requirement was "own fader should be easy to find".... maybe we should have discussed highlighting it visually but leaving it in position.

@ghost
Copy link

ghost commented Nov 13, 2021

If there are several sort criteria, they should be prioritised by the user
in the user settings.
eg. sort A third, sort B first, sort C none, sort D Nth sort E none

No sort check box should be on the main menu.
eg. the DIR command in MSDOS can be configured perfectly in
autoexec.bat or config.sys to perfect the directory listing.
(it appears modern operating systems have lost this ability)

@ngocdh
Copy link
Contributor Author

ngocdh commented Nov 14, 2021

Team, this feature is actually simple: if user wants their fader first on the mixer, then check the option, regardless of other sorting options.
I don't think there should be a checkbox on the mixer for this though.

@softins
Copy link
Member

softins commented Nov 15, 2021

Following the menu reorganisation, I'd really like to get the check boxes for "Settings" and "Chat" removed, so that they're controlled through the menus (with shortcuts available).

Not sure I like this idea. I don't think I have ever opened the Settings and Chat windows via the menu bar, always with the buttons in the mixer.

@pljones
Copy link
Collaborator

pljones commented Nov 15, 2021

Following the menu reorganisation, I'd really like to get the check boxes for "Settings" and "Chat" removed, so that they're controlled through the menus (with shortcuts available).

Not sure I like this idea. I don't think I have ever opened the Settings and Chat windows via the menu bar, always with the buttons in the mixer.

That's because before the menu reorganisation, finding the menu items was hard and now you're used to it the way it was easiest.

getismyownfader

move own fader to 1st position

Own fader first with menu action
@softins
Copy link
Member

softins commented Nov 20, 2021

I like this option the way it is, and have just been testing it. The PR was branched from 3.8.0rc2, and I have just squashed and rebased it to current master. @ngocdh is it ok if I push the rebased version to your branch?

@ngocdh
Copy link
Contributor Author

ngocdh commented Nov 20, 2021

Sure Tony

Copy link
Member

@softins softins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebased on master and tested.

@softins softins requested a review from pljones November 20, 2021 20:48
Copy link
Collaborator

@pljones pljones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks okay.


// own fader first option: works from server version 3.5.5 which supports sending client ID back to client
QAction* OwnFaderFirstAction =
pViewMenu->addAction ( tr ( "O&wn Fader First" ), this, SLOT ( OnOwnFaderFirst() ), QKeySequence ( Qt::CTRL + Qt::Key_W ) );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gilgongo Not sure if we could improve the wording here?
Own fader first is not 100% percise in my opinion.
Own fader at first position?

Copy link
Member

@gilgongo gilgongo Nov 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure - "Show own fader first" perhaps? "Put your fader first"? (I don't think the initial capitals are in style BTW) At least, I don't think "first" is ambiguous so that it needs "position" as well: "They came first in the race" vs "They came in first position in the race". "To put your own interests first" vs "To put your own interests in first position". "Position" feels redundant.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talking of being 100% precise...

I am still of the opinion that having the user's own fader at the left is good in the default (unsorted) sort, but I don't see any reason for the user to have the option to turn it on and off.

If I play violin, and I sort by instrument, I would expect my fader to be right there with the other violins.

If I am in London and I sort by city, I would expect my fader to be right there with the other London people.

I also haven't seen any convincing argument of why a user would need to both:

  • sort by instrument, and also
  • have their own fader appear at the left instead of with the others of the same instrument

Users don't have that option now. But is there somebody that really wants to do exactly that ? And if so, is that need strong enough to justify an extra setting ? Especially one that (in my view, at least) conflicts with the wording of the existing sort options ...?

I personally would really struggle to come up with 100% precise accurate wording for all the sort options that would no longer be strictly correct.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with every point you made here.

@softins softins merged commit c633a54 into jamulussoftware:master Nov 26, 2021
@gilgongo gilgongo modified the milestones: Release 3.9.0, 3.8.2 Jan 17, 2022
int iNumVisibleFaders = 0;
int iMyFader = -1;

for ( int i = 0; i < MAX_NUM_CHANNELS; i++ )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ngocdh
There might be issues with the code here (see #2738) can you please look at this again?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(And note, again, I'd prefer if all this "state" information was held by the client - the UI should be responsible for no more than displaying that information as held.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants