-
-
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
Refactoring: Extract BaseTrackTableModel + BaseCoverArtDelegate #2538
Conversation
I guess it is better to integrate these changes before adding new features like the configurable background opacity for skins. |
Also, Mixxx segfaults when I try to load an external Serato Library. Here's a backtrace from gdb:
|
- Reduce the hard-coded dependencies to other classes to be reusable for integrating external track collections - Send a single signal for marking rows as dirty or changed
The crash should be fixed, just a missing index validation. |
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 skimmed over the code and didn't spot any obvious issues. Both bugs (the segfault and the row background problem) are fixed. However, before we merge someone else should have a look at this, too.
@mixxxdj/developers Can someone take a look? I'd merge this but since this is pretty big I want to make sure I didn't overlook something. |
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 retested today and it still works fine. Code also LGTM. Thank you. Since nobody pointed out any issues with this in more than three weeks, I'll go ahead and merge now.
Required for: #2545, #2524, #2282
I recommend to get this integrated into 2.3! Otherwise I expect a substantial amount of porting efforts in case of bug fixes in 2.3 that affect the table model and views.
BaseTrackTableModel
fromBaseSqlTableModel
BaseCoverArtDelegate
fromCoverArtDelegate
BaseCoverArtDelegate
as a single signalBansheePlaylistModel
This PR lays the ground to reuse our table views for external libraries that are not populated from search queries executed on the internal database. As such it enables to provide different views on the internal track collection. Track objects are then still loaded from the internal database as before.
It includes an optimization of the communication between
CoverArtDelegate
and the table view. Rows that have been marked as cache miss and need to be refreshed by the view are now sent byrowsChanged(QList<int> rows)
all at once instead of one by one. This allows to refresh consecutive rows in the table view instead of only single cells.