Review Request: Collectionscanner patch
Mark Kretschmann
kretschmann at kde.org
Wed Oct 20 15:10:52 CEST 2010
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/100092/#review145
-----------------------------------------------------------
I've hit a crash, at approximately 70% of scanning:
QObject::setParent: Cannot set parent, new parent is in a different thread
QObject::setParent: Cannot set parent, new parent is in a different thread
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffad37f710 (LWP 11264)]
buffered_vfprintf (s=0x7ffff5105860, format=0x7ffff57f5f8b "%s\n", args=0x7fffacb82260) at vfprintf.c:2254
2254 vfprintf.c: No such file or directory.
in vfprintf.c
(gdb) thread apply all bt
Thread 22 (Thread 0x7fffaa168710 (LWP 11276)):
#0 0x00007ffff4e672b3 in select () at ../sysdeps/unix/syscall-template.S:82
#1 0x00007ffff576be8d in QProcessManager::run (this=0x7ffff5ac1f40) at io/qprocess_unix.cpp:245
#2 0x00007ffff569c27e in QThreadPrivate::start (arg=0x7ffff5ac1f40) at thread/qthread_unix.cpp:266
#3 0x00007ffff2965971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#4 0x00007ffff4e6e91d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5 0x0000000000000000 in ?? ()
Thread 21 (Thread 0x7fffaa969710 (LWP 11275)):
#0 0x00007ffff4e621d3 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0x00007fffee33e009 in ?? () from /lib/libglib-2.0.so.0
#2 0x00007fffee33e45c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3 0x00007ffff57bc193 in QEventDispatcherGlib::processEvents (this=0x2403820, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#4 0x00007ffff578ea02 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#5 0x00007ffff578edec in QEventLoop::exec (this=0x7fffaa968d90, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#6 0x00007ffff56992fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7 0x00007ffff576e5f8 in QInotifyFileSystemWatcherEngine::run (this=0x24013c0) at io/qfilesystemwatcher_inotify.cpp:248
#8 0x00007ffff569c27e in QThreadPrivate::start (arg=0x24013c0) at thread/qthread_unix.cpp:266
#9 0x00007ffff2965971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#10 0x00007ffff4e6e91d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()
Thread 20 (Thread 0x7fffab16a710 (LWP 11274)):
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ffff569ce3b in wait (this=<value optimized out>, mutex=0x2400088, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2 QWaitCondition::wait (this=<value optimized out>, mutex=0x2400088, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3 0x00007ffff667910e in QFileInfoGatherer::run (this=<value optimized out>) at dialogs/qfileinfogatherer.cpp:214
#4 0x00007ffff569c27e in QThreadPrivate::start (arg=0x2400078) at thread/qthread_unix.cpp:266
#5 0x00007ffff2965971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6 0x00007ffff4e6e91d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()
Thread 19 (Thread 0x7fffac37d710 (LWP 11272)):
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1 0x00007ffff569cda2 in wait (this=<value optimized out>, mutex=0x20cb920, time=30000) at thread/qwaitcondition_unix.cpp:86
#2 QWaitCondition::wait (this=<value optimized out>, mutex=0x20cb920, time=30000) at thread/qwaitcondition_unix.cpp:160
#3 0x00007ffff5691da2 in QThreadPoolThread::run (this=0x59f950) at concurrent/qthreadpool.cpp:140
#4 0x00007ffff569c27e in QThreadPrivate::start (arg=0x59f950) at thread/qthread_unix.cpp:266
#5 0x00007ffff2965971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6 0x00007ffff4e6e91d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()
Thread 18 (Thread 0x7fffacb7e710 (LWP 11271)):
#0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1 0x00007ffff569cda2 in wait (this=<value optimized out>, mutex=0x20cb920, time=30000) at thread/qwaitcondition_unix.cpp:86
#2 QWaitCondition::wait (this=<value optimized out>, mutex=0x20cb920, time=30000) at thread/qwaitcondition_unix.cpp:160
#3 0x00007ffff5691da2 in QThreadPoolThread::run (this=0x1c6d1b0) at concurrent/qthreadpool.cpp:140
#4 0x00007ffff569c27e in QThreadPrivate::start (arg=0x1c6d1b0) at thread/qthread_unix.cpp:266
#5 0x00007ffff2965971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#6 0x00007ffff4e6e91d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7 0x0000000000000000 in ?? ()
Thread 17 (Thread 0x7fffad37f710 (LWP 11264)):
#0 buffered_vfprintf (s=0x7ffff5105860, format=0x7ffff57f5f8b "%s\n", args=0x7fffacb82260) at vfprintf.c:2254
#1 0x00007ffff4dcd84e in _IO_vfprintf_internal (s=0x7ffff5105860, format=0x7ffff57f5f8b "%s\n", ap=0x7fffacb82260) at vfprintf.c:1306
#2 0x00007ffff4e85dbb in ___fprintf_chk (fp=0x7ffff5105860, flag=1, format=0x7ffff57f5f8b "%s\n") at fprintf_chk.c:37
#3 0x00007ffff5693850 in fprintf (msgType=QtWarningMsg, buf=<value optimized out>) at /usr/include/bits/stdio2.h:99
#4 qt_message_output (msgType=QtWarningMsg, buf=<value optimized out>) at global/qglobal.cpp:2225
#5 0x00007ffff5693a42 in qt_message(QtMsgType, const char *, typedef __va_list_tag __va_list_tag *) (msgType=QtWarningMsg,
msg=0x7ffff5851278 "QObject::setParent: Cannot set parent, new parent is in a different thread", ap=0x7fffacb82410) at global/qglobal.cpp:2305
#6 0x00007ffff5693d75 in qWarning (msg=0x7ffff57f5f8b "%s\n") at global/qglobal.cpp:2387
#7 0x00007ffff57a323a in QObjectPrivate::setParent_helper (this=0x28e4220, o=0xe52a80) at kernel/qobject.cpp:1992
#8 0x00007ffff61eb179 in QWidgetPrivate::setParent_sys (this=0x28e4220, parent=0xe52a80, f=<value optimized out>) at kernel/qwidget_x11.cpp:1175
#9 0x00007ffff61a5192 in QWidget::setParent (this=0x28e36c0, parent=0xe52a80, f=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qwidget.cpp:9980
#10 0x00007ffff61a5872 in QWidget::setParent (this=0x7fffacb81a70, parent=0x7ffff57f5f8b) at kernel/qwidget.cpp:9937
#11 0x00007ffff6179715 in QLayout::addChildWidget (this=<value optimized out>, w=0x28e36c0) at kernel/qlayout.cpp:1016
---Type <return> to continue, or q <return> to quit---
#12 0x00007ffff6157df7 in QBoxLayout::insertWidget (this=0x7fffacb81a70, index=-1, widget=0x28e36c0, stretch=0, alignment=<value optimized out>) at kernel/qboxlayout.cpp:1032
#13 0x00007ffff615803b in QBoxLayout::addWidget (this=0x7fffacb81a70, widget=<value optimized out>, stretch=<value optimized out>, alignment=<value optimized out>)
at kernel/qboxlayout.cpp:1112
#14 0x00007ffff7a840db in KHBox::childEvent (this=0xe52a80, event=0x7fffacb83370) at ../../kdeui/widgets/khbox.cpp:61
#15 0x00007ffff57a18e1 in QObject::event (this=0xe52a80, e=0x7ffff57f5f8b) at kernel/qobject.cpp:1198
#16 0x00007ffff619b6df in QWidget::event (this=0xe52a80, event=0x7fffacb83370) at kernel/qwidget.cpp:8646
#17 0x00007ffff65675e6 in QFrame::event (this=0xe52a80, e=0x7fffacb83370) at widgets/qframe.cpp:557
#18 0x00007ffff6145fdc in QApplicationPrivate::notify_helper (this=0x58b2c0, receiver=0xe52a80, e=0x7fffacb83370) at kernel/qapplication.cpp:4396
#19 0x00007ffff614baed in QApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, e=0x7fffacb83370) at kernel/qapplication.cpp:4277
#20 0x00007ffff79be4d6 in KApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb83370) at ../../kdeui/kernel/kapplication.cpp:310
#21 0x00007ffff578fcdc in QCoreApplication::notifyInternal (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb83370) at kernel/qcoreapplication.cpp:732
#22 0x00007ffff61a56ed in sendEvent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#23 QWidget::setParent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at kernel/qwidget.cpp:10044
#24 0x00007ffff61a5872 in QWidget::setParent (this=0x7fffacb81a70, parent=0x7ffff57f5f8b) at kernel/qwidget.cpp:9937
#25 0x00007ffff6179715 in QLayout::addChildWidget (this=<value optimized out>, w=0x28e36c0) at kernel/qlayout.cpp:1016
#26 0x00007ffff6157df7 in QBoxLayout::insertWidget (this=0x7fffacb81a70, index=-1, widget=0x28e36c0, stretch=0, alignment=<value optimized out>) at kernel/qboxlayout.cpp:1032
#27 0x00007ffff615803b in QBoxLayout::addWidget (this=0x7fffacb81a70, widget=<value optimized out>, stretch=<value optimized out>, alignment=<value optimized out>)
at kernel/qboxlayout.cpp:1112
#28 0x00007ffff7a840db in KHBox::childEvent (this=0xe52a80, event=0x7fffacb83ff0) at ../../kdeui/widgets/khbox.cpp:61
#29 0x00007ffff57a18e1 in QObject::event (this=0xe52a80, e=0x7ffff57f5f8b) at kernel/qobject.cpp:1198
#30 0x00007ffff619b6df in QWidget::event (this=0xe52a80, event=0x7fffacb83ff0) at kernel/qwidget.cpp:8646
#31 0x00007ffff65675e6 in QFrame::event (this=0xe52a80, e=0x7fffacb83ff0) at widgets/qframe.cpp:557
#32 0x00007ffff6145fdc in QApplicationPrivate::notify_helper (this=0x58b2c0, receiver=0xe52a80, e=0x7fffacb83ff0) at kernel/qapplication.cpp:4396
#33 0x00007ffff614baed in QApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, e=0x7fffacb83ff0) at kernel/qapplication.cpp:4277
#34 0x00007ffff79be4d6 in KApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb83ff0) at ../../kdeui/kernel/kapplication.cpp:310
#35 0x00007ffff578fcdc in QCoreApplication::notifyInternal (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb83ff0) at kernel/qcoreapplication.cpp:732
#36 0x00007ffff61a56ed in sendEvent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#37 QWidget::setParent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at kernel/qwidget.cpp:10044
#38 0x00007ffff61a5872 in QWidget::setParent (this=0x7fffacb81a70, parent=0x7ffff57f5f8b) at kernel/qwidget.cpp:9937
#39 0x00007ffff6179715 in QLayout::addChildWidget (this=<value optimized out>, w=0x28e36c0) at kernel/qlayout.cpp:1016
#40 0x00007ffff6157df7 in QBoxLayout::insertWidget (this=0x7fffacb81a70, index=-1, widget=0x28e36c0, stretch=0, alignment=<value optimized out>) at kernel/qboxlayout.cpp:1032
#41 0x00007ffff615803b in QBoxLayout::addWidget (this=0x7fffacb81a70, widget=<value optimized out>, stretch=<value optimized out>, alignment=<value optimized out>)
at kernel/qboxlayout.cpp:1112
#42 0x00007ffff7a840db in KHBox::childEvent (this=0xe52a80, event=0x7fffacb84c70) at ../../kdeui/widgets/khbox.cpp:61
#43 0x00007ffff57a18e1 in QObject::event (this=0xe52a80, e=0x7ffff57f5f8b) at kernel/qobject.cpp:1198
#44 0x00007ffff619b6df in QWidget::event (this=0xe52a80, event=0x7fffacb84c70) at kernel/qwidget.cpp:8646
#45 0x00007ffff65675e6 in QFrame::event (this=0xe52a80, e=0x7fffacb84c70) at widgets/qframe.cpp:557
#46 0x00007ffff6145fdc in QApplicationPrivate::notify_helper (this=0x58b2c0, receiver=0xe52a80, e=0x7fffacb84c70) at kernel/qapplication.cpp:4396
#47 0x00007ffff614baed in QApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, e=0x7fffacb84c70) at kernel/qapplication.cpp:4277
#48 0x00007ffff79be4d6 in KApplication::notify (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb84c70) at ../../kdeui/kernel/kapplication.cpp:310
#49 0x00007ffff578fcdc in QCoreApplication::notifyInternal (this=0x7fffffffc1c0, receiver=0xe52a80, event=0x7fffacb84c70) at kernel/qcoreapplication.cpp:732
#50 0x00007ffff61a56ed in sendEvent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#51 QWidget::setParent (this=0x28e36c0, parent=0xe52a80, f=<value optimized out>) at kernel/qwidget.cpp:10044
#52 0x00007ffff61a5872 in QWidget::setParent (this=0x7fffacb81a70, parent=0x7ffff57f5f8b) at kernel/qwidget.cpp:9937
#53 0x00007ffff6179715 in QLayout::addChildWidget (this=<value optimized out>, w=0x28e36c0) at kernel/qlayout.cpp:1016
#54 0x00007ffff6157df7 in QBoxLayout::insertWidget (this=0x7fffacb81a70, index=-1, widget=0x28e36c0, stretch=0, alignment=<value optimized out>) at kernel/qboxlayout.cpp:1032
#55 0x00007ffff615803b in QBoxLayout::addWidget (this=0x7fffacb81a70, widget=<value optimized out>, stretch=<value optimized out>, alignment=<value optimized out>)
at kernel/qboxlayout.cpp:1112
- Mark
On 2010-10-20 12:29:45, Ralf Engels wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100092/
> -----------------------------------------------------------
>
> (Updated 2010-10-20 12:29:45)
>
>
> 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 316168d
> src/TrayIcon.cpp ce82029
> src/amarokurls/NavigationUrlGenerator.cpp c330de8
> src/browsers/CollectionTreeItem.h 39a4c3d
> src/browsers/CollectionTreeItem.cpp b390900
> src/browsers/CollectionTreeItemModelBase.cpp c25549b
> src/browsers/CollectionTreeView.cpp ed34beb
> src/context/applets/currenttrack/CurrentTrack.cpp 90ae290
> src/context/applets/videoclip/VideoclipApplet.cpp 714a3f6
> src/context/widgets/TextScrollingWidget.h 0dbc820
> src/context/widgets/TextScrollingWidget.cpp 2e709fb
> 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 9434b03
> src/core-impl/collections/sqlcollection/SqlMeta.cpp 97969be
> 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 8904fb2
> 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/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 b0220cb
> src/playlist/proxymodels/SortAlgorithms.cpp 9f8c563
> src/playlist/view/listview/PrettyItemDelegate.cpp 183f9cd
> src/playlist/view/listview/PrettyListView.h cdc07c8
> src/playlist/view/tooltips/AmarokToolTip.h 1c9b648
> src/playlist/view/tooltips/ToolTipManager.h 0098e8b
> 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/20101020/36fe7931/attachment-0001.htm
More information about the Amarok-devel
mailing list