Added png thumb icons and code to support them
[irwi] / src / remotetable.cpp
index b27301e..c01d7d0 100644 (file)
@@ -1,14 +1,16 @@
 #include <QResizeEvent>
 #include <QHeaderView>
-#include <QSvgWidget>
+#include <QPixmap>
+#include <QLabel>
+#include <QWidget>
+#include <QSettings>
+
 #include "remotetable.h"
 #include "remote.h"
 
 RemoteTable::RemoteTable(QWidget *parent)
       // Always two columns: Remote name and rating.
-    : QTableWidget(0, 2, parent),
-    thumbsUp("/usr/share/irwi/symbols/symbol_thumbs_up.svg"),
-    thumbsDown("/usr/share/irwi/symbols/symbol_thumbs_down.svg")
+    : QTableWidget(0, 2, parent)
 {
     verticalHeader()->setVisible(false);
     horizontalHeader()->setVisible(false);
@@ -20,6 +22,39 @@ RemoteTable::~RemoteTable()
 {
 }
 
+QWidget *RemoteTable::selectRatingWidget(int rating)
+{
+    QSettings settings;
+    QLabel *label = new QLabel;
+    QPixmap pix;
+    if (rating < -45) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_5_thumbs.png");
+    } else if (rating < -25) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_4_thumbs.png");
+    } else if (rating < -12) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_3_thumbs.png");
+    } else if (rating < -5) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_2_thumbs.png");
+    } else if (rating < 0) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_1_thumbs.png");
+    } else if (rating == 0) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "0_thumbs.png");
+    } else if (rating < 5) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_1_thumbs.png");
+    } else if (rating < 12) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_2_thumbs.png");
+    } else if (rating < 25) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_3_thumbs.png");
+    } else if (rating < 45) {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_4_thumbs.png");
+    } else {
+        pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_5_thumbs.png");
+    }
+
+    label->setPixmap(pix);
+    return label;
+}
+
 void RemoteTable::addItem(Remote *remote)
 {
     if (remote == NULL) {
@@ -29,12 +64,7 @@ void RemoteTable::addItem(Remote *remote)
     remotes[currentRow] = remote;
 
     QString key = remote->name();
-    QWidget *ratingWidget = NULL;
-    if (remote->rating() > 5) {
-        ratingWidget = new QSvgWidget(thumbsUp);
-    } else {
-        ratingWidget = new QSvgWidget(thumbsDown);
-    }
+    QWidget *ratingWidget = selectRatingWidget(remote->rating());
     QTableWidgetItem *k = new QTableWidgetItem(key);
     k->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
     insertRow(currentRow);
@@ -59,10 +89,9 @@ void RemoteTable::removeAllRows()
     setRowCount(0);
     remotes.clear();
 }
-/*
+
 void RemoteTable::resizeEvent(QResizeEvent *e)
 {
-    setColumnWidth(0, (2 * e->size().width() / 3) - 10);
-    setColumnWidth(1, (e->size().width() / 3) - 10);
+    setColumnWidth(0, e->size().width() - 148);
+    setColumnWidth(1, 128);
 }
-*/