> On April 15, 2013, 10:47 p.m., Matěj Laitl wrote:
> > Thanks for the update, glad to see it. I'm just trying out the code, 
> > however I got a deadlock - I just clicked Expand Unchosen after or during 
> > the lookup, backtrace:
> > #0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:39
> > #1  0x00007ff6f7528b1b in _q_futex (val2=0, addr2=0x0, timeout=0x0, val=2, 
> > op=0, addr=0x40481f0) at thread/qmutex_unix.cpp:99
> > #2  QMutexPrivate::wait (this=0x40481f0, timeout=<optimized out>) at 
> > thread/qmutex_unix.cpp:113
> > #3  0x00007ff6f752490d in QMutex::lockInternal (this=<optimized out>) at 
> > thread/qmutex.cpp:450
> > #4  0x00007ff6f75257ea in lockInline (this=0x4081470) at thread/qmutex.h:198
> > #5  QMutexLocker (m=0x4081470, this=0x7fff238ff4f0) at thread/qmutex.h:109
> > #6  QReadWriteLock::lockForRead (this=0x40815c8) at 
> > thread/qreadwritelock.cpp:149
> > #7  0x00007ff6f91ea94d in QReadLocker::relock (this=0x7fff238ff570) at 
> > /usr/include/qt4/QtCore/qreadwritelock.h:111
> > #8  0x00007ff6f9437259 in MusicBrainzTagsItem::isChecked (this=0x40815a0) 
> > at /home/strohel/projekty/amarok/src/musicbrainz/MusicBrainzTags.cpp:392
> > #9  0x00007ff6f943750d in MusicBrainzTagsView::expandUnchecked 
> > (this=0x493a8c0) at 
> > /home/strohel/projekty/amarok/src/musicbrainz/MusicBrainzTags.cpp:945
> > #10 0x00007ff6f764ccb7 in QMetaObject::activate (sender=0x49183e0, 
> > m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff238ff7c0)
> >     at kernel/qobject.cpp:3539
> > #11 0x00007ff6f806e962 in QAction::triggered (this=<optimized out>, 
> > _t1=false) at .moc/debug-shared/moc_qaction.cpp:277
> > #12 0x00007ff6f806eb4f in QAction::activate (this=0x49183e0, 
> > event=<optimized out>) at kernel/qaction.cpp:1257
> > #13 0x00007ff6f8492b8a in QAbstractButtonPrivate::click (this=0x491dcd0) at 
> > widgets/qabstractbutton.cpp:530
> > #14 0x00007ff6f8492e3c in QAbstractButton::mouseReleaseEvent 
> > (this=0x491dca0, e=0x7fff239002b0) at widgets/qabstractbutton.cpp:1123
> > #15 0x00007ff6f856209a in QToolButton::mouseReleaseEvent (this=<optimized 
> > out>, e=<optimized out>) at widgets/qtoolbutton.cpp:718
> > #16 0x00007ff6f80cec1e in QWidget::event (this=0x491dca0, 
> > event=0x7fff239002b0) at kernel/qwidget.cpp:8375
> > #17 0x00007ff6f8075402 in notify_helper (e=0x7fff239002b0, 
> > receiver=0x491dca0, this=0x11cf820) at kernel/qapplication.cpp:4562
> > #18 QApplicationPrivate::notify_helper (this=0x11cf820, receiver=0x491dca0, 
> > e=0x7fff239002b0) at kernel/qapplication.cpp:4534
> > #19 0x00007ff6f807b81a in QApplication::notify (this=<optimized out>, 
> > receiver=0x491dca0, e=0x7fff239002b0) at kernel/qapplication.cpp:4105
> > #20 0x00007ff6f9db51a6 in KApplication::notify (this=0x7fff23900e10, 
> > receiver=0x491dca0, event=0x7fff239002b0)
> >     at 
> > /var/tmp/portage/kde-base/kdelibs-4.10.1-r1/work/kdelibs-4.10.1/kdeui/kernel/kapplication.cpp:311
> > 
> > Please have a look at this.
> > 
> > When I tried the Expand Unchosen and Collapse Chosen buttons, they didn't 
> > seem to work as expected (but I tested just quickly). This is not yet a 
> > complete review, but should be a good start for further work. Anyways, 
> > thanks for the *massive* changes!

It's not supposed to work, as I stopped the porting to the proxy model to ask 
for that suggestion. I thought it wasn't even buildable. ;)


- Alberto


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/105290/#review31124
-----------------------------------------------------------


On April 15, 2013, 12:51 p.m., Alberto Villa wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/105290/
> -----------------------------------------------------------
> 
> (Updated April 15, 2013, 12:51 p.m.)
> 
> 
> Review request for Amarok and Sergey Ivanov.
> 
> 
> Description
> -------
> 
> The attached patch addresses several issues and brings some improvements, 
> listed below.
> 
> Web service 2 is now being used in place of the deprecated version 1: disc 
> number and artist credit are now better defined. This alone required a 
> complete rewrite of MusicBrainzXmlParser.(cpp|h).
> 
> Make track search query more complicated and let it handle some mistakes 
> (documented in code).
> 
> As in web service 2 multiple artists (e.g., Hans Zimmer & James Newton 
> Howard) are returned splitted (i.e., they do not have one page, but each one 
> has its own), the "Go to Artist Page" menu button was changed to a 
> KActionMenu to support showing a sub list.
> 
> Get track title from release information, as different releases can change 
> track title (e.g., adding (single edit) or similar).
> 
> Instead of doing *release* requests to get album artist and year, do *release 
> group* requests. It often means fewer requests will be done (and each one 
> takes at least 1 second, so...).
> See http://tickets.musicbrainz.org/browse/SEARCH-214 and 
> http://tickets.musicbrainz.org/browse/SEARCH-218
> 
> Reimplement Levenshtein distance algorithm using a more efficient version 
> (pirated from Wikibooks as well as the current one).
> 
> Tracks without results are now listed and disabled, to let user know what 
> results are missing. Prior to this, you had to count them by hand.
> 
> File name is shown in track tooltip. Helpful when existing tags are equivocal.
> 
> Selected results are shown in bold font to be easily spotted.
> 
> Track number, track count, disc number (when existing) and release year 
> (first release date from the release group, actually) are now shown to help 
> distinguish among results. This means that all the fetched information is now 
> shown to the user.
> 
> Tracks are sorted by file name (fair choice). It's done after each insertion, 
> but since insertions are quite sparse, it doesn't cause any performance 
> problem.
> 
> Toolbar features "Select Best Matches" and "Deselect", the latter being new, 
> and the former being moved here from the hidden header button. To keep it not 
> too wide, Expand and Collapse buttons were modified to be KActionMenu. They 
> now require two clicks, but are easier to distinguish (I always had to stop 
> and read them to distinguish between "Collapse All" and "Collapse Chosen", 
> for example), so the time needed to click them looks mostly the same as 
> before.
> 
> The progress bar now gets to 100% even if MusicDNS search is disabled.
> 
> All releases per track are processed instead of only the best one. I'll 
> explain better. Each track is associated to several releases. In current 
> code, all the releases are parsed, but only the one with the highest score is 
> returned to the dialog. This excludes lots of good results. Now, all of them 
> can be returned. This obviously can increase the number of returned resuts, 
> but that's acceptable given that, before, you were not able to tag a lot of 
> tracks. Also, two following paragraphs are about two features that mitigate 
> this "problem".
> 
> Tracks with the same visible information are merged. There's no point in 
> showing several tracks with same title, artist, album name and artist, album 
> year, disc number, track count and track number, as the user will not be able 
> to distinguish among them. Just merge them into only one result, keeping a 
> list of artist, release and track IDs (they are and will be used). Also, the 
> score is updated to reflect the higher one. The "Go to ... Page" menu buttons 
> currently link to the top result (i.e., highest scoring) IDs, but in the 
> future I might add support for showing a list.
> 
> A "Select Best Matches from This Album" menu button was added. It matches the 
> top result release ID in other *unselected* results, to make album tagging 
> much easier. Since a result might reference many release IDs (see the 
> paragraph above), the match is done on the whole list of them. This is highly 
> recommended over the "Select Best Matches" toolbar button.
> 
> Process MusicDNS results just like MusicBrainz ones (i.e., do not duplicate 
> the logic). Simply, as they will not carry existing tags, they'll end up 
> being checked only by track length.
> 
> Rewrite MusicDNS result matching method in the list view. Actually, remove it 
> (it was checking for equal track ID, but that is a very weak method, 
> especially after my updates), and use the matching system described above.
> 
> Make MusicBrainzTagsView implementation agnostic (i.e., never use 
> MusicBrainzTagsItem inside it, and make use of UserRole).
> 
> Remove stale code from MusicBrainzFinder.cpp and MusicBrainzXmlParser.(cpp|h) 
> dealing with MBID requests (talked to maintainer about this).
> 
> Move and rename methods to enhance consistency and tidyness. Source files are 
> a bit easier to navigate now.
> 
> Adapt to global Amarok coding style.
> 
> 
> That's about it. The attached screenshot shows most of the visible updates.
> 
> Even if the patch rewrites many parts of the tagger, this work was possible 
> only thanks to the solid foundations made by Sergey, who I thank for his work.
> 
> 
> Diffs
> -----
> 
>   src/dialogs/MusicBrainzTagger.h 5fa0271 
>   src/dialogs/MusicBrainzTagger.cpp 9ac99a6 
>   src/musicbrainz/MusicBrainzFinder.h db8cb05 
>   src/musicbrainz/MusicBrainzFinder.cpp 6635d04 
>   src/musicbrainz/MusicBrainzMeta.h 5cbd190 
>   src/musicbrainz/MusicBrainzTags.h f70d494 
>   src/musicbrainz/MusicBrainzTags.cpp c90c2f8 
>   src/musicbrainz/MusicBrainzXmlParser.h 171a340 
>   src/musicbrainz/MusicBrainzXmlParser.cpp 473d27a 
> 
> Diff: http://git.reviewboard.kde.org/r/105290/diff/
> 
> 
> Testing
> -------
> 
> 
> File Attachments
> ----------------
> 
> Toolbar with icons and QToolButtons
>   http://git.reviewboard.kde.org/media/uploaded/files/2013/04/15/snapshot1.png
> 
> 
> Screenshots
> -----------
> 
> 
>   http://git.reviewboard.kde.org/r/105290/s/605/
> 
> 
> Thanks,
> 
> Alberto Villa
> 
>

_______________________________________________
Amarok-devel mailing list
Amarok-devel@kde.org
https://mail.kde.org/mailman/listinfo/amarok-devel

Reply via email to