--- /dev/null
+#include <QResizeEvent>
+#include <QHeaderView>
+#include <QSvgWidget>
+#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")
+{
+ verticalHeader()->setVisible(false);
+ horizontalHeader()->setVisible(false);
+
+ setSelectionMode(QAbstractItemView::SingleSelection);
+}
+
+RemoteTable::~RemoteTable()
+{
+}
+
+void RemoteTable::addItem(Remote *remote)
+{
+ if (remote == NULL) {
+ return;
+ }
+ int currentRow = rowCount();
+ remotes[currentRow] = remote;
+
+ QString key = remote->name();
+ QWidget *ratingWidget = NULL;
+ if (remote->rating() > 5) {
+ ratingWidget = new QSvgWidget(thumbsUp);
+ } else {
+ ratingWidget = new QSvgWidget(thumbsDown);
+ }
+ QTableWidgetItem *k = new QTableWidgetItem(key);
+ k->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ insertRow(currentRow);
+ setItem(currentRow, 0, k);
+ setCellWidget(currentRow, 1, ratingWidget);
+ verticalHeader()->resizeSection(currentRow, 60);
+}
+
+Remote *RemoteTable::selected()
+{
+ QModelIndexList selections = selectedIndexes();
+ if (selections.count() != 1) {
+ return NULL;
+ }
+
+ return remotes[selections[0].row()];
+}
+
+void RemoteTable::removeAllRows()
+{
+ clear();
+ setRowCount(0);
+ remotes.clear();
+}
+/*
+void RemoteTable::resizeEvent(QResizeEvent *e)
+{
+ setColumnWidth(0, (2 * e->size().width() / 3) - 10);
+ setColumnWidth(1, (e->size().width() / 3) - 10);
+}
+*/