1 #include <QResizeEvent>
8 #include "remotetable.h"
11 RemoteTable::RemoteTable(QWidget *parent)
12 // Always two columns: Remote name and rating.
13 : QTableWidget(0, 2, parent)
15 verticalHeader()->setVisible(false);
16 horizontalHeader()->setVisible(false);
18 setSelectionMode(QAbstractItemView::SingleSelection);
21 RemoteTable::~RemoteTable()
25 QWidget *RemoteTable::selectRatingWidget(int rating)
28 QLabel *label = new QLabel;
31 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_5_thumbs.png");
32 } else if (rating < -25) {
33 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_4_thumbs.png");
34 } else if (rating < -12) {
35 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_3_thumbs.png");
36 } else if (rating < -5) {
37 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_2_thumbs.png");
38 } else if (rating < 0) {
39 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "down_1_thumbs.png");
40 } else if (rating == 0) {
41 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "0_thumbs.png");
42 } else if (rating < 5) {
43 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_1_thumbs.png");
44 } else if (rating < 12) {
45 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_2_thumbs.png");
46 } else if (rating < 25) {
47 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_3_thumbs.png");
48 } else if (rating < 45) {
49 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_4_thumbs.png");
51 pix = QPixmap(settings.value("symbolPath", "/usr/share/irwi/symbols/").toString() + "up_5_thumbs.png");
54 label->setPixmap(pix);
58 void RemoteTable::addItem(Remote *remote)
63 int currentRow = rowCount();
64 remotes[currentRow] = remote;
66 QString key = remote->name();
67 QWidget *ratingWidget = selectRatingWidget(remote->rating());
68 QTableWidgetItem *k = new QTableWidgetItem(key);
69 k->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
70 insertRow(currentRow);
71 setItem(currentRow, 0, k);
72 setCellWidget(currentRow, 1, ratingWidget);
73 verticalHeader()->resizeSection(currentRow, 60);
76 Remote *RemoteTable::selected()
78 QModelIndexList selections = selectedIndexes();
79 if (selections.count() != 1) {
83 return remotes[selections[0].row()];
86 void RemoteTable::removeAllRows()
93 void RemoteTable::resizeEvent(QResizeEvent *e)
95 setColumnWidth(0, e->size().width() - 148);
96 setColumnWidth(1, 128);