Subsonic: Added more song metadata, and feedback when lazy-loading

This commit is contained in:
Alan Briolat 2012-01-10 21:23:40 +00:00
parent 577d13038a
commit ea08c583c4
1 changed files with 8 additions and 0 deletions

View File

@ -53,6 +53,10 @@ void SubsonicService::LazyPopulate(QStandardItem *item)
default: default:
break; break;
} }
item->setRowCount(0);
QStandardItem* loading = new QStandardItem(tr("Loading..."));
item->appendRow(loading);
} }
void SubsonicService::ReloadSettings() void SubsonicService::ReloadSettings()
@ -169,6 +173,7 @@ void SubsonicService::ReadTrack(QXmlStreamReader *reader, QStandardItem *parent)
QString id = reader->attributes().value("id").toString(); QString id = reader->attributes().value("id").toString();
song.set_title(reader->attributes().value("title").toString()); song.set_title(reader->attributes().value("title").toString());
song.set_album(reader->attributes().value("album").toString()); song.set_album(reader->attributes().value("album").toString());
song.set_track(reader->attributes().value("track").toString().toInt());
song.set_artist(reader->attributes().value("artist").toString()); song.set_artist(reader->attributes().value("artist").toString());
song.set_bitrate(reader->attributes().value("bitRate").toString().toInt()); song.set_bitrate(reader->attributes().value("bitRate").toString().toInt());
song.set_year(reader->attributes().value("year").toString().toInt()); song.set_year(reader->attributes().value("year").toString().toInt());
@ -180,6 +185,7 @@ void SubsonicService::ReadTrack(QXmlStreamReader *reader, QStandardItem *parent)
url.setScheme(url.scheme() == "https" ? "subsonics" : "subsonic"); url.setScheme(url.scheme() == "https" ? "subsonics" : "subsonic");
url.addQueryItem("id", id); url.addQueryItem("id", id);
song.set_url(url); song.set_url(url);
song.set_filesize(reader->attributes().value("size").toString().toInt());
QStandardItem *item = new QStandardItem(reader->attributes().value("title").toString()); QStandardItem *item = new QStandardItem(reader->attributes().value("title").toString());
item->setData(Type_Track, InternetModel::Role_Type); item->setData(Type_Track, InternetModel::Role_Type);
@ -251,6 +257,7 @@ void SubsonicService::onGetIndexesFinished()
reader.readNextStartElement(); reader.readNextStartElement();
Q_ASSERT(reader.name() == "indexes"); Q_ASSERT(reader.name() == "indexes");
root_->setRowCount(0);
while (reader.readNextStartElement()) while (reader.readNextStartElement())
{ {
if (reader.name() == "index") if (reader.name() == "index")
@ -286,6 +293,7 @@ void SubsonicService::onGetMusicDirectoryFinished()
reader.readNextStartElement(); reader.readNextStartElement();
Q_ASSERT(reader.name() == "directory"); Q_ASSERT(reader.name() == "directory");
QStandardItem *parent = item_lookup_.value(reader.attributes().value("id").toString()); QStandardItem *parent = item_lookup_.value(reader.attributes().value("id").toString());
parent->setRowCount(0);
while (reader.readNextStartElement()) while (reader.readNextStartElement())
{ {
if (reader.attributes().value("isDir") == "true") if (reader.attributes().value("isDir") == "true")