b27301e587aead4de59c25f45189239716b07814
[irwi] / src / remotetable.cpp
1 #include <QResizeEvent>
2 #include <QHeaderView>
3 #include <QSvgWidget>
4 #include "remotetable.h"
5 #include "remote.h"
6
7 RemoteTable::RemoteTable(QWidget *parent)
8       // Always two columns: Remote name and rating.
9     : QTableWidget(0, 2, parent),
10     thumbsUp("/usr/share/irwi/symbols/symbol_thumbs_up.svg"),
11     thumbsDown("/usr/share/irwi/symbols/symbol_thumbs_down.svg")
12 {
13     verticalHeader()->setVisible(false);
14     horizontalHeader()->setVisible(false);
15     
16     setSelectionMode(QAbstractItemView::SingleSelection);
17 }
18
19 RemoteTable::~RemoteTable()
20 {
21 }
22
23 void RemoteTable::addItem(Remote *remote)
24 {
25     if (remote == NULL) {
26         return;
27     }
28     int currentRow = rowCount(); 
29     remotes[currentRow] = remote;
30
31     QString key = remote->name();
32     QWidget *ratingWidget = NULL;
33     if (remote->rating() > 5) {
34         ratingWidget = new QSvgWidget(thumbsUp);
35     } else {
36         ratingWidget = new QSvgWidget(thumbsDown);
37     }
38     QTableWidgetItem *k = new QTableWidgetItem(key);
39     k->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
40     insertRow(currentRow);
41     setItem(currentRow, 0, k);
42     setCellWidget(currentRow, 1, ratingWidget);
43     verticalHeader()->resizeSection(currentRow, 60);
44 }
45
46 Remote *RemoteTable::selected()
47 {
48     QModelIndexList selections = selectedIndexes();
49     if (selections.count() != 1) {
50         return NULL;
51     }
52
53     return remotes[selections[0].row()];
54 }
55
56 void RemoteTable::removeAllRows()
57 {
58     clear();
59     setRowCount(0);
60     remotes.clear();
61 }
62 /*
63 void RemoteTable::resizeEvent(QResizeEvent *e)
64 {
65     setColumnWidth(0, (2 * e->size().width() / 3) - 10);
66     setColumnWidth(1, (e->size().width() / 3) - 10);
67 }
68 */