-
-
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
DlgTagFetcher new feedback system #4871
DlgTagFetcher new feedback system #4871
Conversation
Thank you. This already better for me than the original. Just looking at the layout the buttons are looking a bit "random" ordered, unfortunately I have not yet a better idea.
Would it be better to have retry between Previous and Next? Unsure because that break them apart ... Other issues:
Most of the issues where already part of the existing layout, so it is not necessary required to solve them here. |
Thank you for the feedback. I'm glad that you liked it. I have two ideas regarding with the retry button.
What I thought at the first place, I also mentioned than on Zulip, we can put an icon instead of the text Making them gray can be an option, we can also make it invisible by `setVisible' if the fetch is processing it can be invisible in case of failure or success the retry button can appear. So we can get user's attention. What do you think?
I didn't get that part, should the apply next to the found metadatas.
It was like this before, I didn't want to change the original version. But yeah, I realize that it is not necessary. I thought it can be useful for the cover art fetcher, but not necessary for this too.
This is happening due to less available metadata. Normally the scaling works related with the number of metadatas. For the less available metadata I think manual scaling can be done.
This is an also good approach,
Oh I didn't notice that until now, Thanks for letting me know. With the quick tests that I did, this is happening with the same as above, less available number of metadatas. I will fix it asap 👍 |
I have the case that the dialog is at 100% forever with: |
Can you also implement the graying out of Retry and Apply? |
The "Fetching track data from the MusicBrainz database" issue remains even after Retry. |
We can also make Retry button invisible unless if there is a failure. So user can only interact-see it if there is a failure. Non button is better than gray button IMHO. What do you think?
Sometimes some tracks have special cases. Such as the track has only one AcoustID but many MusicBrainz releases or many AcoustID's or just one for each. These can cause different behavior on the status bar. I haven't encountered these in my tests. It can be because of the tracks that I have in my library, I need to expand my library in order to test it better. Could you please give me the songs that these errors occurs in your library? So I can have a better perspective. |
In this case yes. Is there a use case to "retry" even if we have results, probably not. |
Today o cannot reproduce the issue, so I cannot identify a specific track. I did not expect that this is a track related issue, more a network responds thing. We need to keep an eye on it. |
Exactly, we need to keep an eye on it. I have been trying to detect why it is happening. It happened to me once. I added a lot of track into my library to find out. But I couldn't find out why exactly it is happening. All I can say that this is no related with the amount of metadata found as I mentioned earlier. It actually get results from the MusicBrainz, but It doesn't update the stack. I can see the network result on console it says I will work on it more to solve it 👍 |
Thanks for all the feedback :) I have tried to fix all the errors mentioned above. I think it has a good use case. I have also made retry button invisible if the track has no metadata available on MusicBrainz database. So with that, I prevent over requests for these tracks. The button will be only displayed if the user lost network connection while fetching, or the track metadata didn't fetched due to 403 (there is still an interesting issue regarding with it) . |
Sorry I'm a bit late to the party..
First impression when looking at the successful query: the status bar is very prominent (maybe it's just your theme but I doubt it's less prominent in others). Can we show the status bar only when fetching metadata, then replace it with an unobrusive label like "query successful"? Same for the the Retry button: it is only required in case something goes wrong / gets stuck. |
IMO it's better to always show all buttons and disable / enable them when necessary. |
Hey @ronso0 Welcome to the Party! Thanks for the feedback. I will make all the button visible, and also I will try to change the progress bar to the label if the fetching successfull. I think that this will be better in user case. I have another question related with the cover art fetcher. It is quite early but i wanted to ask. Maybe we should considwe it after the cover art fetcher PR update after this one. So my question is, We also want to use the Progress Bar while fetching the cover art thumbnails to inform user about the status. I can not be sure if we should add another progress bar for the cover art fetcher (below the layouts), or should we use this existing one. Would this design look good when we implement the cover art fetcher? |
With the latest changes Tag Fetcher Dialog looks like this after success. I have also added 2 launchpad bug related links in order to increase the success of the importing metadata. If we are able to fix those, that will be better, success will be increased and we won't need to inform user for rate-limiting or empty XML. |
3260cc1
to
77d0756
Compare
With the last changes,
|
4577ab3
to
2061945
Compare
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 have added some comments
src/library/dlgtagfetcher.cpp
Outdated
// The dialog populates with the 0%. | ||
// After each constant step progress bar value increases by 15%. | ||
// Before we get recording(s) from AcoustID, the QProgressBar will be 45%. | ||
// Last step set to 55% and it is going to be divided to recording(s) received from Acoust ID. |
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.
// Last step set to 55% and it is going to be divided to recording(s) received from Acoust ID. | |
// The remaining 55% are divided by the number of recordings received from AcoustID. |
This sentence is now redundant with the one above, can you join them?
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've changed the whole comment section, now it looks a bit more cleaner and easier to understand IMHO.
src/library/dlgtagfetcher.cpp
Outdated
// We clear the results to update the Original Tag. | ||
// It is listed with the guessedTrackReleases | ||
// Without resetting the Data() | ||
// Clearing the results and adding them will only update the original tag. | ||
// If the track metadata listed in somewhere else such as QLabel. | ||
// We wouldn't need to clear the results, only updating the label would be enough. |
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.
// We clear the results to update the Original Tag. | |
// It is listed with the guessedTrackReleases | |
// Without resetting the Data() | |
// Clearing the results and adding them will only update the original tag. | |
// If the track metadata listed in somewhere else such as QLabel. | |
// We wouldn't need to clear the results, only updating the label would be enough. | |
// Track has not change: This is a Retry. |
The other explanations should be moved closer to the code. To be honest, I don't understand them well. Maybe you can improve them along the 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.
Yes 👍 , there will be different scaling for the cover art fetcher as well, so more of these comments will be needed IMHO.
src/library/dlgtagfetcher.cpp
Outdated
addDivider(tr("Original tags"), results); | ||
addTrack(trackColumnValues(*m_track), kOriginalTrackIndex, results); | ||
|
||
addDivider(tr("Suggested tags"), results); |
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 name "result" is hard to understand. I think it is the QTreeWidget showing the results. Can we find a better name for it?
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.
"Tag"s maybe?
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.
Some final comments
src/library/dlgtagfetcher.cpp
Outdated
// Track has just updated with the suggested tag. | ||
// Original tag needs to be updated as well. | ||
tags->clear(); | ||
addDivider(tr("Original tags"), tags); |
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 code is redundant with loadTrackInternal
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.
loadTrackInternal is called when the track is changed via buttons Next and Prev and in the first population, IMHO we need it in order to show the actual metadata of the track when the menu is changed.
slotTrackChanged is called when the new metadata applied.
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.
LGTM and works good. Thank you.
As we discussed that on Zulip, we wanted to get rid of the full screen status page in
Import metadata from MusicBrainz
-DlgTagFetcher
.The new GUI is simply like this:
On startup, progress
After fetching completed, successful
Any case of error, failure:


What do you think generally?