Connected IrCtrl to MainWidget
[irwi] / src / mainwidget.cpp
1 #include "mainwidget.h"
2 #include "settingsdlg.h"
3
4 #include <QInputDialog>
5 #include <QPainter>
6 #include <QGridLayout>
7 #include <QToolButton>
8 #include <QSettings>
9
10 MainWidget::MainWidget (QWidget *parent)
11     : QWidget(parent)
12 {
13     layout = new QGridLayout(this);
14
15     settings = new QSettings(this);
16
17     char iconNames[][128] = {
18         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel4.png",
19         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel1.png",
20         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_up.png",
21         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_down.png",
22         "/usr/share/icons/hicolor/48x48/hildon/location_applet_on.png",
23         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volume_mute.png"
24     };
25
26     for (int i = 0; i < BUTTON_COUNT; ++i) {
27         QToolButton *button = new QToolButton(this);
28         button->setIcon(QIcon(QString(
29             settings->value(QString("buttonIcon") + QString::number(i),
30                 iconNames[i]).toString()))); 
31         buttons[i] = button;
32         button->setSizePolicy(QSizePolicy::MinimumExpanding,
33                 QSizePolicy::MinimumExpanding);
34         layout->addWidget(button, i%2, i/2);
35     }
36
37     connect(buttons[0], SIGNAL(clicked()), this, SLOT(sendCmdVolUp()));
38     connect(buttons[1], SIGNAL(clicked()), this, SLOT(sendCmdVolDown()));
39     connect(buttons[2], SIGNAL(clicked()), this, SLOT(sendCmdChUp()));
40     connect(buttons[3], SIGNAL(clicked()), this, SLOT(sendCmdChDown()));
41     connect(buttons[4], SIGNAL(clicked()), this, SLOT(sendCmdPower()));
42     connect(buttons[5], SIGNAL(clicked()), this, SLOT(sendCmdMute()));
43
44     setContentsMargins(0, 0, 0, 0);
45     layout->setContentsMargins(0, 0, 0, 0);
46     setLayout(layout);
47     setAttribute(Qt::WA_TranslucentBackground);
48     setAttribute(Qt::WA_OpaquePaintEvent);
49     resize();
50 }
51
52 MainWidget::~MainWidget()
53 {
54     delete settings;
55 }
56
57 void MainWidget::sendCmdVolUp()
58 {
59     irCtrl.sendCmd(settings->value("volUpCmd", "VOLUP").toString());
60 }
61
62 void MainWidget::sendCmdVolDown()
63 {
64     irCtrl.sendCmd(settings->value("volDownCmd", "VOLDOWN").toString());
65 }
66
67 void MainWidget::sendCmdChUp()
68 {
69     irCtrl.sendCmd(settings->value("chUpCmd", "CHUP").toString());
70 }
71
72 void MainWidget::sendCmdChDown()
73 {
74     irCtrl.sendCmd(settings->value("chDownCmd", "CHDOWN").toString());
75 }
76
77 void MainWidget::sendCmdPower()
78 {
79     irCtrl.sendCmd(settings->value("powerCmd", "POWER").toString());
80 }
81
82 void MainWidget::sendCmdMute()
83 {
84     irCtrl.sendCmd(settings->value("muteCmd", "MUTE").toString());
85 }
86
87 void MainWidget::paintEvent(QPaintEvent*)
88 {
89     int bgAlpha = settings->value("bgAlpha", "192").toInt();
90     QPainter p(this);
91     p.fillRect(rect(), QColor(0, 0, 0, bgAlpha));
92     p.end();
93 }
94  
95 void MainWidget::showSettingsDialog()
96 {
97     SettingsDlg dlg(this);
98     dlg.exec();
99     update(); // Repaint required if bgAlpha value was changed
100     resize();
101 }
102
103 void MainWidget::resize()
104 {
105     int w = settings->value("width", "250").toInt();
106     int h = settings->value("height", "148").toInt();
107     if (w < 1)
108         w = 250;
109     if (h < 1)
110         h = 148;
111     QWidget::resize(w, h);
112 }
113
114