Bugfix
[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         button->setSizePolicy(QSizePolicy::MinimumExpanding,
35                 QSizePolicy::MinimumExpanding);
36         layout->addWidget(button, i%2, i/2);
37     }
38
39     connect(buttons[0], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd0()));
40     connect(buttons[1], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd1()));
41     connect(buttons[2], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd2()));
42     connect(buttons[3], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd3()));
43     connect(buttons[4], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd4()));
44     connect(buttons[5], SIGNAL(clicked()), &irCtrl, SLOT(sendCmd5()));
45
46     this->setContentsMargins(0, 0, 0, 0);
47     layout->setContentsMargins(0, 0, 0, 0);
48     this->setLayout(layout);
49     this->setAttribute(Qt::WA_TranslucentBackground);
50     this->setAttribute(Qt::WA_OpaquePaintEvent);
51     resize();
52 }
53
54 MainWidget::~MainWidget()
55 {
56     delete settings;
57 }
58
59 void MainWidget::paintEvent(QPaintEvent*)
60 {
61     int bgAlpha = settings->value("bgAlpha", "192").toInt();
62     QPainter p(this);
63     p.fillRect(rect(), QColor(0, 0, 0, bgAlpha));
64     p.end();
65 }
66  
67 void MainWidget::showSettingsDialog()
68 {
69     SettingsDlg dlg;
70     dlg.exec();
71     update(); // Repaint required if bgAlpha value was changed
72     resize();
73 }
74
75 void MainWidget::resize()
76 {
77     int w = settings->value("width", "250").toInt();
78     int h = settings->value("height", "148").toInt();
79     if (w < 1)
80         w = 250;
81     if (h < 1)
82         h = 148;
83     QWidget::resize(w, h);
84 }
85