Review Request: Collectionscanner patch

Leo Franchi lfranchi at kde.org
Sat Oct 30 16:08:27 CEST 2010


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


This patch didn't apply so I pulled from your collectionscanner-squashed3 branch on gitorious. on trying to change track this is the crash:



Thread 1 (Thread 0x7f0c8f7077a0 (LWP 28390)):
[KCrash Handler]
#6  0x00007f0c8bf53595 in raise () from /lib/libc.so.6
#7  0x00007f0c8bf54a16 in abort () from /lib/libc.so.6
#8  0x00007f0c8c82eef8 in qt_message_output (msgType=QtFatalMsg, buf=0x4308fd8 "ASSERT failure in QReadWriteLock::unlock(): \"Cannot unlock an unlocked lock\", file thread/qreadwritelock.cpp, line 405") at global/qglobal.cpp:2282
#9  0x00007f0c8c82f074 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtFatalMsg, msg=0x7f0c8c9d7560 "ASSERT failure in %s: \"%s\", file %s, line %d", ap=0x7fff74565bc0) at global/qglobal.cpp:2328
#10 0x00007f0c8c82f8e2 in qFatal (msg=0x7f0c8c9d7560 "ASSERT failure in %s: \"%s\", file %s, line %d") at global/qglobal.cpp:2511
#11 0x00007f0c8c82eaeb in qt_assert_x (where=0x7f0c8c9d8f37 "QReadWriteLock::unlock()", what=0x7f0c8c9d8f18 "Cannot unlock an unlocked lock", file=0x7f0c8c9d8e52 "thread/qreadwritelock.cpp", line=405) at global/qglobal.cpp:2035
#12 0x00007f0c8c835303 in QReadWriteLock::unlock (this=0x2416368) at thread/qreadwritelock.cpp:405
#13 0x00007f0c692fd9d3 in QWriteLocker::unlock (this=0x7fff74565d90) at /home/leo/qt/4.7/include/QtCore/qreadwritelock.h:146
#14 0x00007f0c692fd982 in QWriteLocker::~QWriteLocker (this=0x7fff74565d90, __in_chrg=<value optimized out>) at /home/leo/qt/4.7/include/QtCore/qreadwritelock.h:139
#15 0x00007f0c692f13c7 in Meta::SqlTrack::endMetaDataUpdate (this=0x2416260) at /home/leo/kde/src/amarok/src/core-impl/collections/db/sql/SqlMeta.cpp:802
#16 0x00007f0c692f606f in Meta::SqlTrack::finishedPlaying (this=0x2416260, playedFraction=0.98650480769230764) at /home/leo/kde/src/amarok/src/core-impl/collections/db/sql/SqlMeta.cpp:1249
#17 0x00007f0c8e42c4ce in Playlist::Actions::play (this=0x296a080, trackid=1033146158495521810, now=true) at /home/leo/kde/src/amarok/src/playlist/PlaylistActions.cpp:229
#18 0x00007f0c8e42c094 in Playlist::Actions::requestUserNextTrack (this=0x296a080) at /home/leo/kde/src/amarok/src/playlist/PlaylistActions.cpp:155
#19 0x00007f0c8e42c636 in Playlist::Actions::next (this=0x296a080) at /home/leo/kde/src/amarok/src/playlist/PlaylistActions.cpp:247
#20 0x00007f0c8e381167 in Playlist::Actions::qt_metacall (this=0x296a080, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fff745660b0) at /home/leo/kde/build/amarok/src/moc_PlaylistActions.cpp:101
#21 0x00007f0c8c95f6ab in QMetaObject::metacall (object=0x296a080, cl=QMetaObject::InvokeMetaMethod, idx=10, argv=0x7fff745660b0) at kernel/qmetaobject.cpp:237
#22 0x00007f0c8c97453b in QMetaObject::activate (sender=0x289cb10, m=0x7f0c8e19aee0, local_signal_index=1, argv=0x7fff745660b0) at kernel/qobject.cpp:3278
#23 0x00007f0c8d44e892 in QAction::triggered (this=0x289cb10, _t1=false) at .moc/debug-shared/moc_qaction.cpp:263
#24 0x00007f0c8d44db94 in QAction::activate (this=0x289cb10, event=QAction::Trigger) at kernel/qaction.cpp:1257
#25 0x00007f0c8ef8cf17 in QAction::trigger (this=0x289cb10) at /home/leo/qt/4.7/include/QtGui/qaction.h:218
#26 0x00007f0c8f0dfe49 in KGlobalAccelPrivate::_k_invokeAction (this=0x28cfad0, componentUnique=..., actionUnique=..., timestamp=142322112) at /home/leo/kde/src/kdelibs/kdeui/shortcuts/kglobalaccel.cpp:440
#27 0x00007f0c8f0e0c8c in KGlobalAccel::qt_metacall (this=0x2928d90, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff74566350) at /home/leo/kde/build/kdelibs/kdeui/kglobalaccel.moc:77
#28 0x00007f0c8c95f6ab in QMetaObject::metacall (object=0x2928d90, cl=QMetaObject::InvokeMetaMethod, idx=4, argv=0x7fff74566350) at kernel/qmetaobject.cpp:237
#29 0x00007f0c8c97453b in QMetaObject::activate (sender=0x293f390, m=0x7f0c8f53a920, local_signal_index=0, argv=0x7fff74566350) at kernel/qobject.cpp:3278
#30 0x00007f0c8f209033 in OrgKdeKglobalaccelComponentInterface::globalShortcutPressed (this=0x293f390, _t1=..., _t2=..., _t3=142322112) at /home/leo/kde/build/kdelibs/kdeui/kglobalaccel_component_interface.moc:150
#31 0x00007f0c8f208bc5 in OrgKdeKglobalaccelComponentInterface::qt_metacall (this=0x293f390, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff745664a0) at /home/leo/kde/build/kdelibs/kdeui/kglobalaccel_component_interface.moc:98
#32 0x00007f0c89887ed9 in QDBusConnectionPrivate::deliverCall (this=0x1954e70, object=0x293f390, msg=..., metaTypes=..., slotIdx=5) at qdbusintegrator.cpp:930
#33 0x00007f0c89893e63 in QDBusCallDeliveryEvent::placeMetaCall (this=0x2d5aaa0, object=0x293f390) at qdbusintegrator_p.h:103
#34 0x00007f0c8c96fe59 in QObject::event (this=0x293f390, e=0x2d5aaa0) at kernel/qobject.cpp:1217
#35 0x00007f0c8d45e356 in QApplicationPrivate::notify_helper (this=0x19637a0, receiver=0x293f390, e=0x2d5aaa0) at kernel/qapplication.cpp:4454
#36 0x00007f0c8d45b97a in QApplication::notify (this=0x7fff74567440, receiver=0x293f390, e=0x2d5aaa0) at kernel/qapplication.cpp:3854
#37 0x00007f0c8f086595 in KApplication::notify (this=0x7fff74567440, receiver=0x293f390, event=0x2d5aaa0) at /home/leo/kde/src/kdelibs/kdeui/kernel/kapplication.cpp:311
#38 0x00007f0c8c957537 in QCoreApplication::notifyInternal (this=0x7fff74567440, receiver=0x293f390, event=0x2d5aaa0) at kernel/qcoreapplication.cpp:732
#39 0x00007f0c8d44ee8b in QCoreApplication::sendEvent (receiver=0x293f390, event=0x2d5aaa0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#40 0x00007f0c8c958770 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x17d90c0) at kernel/qcoreapplication.cpp:1373
#41 0x00007f0c8c958391 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#42 0x00007f0c8d52a04d in QCoreApplication::sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#43 0x00007f0c8c98fd68 in postEventSourceDispatch (s=0x1970440) at kernel/qeventdispatcher_glib.cpp:277
#44 0x00007f0c84369bf3 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#45 0x00007f0c8436a3d0 in ?? () from /usr/lib/libglib-2.0.so.0
#46 0x00007f0c8436a66d in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#47 0x00007f0c8c990631 in QEventDispatcherGlib::processEvents (this=0x17d8770, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#48 0x00007f0c8d536362 in QGuiEventDispatcherGlib::processEvents (this=0x17d8770, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#49 0x00007f0c8c95509a in QEventLoop::processEvents (this=0x7fff745673e0, flags=...) at kernel/qeventloop.cpp:149
#50 0x00007f0c8c9551ee in QEventLoop::exec (this=0x7fff745673e0, flags=...) at kernel/qeventloop.cpp:201
#51 0x00007f0c8c957c2a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#52 0x00007f0c8d45b4f2 in QApplication::exec () at kernel/qapplication.cpp:3728
#53 0x0000000000407451 in main (argc=2, argv=0x7fff745693b8) at /home/leo/kde/src/amarok/src/main.cpp:239


- Leo


On 2010-10-25 14:28:19, Ralf Engels wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100092/
> -----------------------------------------------------------
> 
> (Updated 2010-10-25 14:28:19)
> 
> 
> Review request for Amarok.
> 
> 
> Summary
> -------
> 
> Note: This patch is currently not well enough tested for the amount of changes.
> I am also thinking about submitting the changes in more homeophatic pieces.
> I will keep this patch up to date so that it always applies on the master without problems until it's completely tested.
> 
> This patch exchanges the collectionscanner and the SqlScannerProcessor with a new version that uses the SqlRegistry and SqlTrack methods instead of directly writing the database.
> This allows a direct feedback for the user after scanning and prevents confusing the SqlRegistry.
> 
> Note that there are several additional changes that I had to do or wanted to do. I hope I remember everything:
> 
> 1. App does not initiate scanning at startup time any longer.
> The idea was that the collection should itself know if a scanning is needed and speed up the Amarok startup time
> 
> 2. Changes to SqlRegistry and SqlMeta to make them thread save as the ScannerProcessor is running in a different thread and now using all these functions.
> 
> 3. Meta::Album::setImage is now using a QImage
> As this function is called from outside the UI thread I can not use a QPixmap.
> This also eliminates a previously existing warning message about QPixmaps being used from outside the thread.
> 
> 4. EngineController get's several signals
> Signals are usually thread save where the observer pattern is usually not.
> However several observers changed the ui (e.g. the Tray, Progress bar, OSD).
> A bigger EngineController patch removing all the remaining observers is a good idea.
> 
> 5. Don't use QVariantMap for writing track meta data.
> MetaSupport has such nice uint64 constants for identifying meta data.
> This is not really needed but it should reduce memory consumption an increase speed a little bit with the only drawback that outputting such a FieldMap is not that informative any longer.
> 
> 6. Fixed almost all auto tests
> Almost all of them are running now.
> 
> 7. Additional comments for various functions.
> 
> 8. Reading and writing FMPS.
> This means that rating, playcount and score are now saved to/read from local files.
> 
> 
> Diffs
> -----
> 
>   src/ActionClasses.cpp 61e8af8 
>   src/App.h 8652519 
>   src/App.cpp e6006b9 
>   src/EngineController.h 51e7fb3 
>   src/EngineController.cpp 5e07700 
>   src/MainWindow.h 4593d47 
>   src/MainWindow.cpp f5d4044 
>   src/TrayIcon.h d1ffd43 
>   src/TrayIcon.cpp 5ae5c7e 
>   src/amarokurls/NavigationUrlGenerator.cpp c330de8 
>   src/browsers/CollectionSortFilterProxyModel.cpp 2954934 
>   src/browsers/CollectionTreeItem.h 39a4c3d 
>   src/browsers/CollectionTreeItem.cpp b390900 
>   src/browsers/CollectionTreeItemModel.cpp 6560390 
>   src/browsers/CollectionTreeItemModelBase.h cc0ce62 
>   src/browsers/CollectionTreeItemModelBase.cpp c25549b 
>   src/browsers/CollectionTreeView.cpp ed34beb 
>   src/browsers/SingleCollectionTreeItemModel.cpp 922a3e8 
>   src/context/applets/albums/AlbumsModel.cpp 9b376ff 
>   src/context/applets/currenttrack/CurrentTrack.h f1162e9 
>   src/context/applets/currenttrack/CurrentTrack.cpp 83ed59a 
>   src/context/applets/videoclip/VideoclipApplet.cpp 771cbab 
>   src/context/engines/current/CurrentEngine.h 0369065 
>   src/context/engines/current/CurrentEngine.cpp 34086b2 
>   src/core-impl/capabilities/timecode/TimecodeEditCapability.h c9f3e73 
>   src/core-impl/capabilities/timecode/TimecodeEditCapability.cpp 4bddd84 
>   src/core-impl/collections/CMakeLists.txt 1e29df7 
>   src/core-impl/collections/audiocd/AudioCdMeta.h 2c0e91c 
>   src/core-impl/collections/audiocd/AudioCdMeta.cpp 861ec2d 
>   src/core-impl/collections/daap/DaapMeta.h c1be0b5 
>   src/core-impl/collections/daap/DaapMeta.cpp 64b855e 
>   src/core-impl/collections/daap/daapreader/Reader.h 5c21caf 
>   src/core-impl/collections/daap/daapreader/Reader.cpp 0fd70e5 
>   src/core-impl/collections/db/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/DatabaseCollection.h PRE-CREATION 
>   src/core-impl/collections/db/DatabaseCollection.cpp PRE-CREATION 
>   src/core-impl/collections/db/DatabaseMeta.h PRE-CREATION 
>   src/core-impl/collections/db/DatabaseMeta.cpp PRE-CREATION 
>   src/core-impl/collections/db/ScanManager.h PRE-CREATION 
>   src/core-impl/collections/db/ScanManager.cpp PRE-CREATION 
>   src/core-impl/collections/db/ScanResultProcessor.h PRE-CREATION 
>   src/core-impl/collections/db/ScanResultProcessor.cpp PRE-CREATION 
>   src/core-impl/collections/db/amarok_databasecollection_export.h PRE-CREATION 
>   src/core-impl/collections/db/sql/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/CapabilityDelegate.h PRE-CREATION 
>   src/core-impl/collections/db/sql/CapabilityDelegateImpl.h PRE-CREATION 
>   src/core-impl/collections/db/sql/CapabilityDelegateImpl.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/DatabaseUpdater.h PRE-CREATION 
>   src/core-impl/collections/db/sql/DatabaseUpdater.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/DefaultSqlQueryMakerFactory.h PRE-CREATION 
>   src/core-impl/collections/db/sql/MountPointManager.h PRE-CREATION 
>   src/core-impl/collections/db/sql/MountPointManager.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlBookmarkThisCapability.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlBookmarkThisCapability.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollection.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollection.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollectionFactory.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollectionFactory.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollectionLocation.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlCollectionLocation.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlMeta.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlMeta.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlQueryMaker.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlQueryMaker.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlQueryMakerInternal.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlQueryMakerInternal.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlReadLabelCapability.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlReadLabelCapability.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlRegistry.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlRegistry.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlScanResultProcessor.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlScanResultProcessor.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlWriteLabelCapability.h PRE-CREATION 
>   src/core-impl/collections/db/sql/SqlWriteLabelCapability.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/XesamCollectionBuilder.h PRE-CREATION 
>   src/core-impl/collections/db/sql/XesamCollectionBuilder.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/XesamDbus.h PRE-CREATION 
>   src/core-impl/collections/db/sql/XesamDbus.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/XesamInterface.xml PRE-CREATION 
>   src/core-impl/collections/db/sql/amarok_sqlcollection_export.h PRE-CREATION 
>   src/core-impl/collections/db/sql/device/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/device/massstorage/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.h PRE-CREATION 
>   src/core-impl/collections/db/sql/device/massstorage/MassStorageDeviceHandler.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/device/massstorage/amarok_massstorage-device.desktop PRE-CREATION 
>   src/core-impl/collections/db/sql/device/nfs/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.h PRE-CREATION 
>   src/core-impl/collections/db/sql/device/nfs/NfsDeviceHandler.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/device/nfs/amarok_nfs-device.desktop PRE-CREATION 
>   src/core-impl/collections/db/sql/device/smb/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.h PRE-CREATION 
>   src/core-impl/collections/db/sql/device/smb/SmbDeviceHandler.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/device/smb/amarok_smb-device.desktop PRE-CREATION 
>   src/core-impl/collections/db/sql/mysql-shared/MySqlQueryMaker.h PRE-CREATION 
>   src/core-impl/collections/db/sql/mysql-shared/MySqlQueryMaker.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/mysql-shared/MySqlStorage.h PRE-CREATION 
>   src/core-impl/collections/db/sql/mysql-shared/MySqlStorage.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.h PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedCollection.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedStorage.h PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/MySqlEmbeddedStorage.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlecollection/amarok_collection-mysqlecollection.desktop PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlservercollection/CMakeLists.txt PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.h PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlservercollection/MySqlServerCollection.cpp PRE-CREATION 
>   src/core-impl/collections/db/sql/mysqlservercollection/amarok_collection-mysqlservercollection.desktop PRE-CREATION 
>   src/core-impl/collections/ipodcollection/handler/IpodHandler.h 9e914c2 
>   src/core-impl/collections/ipodcollection/handler/IpodHandler.cpp 64227e1 
>   src/core-impl/collections/ipodcollection/handler/capabilities/IpodArtworkCapability.h 5299aba 
>   src/core-impl/collections/ipodcollection/handler/capabilities/IpodArtworkCapability.cpp 6bf3e64 
>   src/core-impl/collections/ipodcollection/handler/capabilities/IpodWriteCapability.h b9a3407 
>   src/core-impl/collections/ipodcollection/handler/capabilities/IpodWriteCapability.cpp 4333739 
>   src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.h fa57e0a 
>   src/core-impl/collections/mediadevicecollection/MediaDeviceMeta.cpp f277a40 
>   src/core-impl/collections/mediadevicecollection/handler/MediaDeviceHandler.cpp 0c18a26 
>   src/core-impl/collections/mediadevicecollection/handler/capabilities/ArtworkCapability.h 83cc8c4 
>   src/core-impl/collections/mediadevicecollection/handler/capabilities/ArtworkCapability.cpp b458136 
>   src/core-impl/collections/mediadevicecollection/handler/capabilities/WriteCapability.h 5143af1 
>   src/core-impl/collections/mtpcollection/handler/capabilities/MtpWriteCapability.h a4e2bfb 
>   src/core-impl/collections/mtpcollection/handler/capabilities/MtpWriteCapability.cpp 86ffa31 
>   src/core-impl/collections/nepomukcollection/NepomukQueryMaker.h 3a8757f 
>   src/core-impl/collections/nepomukcollection/NepomukQueryMaker.cpp 96ac92d 
>   src/core-impl/collections/nepomukcollection/NepomukRegistry.cpp 21e9ac8 
>   src/core-impl/collections/nepomukcollection/NepomukTrack.h 61d6177 
>   src/core-impl/collections/nepomukcollection/NepomukTrack.cpp 06411ff 
>   src/core-impl/collections/playdarcollection/PlaydarCollection.cpp dccbeec 
>   src/core-impl/collections/playdarcollection/PlaydarMeta.h 114f0bf 
>   src/core-impl/collections/playdarcollection/PlaydarMeta.cpp 58cee34 
>   src/core-impl/collections/playdarcollection/PlaydarQueryMaker.h 706b197 
>   src/core-impl/collections/playdarcollection/PlaydarQueryMaker.cpp 20051c2 
>   src/core-impl/collections/proxycollection/ProxyCollection.h a394324 
>   src/core-impl/collections/proxycollection/ProxyCollection.cpp 10a1116 
>   src/core-impl/collections/proxycollection/ProxyCollectionMeta.h d473792 
>   src/core-impl/collections/proxycollection/ProxyCollectionMeta.cpp f800987 
>   src/core-impl/collections/proxycollection/ProxyCollectionQueryMaker.h b5f1dc6 
>   src/core-impl/collections/proxycollection/ProxyCollectionQueryMaker.cpp 19465a9 
>   src/core-impl/collections/sqlcollection/ArtistHelper.h c2ed80e 
>   src/core-impl/collections/sqlcollection/ArtistHelper.cpp 1430df6 
>   src/core-impl/collections/sqlcollection/CMakeLists.txt f530d67 
>   src/core-impl/collections/sqlcollection/CapabilityDelegate.h 28c8daa 
>   src/core-impl/collections/sqlcollection/CapabilityDelegateImpl.h f5bab2d 
>   src/core-impl/collections/sqlcollection/CapabilityDelegateImpl.cpp 78fd02b 
>   src/core-impl/collections/sqlcollection/DatabaseUpdater.h 8eef5d0 
>   src/core-impl/collections/sqlcollection/DatabaseUpdater.cpp 00a9e25 
>   src/core-impl/collections/sqlcollection/DefaultSqlQueryMakerFactory.h c6a0096 
>   src/core-impl/collections/sqlcollection/MountPointManager.h f22e53a 
>   src/core-impl/collections/sqlcollection/MountPointManager.cpp a28e976 
>   src/core-impl/collections/sqlcollection/ScanManager.h 135a877 
>   src/core-impl/collections/sqlcollection/ScanManager.cpp bc3c9e5 
>   src/core-impl/collections/sqlcollection/ScanResultProcessor.h 641d378 
>   src/core-impl/collections/sqlcollection/ScanResultProcessor.cpp 357c9d2 
>   src/core-impl/collections/sqlcollection/SqlBookmarkThisCapability.h 9418f2f 
>   src/core-impl/collections/sqlcollection/SqlBookmarkThisCapability.cpp fbc41ba 
>   src/core-impl/collections/sqlcollection/SqlCollection.h 7e970e7 
>   src/core-impl/collections/sqlcollection/SqlCollection.cpp b88d257 
>   src/core-impl/collections/sqlcollection/SqlCollectionDBusHandler.h 7f187a4 
>   src/core-impl/collections/sqlcollection/SqlCollectionDBusHandler.cpp d103c79 
>   src/core-impl/collections/sqlcollection/SqlCollectionFactory.h 6c48611 
>   src/core-impl/collections/sqlcollection/SqlCollectionFactory.cpp a1966ac 
>   src/core-impl/collections/sqlcollection/SqlCollectionLocation.h ec3a6d8 
>   src/core-impl/collections/sqlcollection/SqlCollectionLocation.cpp 4b023fc 
>   src/core-impl/collections/sqlcollection/SqlImportedPlaylistProvider.h 8cccc56 
>   src/core-impl/collections/sqlcollection/SqlImportedPlaylistProvider.cpp 6466e8b 
>   src/core-impl/collections/sqlcollection/SqlMeta.h b92e351 
>   src/core-impl/collections/sqlcollection/SqlMeta.cpp 6b29b6e 
>   src/core-impl/collections/sqlcollection/SqlQueryMaker.h d4e452b 
>   src/core-impl/collections/sqlcollection/SqlQueryMaker.cpp ddc77d2 
>   src/core-impl/collections/sqlcollection/SqlQueryMakerInternal.h 65db5af 
>   src/core-impl/collections/sqlcollection/SqlQueryMakerInternal.cpp 965ff08 
>   src/core-impl/collections/sqlcollection/SqlReadLabelCapability.h c49d902 
>   src/core-impl/collections/sqlcollection/SqlReadLabelCapability.cpp 8175bc2 
>   src/core-impl/collections/sqlcollection/SqlRegistry.h 66ba632 
>   src/core-impl/collections/sqlcollection/SqlRegistry.cpp e1b3571 
>   src/core-impl/collections/sqlcollection/SqlWriteLabelCapability.h 38a97bb 
>   src/core-impl/collections/sqlcollection/SqlWriteLabelCapability.cpp a7d5b1e 
>   src/core-impl/collections/sqlcollection/XesamCollectionBuilder.h 80aadba 
>   src/core-impl/collections/sqlcollection/XesamCollectionBuilder.cpp 01d9661 
>   src/core-impl/collections/sqlcollection/XesamDbus.h c0cb790 
>   src/core-impl/collections/sqlcollection/XesamDbus.cpp 11211e6 
>   src/core-impl/collections/sqlcollection/XesamInterface.xml 400b379 
>   src/core-impl/collections/sqlcollection/amarok_sqlcollection_export.h 4495d0c 
>   src/core-impl/collections/sqlcollection/device/CMakeLists.txt 1baaf85 
>   src/core-impl/collections/sqlcollection/device/massstorage/CMakeLists.txt 7a0dc1f 
>   src/core-impl/collections/sqlcollection/device/massstorage/MassStorageDeviceHandler.h d0a9ec4 
>   src/core-impl/collections/sqlcollection/device/massstorage/MassStorageDeviceHandler.cpp eb4286f 
>   src/core-impl/collections/sqlcollection/device/massstorage/amarok_massstorage-device.desktop 6b5400d 
>   src/core-impl/collections/sqlcollection/device/nfs/CMakeLists.txt 6807dd6 
>   src/core-impl/collections/sqlcollection/device/nfs/NfsDeviceHandler.h 21c1894 
>   src/core-impl/collections/sqlcollection/device/nfs/NfsDeviceHandler.cpp 91af710 
>   src/core-impl/collections/sqlcollection/device/nfs/amarok_nfs-device.desktop 555989e 
>   src/core-impl/collections/sqlcollection/device/smb/CMakeLists.txt fc27d5a 
>   src/core-impl/collections/sqlcollection/device/smb/SmbDeviceHandler.h c74c840 
>   src/core-impl/collections/sqlcollection/device/smb/SmbDeviceHandler.cpp 2f19e28 
>   src/core-impl/collections/sqlcollection/device/smb/amarok_smb-device.desktop 589aabd 
>   src/core-impl/collections/sqlcollection/mysql-shared/MySqlQueryMaker.h 360ba94 
>   src/core-impl/collections/sqlcollection/mysql-shared/MySqlQueryMaker.cpp c8f47a1 
>   src/core-impl/collections/sqlcollection/mysql-shared/MySqlStorage.h 2386bef 
>   src/core-impl/collections/sqlcollection/mysql-shared/MySqlStorage.cpp a661873 
>   src/core-impl/collections/sqlcollection/mysqlecollection/CMakeLists.txt aa3588c 
>   src/core-impl/collections/sqlcollection/mysqlecollection/MySqlEmbeddedCollection.h e0a8553 
>   src/core-impl/collections/sqlcollection/mysqlecollection/MySqlEmbeddedCollection.cpp 678cb89 
>   src/core-impl/collections/sqlcollection/mysqlecollection/MySqlEmbeddedStorage.h ab7d75b 
>   src/core-impl/collections/sqlcollection/mysqlecollection/MySqlEmbeddedStorage.cpp acb4aa8 
>   src/core-impl/collections/sqlcollection/mysqlecollection/amarok_collection-mysqlecollection.desktop 864b1f5 
>   src/core-impl/collections/sqlcollection/mysqlservercollection/CMakeLists.txt 0a5d722 
>   src/core-impl/collections/sqlcollection/mysqlservercollection/MySqlServerCollection.h d94f59f 
>   src/core-impl/collections/sqlcollection/mysqlservercollection/MySqlServerCollection.cpp 179fbe2 
>   src/core-impl/collections/sqlcollection/mysqlservercollection/amarok_collection-mysqlservercollection.desktop 3b3c06f 
>   src/core-impl/collections/sqlcollection/org.kde.amarok.SqlCollection.xml b09d91d 
>   src/core-impl/collections/support/ArtistHelper.h PRE-CREATION 
>   src/core-impl/collections/support/ArtistHelper.cpp PRE-CREATION 
>   src/core-impl/collections/support/CollectionManager.h 77d8967 
>   src/core-impl/collections/support/CollectionManager.cpp 38ebd1f 
>   src/core-impl/collections/support/MemoryCollection.h 2d5eebb 
>   src/core-impl/collections/support/MemoryFilter.cpp ecb92ff 
>   src/core-impl/collections/support/MemoryMatcher.cpp bfcbd82 
>   src/core-impl/collections/support/MemoryQueryMaker.h 1726e95 
>   src/core-impl/collections/support/MemoryQueryMaker.cpp e35769e 
>   src/core-impl/collections/support/XmlQueryWriter.h 11c818e 
>   src/core-impl/collections/support/XmlQueryWriter.cpp 657e0c8 
>   src/core-impl/collections/umscollection/handler/UmsHandler.cpp 1a5d2bb 
>   src/core-impl/collections/umscollection/podcasts/UmsPodcastMeta.h 0f3b72d 
>   src/core-impl/collections/umscollection/podcasts/UmsPodcastMeta.cpp 80a9523 
>   src/core-impl/meta/file/File.h c791ccd 
>   src/core-impl/meta/file/File.cpp b807cba 
>   src/core-impl/meta/file/File_p.h 4f120a9 
>   src/core-impl/meta/file/TagLibUtils.h 96e1a60 
>   src/core-impl/meta/file/TagLibUtils.cpp ad1a07e 
>   src/core-impl/meta/proxy/MetaProxy.h 32f2f76 
>   src/core-impl/meta/proxy/MetaProxy.cpp 8cc01a1 
>   src/core-impl/meta/proxy/MetaProxy_p.h c581271 
>   src/core-impl/meta/stream/Stream.h cb45d3b 
>   src/core-impl/meta/stream/Stream.cpp c688053 
>   src/core-impl/meta/stream/Stream_p.h 7601249 
>   src/core-impl/meta/timecode/TimecodeMeta.h 3518bef 
>   src/core-impl/meta/timecode/TimecodeMeta.cpp 4b39585 
>   src/core-impl/playlists/types/file/PlaylistFileSupport.cpp 8a1b745 
>   src/core-impl/playlists/types/file/m3u/M3UPlaylist.h 46efdee 
>   src/core-impl/podcasts/sql/SqlPodcastMeta.cpp 07ceae4 
>   src/core/CMakeLists.txt 5863ca1 
>   src/core/capabilities/BookmarkThisCapability.h 10eef20 
>   src/core/capabilities/CustomActionsCapability.h 99db4a8 
>   src/core/capabilities/EditCapability.h 2406c1e 
>   src/core/collections/Collection.h a085f32 
>   src/core/collections/CollectionLocation.h 567f6d3 
>   src/core/collections/CollectionLocation.cpp dbf3b37 
>   src/core/collections/MetaQueryMaker.h a3277d1 
>   src/core/collections/MetaQueryMaker.cpp 65c29e5 
>   src/core/collections/QueryMaker.h 570d08b 
>   src/core/engine/EngineObserver.h 5a93062 
>   src/core/engine/EngineObserver.cpp 7d5728b 
>   src/core/meta/Meta.h 1225e3c 
>   src/core/meta/Meta.cpp e9c5089 
>   src/core/meta/support/MetaConstants.h 40cad34 
>   src/core/meta/support/MetaKeys.h PRE-CREATION 
>   src/core/meta/support/MetaKeys.cpp PRE-CREATION 
>   src/core/meta/support/MetaUtility.h b161bdc 
>   src/core/meta/support/MetaUtility.cpp 0bb29db 
>   src/core/support/Amarok.h cb9e47f 
>   src/core/support/Amarok.cpp 9f2d727 
>   src/covermanager/CoverFetcher.h 3970648 
>   src/covermanager/CoverFetcher.cpp 9a8d852 
>   src/covermanager/CoverFetchingActions.cpp 6263b37 
>   src/covermanager/CoverFoundDialog.h 80c19d0 
>   src/covermanager/CoverFoundDialog.cpp 88eaac6 
>   src/databaseimporter/amarok14/FastForwardWorker.cpp 8a6e107 
>   src/databaseimporter/itunes/ITunesImporterWorker.cpp ca8e578 
>   src/dialogs/CollectionSetup.h 091965e 
>   src/dialogs/CollectionSetup.cpp ece8d98 
>   src/dialogs/TagDialog.cpp 4a0e94f 
>   src/dynamic/Bias.cpp 6934a70 
>   src/dynamic/BiasSolver.cpp bf8e3c8 
>   src/mac/GrowlInterface.h 3bb35d2 
>   src/mac/GrowlInterface.cpp 862d019 
>   src/playlist/PlaylistModel.cpp 650eaf1 
>   src/playlist/view/listview/PrettyItemDelegate.cpp ab19ccc 
>   src/playlistgenerator/ConstraintSolver.cpp 1e1e512 
>   src/playlistgenerator/constraints/TagMatch.cpp a719825 
>   src/scriptengine/AmarokCollectionScript.cpp b230796 
>   src/scriptengine/AmarokEngineScript.h 55e275c 
>   src/scriptengine/AmarokEngineScript.cpp 15f7b6e 
>   src/scriptengine/MetaTypeExporter.h fd9c96c 
>   src/scriptengine/MetaTypeExporter.cpp 3d3c9c5 
>   src/services/DynamicServiceQueryMaker.h fc134db 
>   src/services/ServiceAlbumCoverDownloader.h 912b572 
>   src/services/ServiceAlbumCoverDownloader.cpp d9a2c4e 
>   src/services/ServiceMetaBase.h 72a7115 
>   src/services/ServiceMetaBase.cpp d267ade 
>   src/services/ServiceSqlQueryMaker.h 14a02cf 
>   src/services/ServiceSqlQueryMaker.cpp 0e1a537 
>   src/services/ampache/AmpacheServiceQueryMaker.h c95a855 
>   src/services/ampache/AmpacheServiceQueryMaker.cpp 0fd9337 
>   src/services/lastfm/LastFmService.cpp 68c70ba 
>   src/services/lastfm/LastFmServiceQueryMaker.h 2d4d972 
>   src/services/lastfm/LastFmServiceQueryMaker.cpp 91161eb 
>   src/services/lastfm/LastFmServiceSettings.cpp 6ed275d 
>   src/services/mp3tunes/Mp3tunesServiceCollection.cpp 304f147 
>   src/services/mp3tunes/Mp3tunesServiceQueryMaker.h c165756 
>   src/services/mp3tunes/Mp3tunesServiceQueryMaker.cpp df6e47f 
>   src/services/scriptable/ScriptableServiceQueryMaker.h 010a0e3 
>   src/services/scriptable/ScriptableServiceQueryMaker.cpp 5279ece 
>   src/synchronization/SynchronizationBaseJob.h bbb34d2 
>   src/synchronization/SynchronizationBaseJob.cpp 04e40cb 
>   src/toolbar/MainToolbar.h fc29ba2 
>   src/toolbar/MainToolbar.cpp abeedc6 
>   src/toolbar/VolumePopupButton.h a0f5d56 
>   src/toolbar/VolumePopupButton.cpp c9e4baf 
>   src/widgets/Osd.h b80b37e 
>   src/widgets/Osd.cpp 29ee886 
>   src/widgets/VolumeWidget.h 910e9f1 
>   src/widgets/VolumeWidget.cpp e1d01f1 
>   tests/TestAmarok.h 28da02e 
>   tests/TestAmarok.cpp 34cf11e 
>   tests/TestTrackOrganizer.cpp 7eb14a9 
>   tests/browsers/TestSingleCollectionTreeItemModel.h cc920c6 
>   tests/browsers/TestSingleCollectionTreeItemModel.cpp 118ad21 
>   tests/context/engines/upcomingevents/TestUpcomingEventsEngine.cpp c4dac2c 
>   tests/core-impl/collections/proxycollection/TestProxyCollectionMeta.cpp 6fadb72 
>   tests/core-impl/collections/sqlcollection/CMakeLists.txt 93d24e3 
>   tests/core-impl/collections/sqlcollection/DatabaseUpdaterTest.h 6c4067c 
>   tests/core-impl/collections/sqlcollection/DatabaseUpdaterTest.cpp 4d6a5f3 
>   tests/core-impl/collections/sqlcollection/IScanManagerMock.h 96c1419 
>   tests/core-impl/collections/sqlcollection/ScanManagerMock.h PRE-CREATION 
>   tests/core-impl/collections/sqlcollection/SqlMountPointManagerMock.h 600c43e 
>   tests/core-impl/collections/sqlcollection/TestAlbumCompilationChange.h daa35c0 
>   tests/core-impl/collections/sqlcollection/TestAlbumCompilationChange.cpp 84a0164 
>   tests/core-impl/collections/sqlcollection/TestArtistHelper.cpp 9395ad2 
>   tests/core-impl/collections/sqlcollection/TestScanResultProcessorFull.h 7616640 
>   tests/core-impl/collections/sqlcollection/TestScanResultProcessorFull.cpp 0162f68 
>   tests/core-impl/collections/sqlcollection/TestSqlAlbum.h PRE-CREATION 
>   tests/core-impl/collections/sqlcollection/TestSqlAlbum.cpp PRE-CREATION 
>   tests/core-impl/collections/sqlcollection/TestSqlArtist.h 7376a5a 
>   tests/core-impl/collections/sqlcollection/TestSqlArtist.cpp d57f55a 
>   tests/core-impl/collections/sqlcollection/TestSqlCollection.cpp 37df4ef 
>   tests/core-impl/collections/sqlcollection/TestSqlCollectionLocation.h c13e925 
>   tests/core-impl/collections/sqlcollection/TestSqlCollectionLocation.cpp 671759f 
>   tests/core-impl/collections/sqlcollection/TestSqlQueryMaker.h aafd1c0 
>   tests/core-impl/collections/sqlcollection/TestSqlQueryMaker.cpp 3bc663c 
>   tests/core-impl/collections/sqlcollection/TestSqlTrack.h 442aaeb 
>   tests/core-impl/collections/sqlcollection/TestSqlTrack.cpp ba702eb 
>   tests/core-impl/collections/sqlcollection/TestSqlTrackEditing.h 1a4a7b2 
>   tests/core-impl/collections/sqlcollection/TestSqlTrackEditing.cpp 6ae1ab0 
>   tests/core-impl/meta/file/TestMetaFileTrack.h 07e0ea2 
>   tests/core-impl/meta/file/TestMetaFileTrack.cpp baacf96 
>   tests/core/meta/TestMetaTrack.h 4786406 
>   tests/core/meta/TestMetaTrack.cpp 450db14 
>   tests/mocks/MetaMock.h d3c820c 
>   tests/mocks/MockTrack.h b799704 
>   tests/synchronization/TestMasterSlaveSynchronizationJob.cpp 641fb05 
>   tests/synchronization/TestOneWaySynchronizationJob.cpp c767a91 
>   tests/synchronization/TestUnionJob.cpp 57fd7f0 
>   utilities/collectionscanner/Album.h PRE-CREATION 
>   utilities/collectionscanner/Album.cpp PRE-CREATION 
>   utilities/collectionscanner/BatchFile.h PRE-CREATION 
>   utilities/collectionscanner/BatchFile.cpp PRE-CREATION 
>   utilities/collectionscanner/CMakeLists.txt 70c86d0 
>   utilities/collectionscanner/CollectionScanner.h f1139a2 
>   utilities/collectionscanner/CollectionScanner.cpp 033ea84 
>   utilities/collectionscanner/Directory.h PRE-CREATION 
>   utilities/collectionscanner/Directory.cpp PRE-CREATION 
>   utilities/collectionscanner/Playlist.h PRE-CREATION 
>   utilities/collectionscanner/Playlist.cpp PRE-CREATION 
>   utilities/collectionscanner/Track.h PRE-CREATION 
>   utilities/collectionscanner/Track.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/100092/diff
> 
> 
> Testing
> -------
> 
> Run auto test.
> Full scan and incremental scan with previous existing collection.
> Deleted and copied tracks to/from collection.
> 
> 
> Thanks,
> 
> Ralf
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/amarok-devel/attachments/20101030/517e2dbe/attachment-0001.htm 


More information about the Amarok-devel mailing list