summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r--archivemodel.cpp31
1 files changed, 30 insertions, 1 deletions
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);