Fixed background transparency bug.
[irwi] / src / mainwidget.cpp
1 #include "mainwidget.h"
2
3 #include <QInputDialog>
4 #include <QPainter>
5 #include <QGridLayout>
6 #include <QToolButton>
7 #include <QSettings>
8
9 #include "settingsdlg.h"
10
11 MainWidget::MainWidget (QWidget *parent)
12     : QWidget(parent)
13 {
14     layout = new QGridLayout(this);
15
16     settings = new QSettings(this);
17
18     char iconNames[][128] = {
19         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel4.png",
20         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel1.png",
21         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_up.png",
22         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_down.png",
23         "/usr/share/icons/hicolor/48x48/hildon/location_applet_on.png",
24         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volume_mute.png"
25     };
26
27     for (int i = 0; i < BUTTON_COUNT; ++i)
28     {
29         QToolButton *button = new QToolButton(this);
30         button->setIcon(QIcon(QString(
31             settings->value(QString("buttonIcon") + QString::number(i),
32                 iconNames[i]).toString()))); 
33         buttons[i] = button;
34         layout->addWidget(button, i%2, i/2);
35     }
36
37     connect(buttons[0], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd0()));
38     connect(buttons[1], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd1()));
39     connect(buttons[2], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd2()));
40     connect(buttons[3], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd3()));
41     connect(buttons[4], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd4()));
42     connect(buttons[5], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd5()));
43
44     this->setContentsMargins(0, 0, 0, 0);
45     layout->setContentsMargins(0, 0, 0, 0);
46     this->setLayout(layout);
47     this->setAttribute(Qt::WA_TranslucentBackground);
48     this->setAttribute(Qt::WA_OpaquePaintEvent);
49 }
50
51 MainWidget::~MainWidget()
52 {
53     delete settings;
54 }
55
56 void MainWidget::paintEvent(QPaintEvent*)
57 {
58     int bgAlpha = settings->value("bgAlpha", "192").toInt();
59     QPainter p(this);
60     p.setBrush(QColor(0, 0, 0, bgAlpha));
61     p.setPen(Qt::NoPen);
62     p.drawRect(rect());
63     p.end();
64 }
65  
66 void MainWidget::showSettingsDialog()
67 {
68     SettingsDlg dlg(this);
69     dlg.exec();
70     update(); // Repaint required if bgAlpha value was changed
71 }
72
73
74