From f6baf9cb12014b92f6ac7bc51251c274de581f9a Mon Sep 17 00:00:00 2001 From: Tobias Rundstrom Date: Fri, 25 Aug 2006 13:24:39 -0400 Subject: [PATCH] Make DAAP browsing pretty --- BrowseModel.cpp | 33 ++++++++++++++++++++++++++++----- BrowseModel.h | 2 ++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/BrowseModel.cpp b/BrowseModel.cpp index 6e97023..7fdaff8 100644 --- a/BrowseModel.cpp +++ b/BrowseModel.cpp @@ -7,6 +7,16 @@ #include +bool +BrowseModelItem::itemCompare (BrowseModelItem *s1, BrowseModelItem *s2) +{ + if (QString::localeAwareCompare (s1->m_vals["name"].toLower (), + s2->m_vals["name"].toLower ()) < 0) { + return true; + } + return false; +} + BrowseModel::BrowseModel (QWidget *parent) : QAbstractTableModel () { m_columns.append ("Name"); @@ -85,9 +95,20 @@ BrowseModel::list_cb (const Xmms::List< Xmms::Dict > &res) if (d.contains ("name")) { name = QString::fromStdString (d.get ("name")); } else { - if (d.contains ("title") && d.contains ("artist")) { - name += QString::fromStdString (d.get ("artist")); - name += " - "; + if (d.contains ("title")) { + if (d.contains ("artist")) { + name += QString::fromStdString (d.get ("artist")); + name += " - "; + } + if (d.contains ("album")) { + name += QString::fromStdString (d.get ("album")); + name += " - "; + } + if (d.contains ("tracknr")) { + name += QString::number (d.get + ("tracknr")).rightJustified(2, '0'); + name += " - "; + } name += QString::fromStdString (d.get ("title")); } else { const char *tmp; @@ -107,12 +128,14 @@ BrowseModel::list_cb (const Xmms::List< Xmms::Dict > &res) m_list.append (new BrowseModelItem (path, name, isdir)); } + qSort (m_list.begin (), m_list.end (), BrowseModelItem::itemCompare); + + qDebug ("%s", qPrintable(m_list.at(0)->data("name"))); + reset (); emit dirChanged (m_current_dir); - qDebug ("done"); - return true; } diff --git a/BrowseModel.h b/BrowseModel.h index 903b203..417cbbf 100644 --- a/BrowseModel.h +++ b/BrowseModel.h @@ -28,6 +28,8 @@ class BrowseModelItem bool isDir () { return m_isdir; }; + + static bool itemCompare (BrowseModelItem *s1, BrowseModelItem *s2); protected: QHash m_vals;