From d43981754db00a2091e95a55cd6583bf1fbc724d Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 1 Jun 2013 09:42:15 +0200 Subject: Fix various display issues of ArchiveModel * Show childcount * Show subtitle or part no * Resize Widget properly --- archivemodel.cpp | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'archivemodel.cpp') diff --git a/archivemodel.cpp b/archivemodel.cpp index 3bae59b..3379d67 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -24,6 +24,36 @@ const QStringList ArchiveModel::availableOrders() const { return retval; } +QVariant ArchiveModel::data(const QModelIndex &index, int role) const{ + SmTreeItem *item = itemAt(index); + if(role == Qt::DisplayRole && index.column() == 0){ + QString retval; + int part = item->data(SeriesPart).toInt(); + int childCount = item->data(Count).toInt(); + int nodeType = item->data(Type).toInt(); + if(nodeType == SeriesNode){ + retval = QString("%1 (%2)").arg(item->data(Name).toString()).arg(QString::number(childCount)); + }else if(nodeType == SeriesPartNode){ + if(part > 0){ + retval = QString("%1 %2").arg(item->data(Name).toString()).arg(QString::number(part)); + }else{ + QString subtitle = item->data(Subtitle).toString(); + if(!subtitle.isEmpty()){ + retval = QString("%1 - %2").arg(item->data(Name).toString()).arg(item->data(Subtitle).toString()); + } + } + } + return retval; + } + if(role == Qt::ForegroundRole){ + bool favorite = item->data(Favorite).toBool(); + if(favorite){ + return QColor(Qt::darkGreen); + } + } + return SmTreeModel::data(index, role); +} + void ArchiveModel::setOrder(int order) { switch (order) { case SeriesName: @@ -42,7 +72,6 @@ void ArchiveModel::setOrder(int order) { void ArchiveModel::populateBySeriesName() { SmTreeItem *rootItem = new SmTreeItem(NumFields); - //fetchChildren(rootItem); fetchSeries(QVariant(), rootItem); fetchParts(rootItem); setRoot(rootItem); -- cgit v1.2.3-70-g09d2