-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracktable editing #1561
Tracktable editing #1561
Conversation
I don't understand how this helps. QAbstractItemView::SelectedClicked is mutually exclusive with double click actions. |
This link is a video showing single and double click behavior on macOS 10.13.3. It shows 1x single click , 2x double click, 1x single click. Link valid for 30 days. For mixxx library behavior, my current preference would be to allow for a single click to trigger the edit track option (currently broken) and a double click to load the track into deck (working). Additionally have an option to disable editing track data in Preferences > Library (should it even default to off?). Editing track data is dangerous because
Hope this helps finding a good solution for this little situation. |
Thank you @foss-.
I think this may be possible to implement this, but I think it would require not using QAbstractItemView::SelectedClicked. But I am doubtful we should rush such a hack. |
I am confused by your comments because the behavior @foss- describes is my experience of how mixxx was working before #1550. I could doubleclick to load a track, or click twice to edit the metadata. I never had a problem with double-click triggering metadata editing (in either linux or windows). Is this a problem that only appeared in Mac? My current suggestion is we revert #1550 and instead add a checkbox in the prefs to disable one-click track editing. |
@daschuer I get a build error on this code:
|
That is what I am about to do. Sorry for the build error. |
For the record, if there is some bug where double-clicking is getting interpreted as click-on-selected and metadata editing is getting triggered, that's definitely a bug we should investigate. What I'm confused by is I've never seen that before so I need more information about how the bug gets triggered (OS, double click speed settings, etc?) |
There is an issue only by design. The double click recognition works, but if you click too slow on a selected track you are in edit mode. This can most likely happen with a touch pad and the tab click is activated. |
…d to deck feature
Puh, that was more work than thought on the first sight. Ready for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This works as described. I still think it is a bad idea to have both a SelectedClicked action and a double click action. But as long as I have the option to turn off the SelectedClick action, that's good enough for me.
<item row="4" column="0"> | ||
<widget class="QCheckBox" name="checkBoxEditMetadata"> | ||
<property name="text"> | ||
<string>Edit metadata</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This string should have more context. How about "Edit metadata after clicking selected track"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For 2.1, I would like to keep this text, because we already have translations for it.
It is not too bad and details can go to a Tooltip
This enables instant metadata editing within the track table.
Editing starts when clicking on an already selected item.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The recently added string has only been translated into DE
. You can easily change it again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK thank you.
default: | ||
radioButton_dbclick_deck->setChecked(true); | ||
break; | ||
} | ||
|
||
checkBoxEditMetadata->setChecked( | ||
m_pConfig->getValue( | ||
ConfigKey("[Library]","EditMetadata"), true)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO this is much too dangerous to be enabled by default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this was the default in 2.0 I like to keep it. Windows and Mac user are used to that "feature"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think either of those are good reasons to make this on by default. This behavior is so unexpected and confusing that no one could even describe quite what the problem was until I started working on the code and reading the Qt documentation. If users have to read the "Edit metadata after clicking selected track" description in the preferences before enabling this behavior, I think they will have an easier time understanding how it works and therefore understand how to use it intentionally and avoid activating it unintentionally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my feeling is that this topic has stirred up, because of a single users bug report.
All Windows an Mac users expect the feature and can handle it in their file manager.
This feature was enabled for ages in Mixxx, without anyone else complaining.
But we had complains during the short phase with the double click edit, loosing this feature.
So I assume that many user would feel the disabled feature as a regression. It might took a while to discover the check-box to re-enable it.
I do not use this feature and I also have never accidentally enabled it. So I do not care personally about the default.
How do others think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@daschuer are you referring to https://bugs.launchpad.net/mixxx/+bug/1665583 ? If so, let me reassure you, this has been giving mac users a hard time using mixxx to the point where live usage becomes questionable due to unusable waveforms when accidentally getting into track edit mode. The bug was filed feb 2017 and only disabling edit mode / adding an option in prefs to disable it, makes mixxxx usable for macOS users with trackpad. Let me know if I am missing something. My experience is limited to macOS, so this may be working great on linux / win.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sounds like a separate issue that needs to be addressed on that platform. Disabling click-to-edit would just be sweeping the problem under the carpet.
Well we have no macOS developers and we are try to get a release out imminently. This is the time for quick hacks, not debugging complicated issues and doing big refactoring.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm aware that the bug exists, but it was reported in January of this year and we've had this feature for many years, so this seems to be a new problem on OSX only. I suspect something changed on that platform, like the addition of "force clicks" which is VERY confusing for users who don't know what it is (including myself). Maybe "force click" is enabling edit mode?
What about making the default off for OSX only?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The UI lagging with editing metadata from the track table is only on macOS, but the high risk of accidentally editing metadata is for all OSs. This has been a problem for me on GNU/Linux with Mixxx for as long as I've been using it. I didn't report a bug for it earlier because the behavior is so unintuitive that I couldn't figure out exactly what triggered the accidental edits.
Having different defaults for different platforms doesn't seem like a great idea to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough. My preference is to leave it on by default but as long as there's adequate documentation I'm ok with the default being either way
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the default is changed to off, I think the new inverted "Prevent editing of metadata by clicking selected track" wording is odd.
src/library/library.cpp
Outdated
@@ -172,6 +172,9 @@ Library::Library( | |||
} else { | |||
m_trackTableFont = QApplication::font(); | |||
} | |||
|
|||
m_editMetadata = m_pConfig->getValue( | |||
ConfigKey(kConfigGroup, "EditMetadata"), true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The names in the code should have more context as well as the string shown to the user in the preferences. How about m_editMetadataSelectedClick
for the boolean and EditMetadataSelectedClick
for the ConfigKey name?
src/library/library.cpp
Outdated
m_iTrackTableRowHeight = rowHeight; | ||
emit(setTrackTableRowHeight(rowHeight)); | ||
} | ||
|
||
void Library::setEditMedatata(bool enabled) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
setEditMetadataSelectedClick
@@ -143,6 +139,7 @@ void DlgPrefLibrary::slotResetToDefaults() { | |||
checkBox_show_itunes->setChecked(true); | |||
checkBox_show_traktor->setChecked(true); | |||
radioButton_dbclick_bottom->setChecked(false); | |||
checkBoxEditMetadata->setChecked(true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
checkBoxEditMetadataSelectedClicked
Done. |
<item row="4" column="0"> | ||
<widget class="QCheckBox" name="checkBoxEditMetadata"> | ||
<item row="4" column="0" colspan="2"> | ||
<widget class="QCheckBox" name="checkBoxEditMetadataSelectedClicked"> | ||
<property name="toolTip"> | ||
<string>This enables instant metadata editing within the track table. | ||
Editing starts when clicking on an already selected item.</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this tooltip is unnecessary with the updated string.
Ready |
LGTM except for the option being enabled by default. |
I'll check this tonight |
<item row="4" column="0" colspan="2"> | ||
<widget class="QCheckBox" name="checkBoxEditMetadataSelectedClicked"> | ||
<property name="text"> | ||
<string>Edit metadata after clicking selected track</string> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about: "Allow editing of metadata by clicking selected track"
I wonder if this is a good candidate for an inverted bool, because the major use-case is "locking" the library so it can't accidentally be edited: "Prevent editing of metadata by clicking selected track"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, good idea.
@@ -62,6 +62,13 @@ DlgAnalysis::DlgAnalysis(QWidget* parent, | |||
SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection&)), | |||
this, | |||
SLOT(tableSelectionChanged(const QItemSelection &, const QItemSelection&))); | |||
|
|||
connect(pLibrary, SIGNAL(setTrackTableFont(QFont)), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this an unrelated change? I still don't see the correct font being used in the analyze view of the library. (That's been broken for a long time)
The changes works as described and I like this solution a lot, thanks! I just want to make sure the preference text is right before giving LGTM |
OK, checkbox inverted and analysis feature connections repaired. |
It is my dream that Mixxx can learn to decide issues of opinion through a consensus process instead of a battle of wills. It's very stressful when some people are saying "this is what I prefer let's find a solution we can all live with" and other people are saying "I refuse to LGTM unless it's done this way." |
OK, lets merge this, to have the chance to get the string translated. |
I'm confused. I thought we had just reached a consensus to change the default to off? |
The checkbox logic is now inverted, so it is off by default and selected click enabled. I am a bit confused about the related MacOS GUI issue. It looks like we are hunting a 2.0 bug reading |
I meant having the selected-click-to-edit behavior off by default. Once again you have prematurely merged your own PR against my objections. This feels really disrespectful.
This is not a new issue. @foss- has been asking about it for a long time -- maybe a year now? |
I did not meant to treat you disrespectful, I am sorry for this. We already had an agreement that this PR is ready for merge, except the default question. The default can be changed at any time, no reason to delay this and have an untranslated string for this feature. This can be treated as a workaround for https://bugs.launchpad.net/mixxx/+bug/1665583, with any default value. But this bug discovers an other strong issue in our Mixxx project in general: |
"LGTM except" does not mean "LGTM". The default is important, especially considering the consequences of this.
I was thinking about that too, but I think that is the opposite of what we should do. I think if we do that, then there's a decent chance we'll never have a Mac contributor again. We have had several Mac developers express interest in contributing lately but all of them have been discouraged by out-of-date and incomplete documentation. I will try to borrow a Mac tomorrow to look into the macOS issues. |
Thank you very much. I hope that we see clear after your investigations. |
Dropping macOS support will send wrong signals and minimize the chance for macOS devs to join in. I've been using mixxx and closely observing it's development for a while now. It's made amazing progress. There are a few serious macOS related bugs. But regardless of the default for this, adding this option will make mixxx a lot more usable on macOS. So while there are some intense debates going on currently the small mixxx dev team has a lot on their plate to handle and I think the team is doing an amazing job. Thank you all for your work and dedicating your time to this amazing software <3 |
To give my 2cents. Whenever I have the edit functionality open, it's by accident. Mixxx is not a good tag management software and does not have to be in my opinion. It's nice if you can fix som mistakes you find while using it, but having such a easy accessible edit functionality is more annoying then it helps. |
This should improve the issues discussed here:
#1550
By an extra checkbox "Edit metadata"