*
[groove] / playlist.cpp
index f43a19f..f6dddcd 100644 (file)
@@ -9,19 +9,47 @@ playlist::playlist(QObject *parent) :
    this->currentplayingitem = -1;
    this->currentSkeyItem = -1;
    this->reply = NULL;
+   invalid = new QVariant();
+   icon = new QVariant(QIcon(":/groove/icons/general_forward.png"));
 }
 
 //Implemented model class information
 QVariant playlist::data(const QModelIndex &index, int role) const
 {
-    QVariant dat;
+
     playlist* play = (playlist *)index.model();
+    QVariant dat = *play->invalid;
     if(play->existAt(index.row()))
     {
         if (!index.isValid())
-            return QVariant();
+            return *play->invalid;
         if (role == Qt::TextAlignmentRole) {
             return int(Qt::AlignLeft | Qt::AlignVCenter);
+        } else if (role == Qt::DecorationRole) {
+            switch(index.column())
+            {
+            case sName:
+                if(play->currentplaying()==index.row())
+                    //dat = *play->icon;
+                    dat = *play->invalid;
+                else
+                    dat = *play->invalid;
+                break;
+            default:
+                dat = *play->invalid;
+            }
+        } else if (role == Qt::ForegroundRole) {
+            switch(index.column())
+            {
+            case sName:
+                if(!play->pList->at(index.row())->downloaded)
+                    dat = QVariant(Qt::gray);
+                else
+                    dat = *play->invalid;
+                break;
+            default:
+                dat = *play->invalid;
+            }
         } else if (role == Qt::DisplayRole) {
             switch(index.column())
             {
@@ -47,13 +75,13 @@ QVariant playlist::data(const QModelIndex &index, int role) const
                 dat = QVariant(play->pList->at(index.row())->played);
                 break;
             default:
-                dat = QVariant();
+                dat = *play->invalid;
             }
         } else
-            dat = QVariant();
+            dat = *play->invalid;
     }
     else
-        dat = QVariant();
+        dat = *play->invalid;
     return dat;
 }
 int playlist::rowCount(const QModelIndex &) const