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