Simple preferences: Don't bind the preference to enqueue files to the one-instance mode preference
In the simple prefs interface, the option to enqueue files when using one-instance mode was being disabled if the one-instance-mode pref is unchecked.
But there's a second pref, one-instance-mode when launched from the file manager, for which the enqueue option also has meaning. To ensure that users can always enable enqueue mode, remove its dependency on the one-instance-mode pref being enabled.
Fixes #28077
Merge request reports
Activity
Technically the enqueue preference could be disabled if both one-instance mode and one-instance mode from the file manager are unchecked. But that would require a custom slot to check the state of both checkboxes whenever either of them is toggled, and it seems easier to just remove the connection between the two preferences.
The labeling for the enqueue preference, at least in English, is "Enqueue items into playlist in one instance mode", which IMHO makes it pretty clear that if neither one-instance preference is checked, it won't do anything even if it's enabled.
I think indeed that the option should be disabled when both "one-instance" mode are disabled, something like this should work if you don't want to create a custom slot
auto onOneInstanceChanged = [ui]() { bool enabled = ui.OneInterfaceMode->isChecked() || ui.oneInstanceFromFile->isChecked(); ui.EnqueueOneInterfaceMode->setEnabled(enabled); }; onOneInstanceChanged(); connect( ui.OneInterfaceMode, &QCheckBox::toggled, this, onOneInstanceChanged ); connect( ui.oneInstanceFromFile, &QCheckBox::toggled, this, onOneInstanceChanged );
note that copying the ui for the lambda is not ideal, we should rather keep the individual ui objects of each pages in our object
I tend to agree with @Courmisch regarding the use of the dropdown for the single instance mode, but this may be the subject of a different MR
note that copying the ui for the lambda is not ideal, we should rather keep the individual ui objects of each pages in our object
I proposed this here !3882 (merged)
mentioned in merge request !3831 (closed)
changed milestone to %4.0
added Component::Interface: Qt label
added Status::BackportCandidate label
added MRStatus::Reviewable label
added 13 commits
-
5b4d89c2...82f19b9f - 12 commits from branch
videolan:master
- 2e05683a - Don't bind enqueue pref to one-instance mode
-
5b4d89c2...82f19b9f - 12 commits from branch
requested review from @jbk
added 25 commits
-
2e05683a...5df262a4 - 24 commits from branch
videolan:master
- ae4e1fc8 - Don't bind enqueue pref to one-instance mode
-
2e05683a...5df262a4 - 24 commits from branch
- Resolved by Steve Lhomme
cc @chub is that OK with you ?
There are three flags for 8 total combinations but only 6 possible behaviours.
I agree that
playlist-enqueue
should be independent. But at the same time, the existing code does have a point that not all 8 combinations make sense.Single instance mode should be reduced to three possibilities: always, with file, and never. This can be achieved with a 3-entry option box, a drop-down list or by hiding the with-file option when single instance is enabled. I'm no UX expert to tell what's right on that point.
Note that we can't change the underlying flags as that would wreck havoc over the CLI.
It almost makes you wish the single-instance options were all inverted — e.g.:
- Allow multiple instances: [Always / Except when started from file manager / Never]
Compared to statements like these...
- "Allow only one instance: Always"
- "Allow only one instance: When started from file manager"
- "Allow only one instance: Never"
Which all feel somewhat convoluted, in comparison.
added MRStatus::InReview label and removed MRStatus::Reviewable label
added MRStatus::NotCompliant label and removed MRStatus::InReview label
- Resolved by Jean-Baptiste Kempf
Please rebase.
added 126 commits
-
ae4e1fc8...ddac94b9 - 125 commits from branch
videolan:master
- 3117ec6a - Don't bind enqueue pref to one-instance mode
-
ae4e1fc8...ddac94b9 - 125 commits from branch
added MRStatus::InReview label and removed MRStatus::NotCompliant label
added MRStatus::Stale label and removed MRStatus::InReview label