Becoming involved in Amarok development

Maximilian Kossick maximilian.kossick at googlemail.com
Tue Feb 26 21:21:19 CET 2008


Hi,
great to hear that you want to help with the development of Amarok 2.
To answer your question, IRC is usually the best place to get in touch
with other developers. Unfortunately, most developers were at FOSDEM
this weekend, so just a handful of us were actually online. Reminds me
of when I started working on Amarok and everybody was at K3M :) In
general, this list or IRC are both good places to ask for help and
advice. IRC tends to work better because you get help faster (although
we usually answer e-mails on this mailing list faster than this, but
it looks like yours got stuck in the moderation queue...FOSDEM is to
blame i guess)

Your patch looks good. I think that you have to set the querymaker's
AlbumQueryMode to OnlyCompilations in CollectionTreeView if
tmp->data() is null. Can you test that, and commit it if it works? In
a few parts of Amarok we use a lot of magic to make it work, and you
stumbled on one of them (in my opinion the other one is the playlist
drawing code, so be warned if you want to work on it:) ). Originally,
a CollectionTreeItem had either a collection or a data item. Then I
added support for compilations, and had to make it work somehow. It
worked fine back then, but it looks like adding adding the track
information dialog in the collection browser exposed a few bugs.

Max


On Mon, Feb 25, 2008 at 8:36 PM, Aneurin Price <aneurin.price at gmail.com> wrote:
> 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;
>  _______________________________________________
>  Amarok-devel mailing list
>  Amarok-devel at kde.org
>  https://mail.kde.org/mailman/listinfo/amarok-devel
>


More information about the Amarok-devel mailing list