Cover art support

- [x] implement database scheme
- [x] search for embedded cover
- [x] search for cover in track directory
- [x] save covers in disk cache
- [x] search for covers in disk cache
- [x] minimal ui (display covers in lower left corner)
- [x] handle existing users
- [x] LRU cache
- [x] unit tests
- [x] md5 hash
Hi Marcos,

Solved!
I cannot see a scrolling performance difference compared to the master
version now.

Kind regards,

Daniel


Am 07.07.2014 00:42, schrieb Marcos Cardinot:
>
> In src/widget/wtracktableview.cpp:
>
> > +    QString coverLocation;
> > +    int trackId = 0;
> > +    const QModelIndexList indices = selectionModel()->selectedRows();
> > +    if ((indices.size() == 1) && (indices[0].isValid())) {
> > +        QModelIndex idx = indices[0];
> > +        TrackModel* trackModel = getTrackModel();
> > +        if (trackModel) {
> > +            coverLocation = idx.sibling(idx.row(),
> > +                                        trackModel->fieldIndex("cover")
> > +                                        ).data().toString();
> > +            trackId = trackModel->getTrackId(idx);
> > +        }
> > +    }
> > +    emit(loadCoverArt(coverLocation, trackId));
> > +    update();
> > +}
>
> Hello @daschuer <https://github.com/daschuer>, thanks a lot for your
> help. =D
> Yesterday I pushed a different approach for this issue using COT.
> ab39f64
> <https://github.com/mixxxdj/mixxx/commit/ab39f640619116c7ac07b21168e991aa9b121470>
>
> Basically, the idea is check if the user is in the same row for more
> than 0.1s
> In this approach we also avoid emitting loadCover() always when the
> selection changes (even if it is just to load a default cover).
>
> Please, let me know if it's an issue still and if there's something
> more to improve. Thanks =D
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/mixxxdj/mixxx/pull/278/files#r14578167>.
>