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