Becoming involved in Amarok development

Aneurin Price aneurin.price at gmail.com
Mon Feb 25 20:36:31 CET 2008


Hello all,

I asked something like this in #amarok this weekend, but I guess
everybody was at FOSDEM so I figured here might be a more appropriate
place.
Really I'm just wondering where the development of Amarok is
principally discussed, and where would be the best place to ask
questions about the design and implementation.

The motivation for this is that I spent a while this weekend looking
into some crashes with Amarok 2 related to its handling of 'Various
Artists' entries. I've sort-of fixed one of them, but really only the
symptom as I don't really know enough about the related code to
understand how it's supposed to work. In this case, some of the
existing code relating to a CollectionTreeItem seems to assume that
exactly one of m_parentCollection and m_data will be null at any time,
but in the case of a various artist node, they both are. Without a
better understanding of how a CollectionTreeItem is supposed to
behave, I can't tell what the correct fix should be, and I'm finding
it slow going to work out intended behaviour of such a large system as
Amarok by reading the code. Anyway, trivial patch included at the end
of this mail so you can see what bits of the code I'm talking about.

In general, there's very little documentation on how to get involved
in Amarok development, which is something I'd like to do if I can find
the time, so I'd be grateful for any advice - is this the right place
to ask about difficulties encountered in understanding the code, or
should I have another go on IRC?

Apologies if this seemed slightly incoherent - I'm extremely tired but
I wanted to get something out before it all drained out of my head :P.

Thanks,
Nye


Index: src/collectionbrowser/CollectionTreeView.cpp
===================================================================
--- src/collectionbrowser/CollectionTreeView.cpp        (revision 778708)
+++ src/collectionbrowser/CollectionTreeView.cpp        (working copy)
@@ -350,7 +350,7 @@
         CollectionTreeItem *tmp = item;
         while( tmp->isDataItem() )
         {
-            qm->addMatch( tmp->data() );
+            if ( tmp->data() ) qm->addMatch( tmp->data() );
             tmp = tmp->parent();
         }
         m_treeModel->addFilters( qm );
Index: src/collectionbrowser/CollectionTreeItem.cpp
===================================================================
--- src/collectionbrowser/CollectionTreeItem.cpp        (revision 778708)
+++ src/collectionbrowser/CollectionTreeItem.cpp        (working copy)
@@ -153,7 +153,7 @@

 QueryMaker*
 CollectionTreeItem::queryMaker() const {
-    if ( m_data.isNull() )
+    if ( m_parentCollection )
         return m_parentCollection->queryMaker();
     else {
         CollectionTreeItem *tmp = m_parent;


More information about the Amarok-devel mailing list