76a3ccfb4ad2c4f5c0f386b930429fbebe31d6e3
[irwi] / src / mainwidget.cpp
1 #include "mainwidget.h"
2 #include "engine.h"
3 #include "iengine.h"
4 #include "settingsdlg.h"
5
6 #include <QInputDialog>
7 #include <QPainter>
8 #include <QGridLayout>
9 #include <QToolButton>
10 #include <QSettings>
11
12 MainWidget::MainWidget (QWidget *parent)
13     : QWidget(parent)
14     , engine(new Engine())
15 {
16     engine->setRemote("1");
17
18     layout = new QGridLayout(this);
19
20     settings = new QSettings(this);
21
22     char iconNames[][128] = {
23         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel4.png",
24         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volumelevel1.png",
25         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_up.png",
26         "/usr/share/icons/hicolor/48x48/hildon/rss_reader_move_down.png",
27         "/usr/share/icons/hicolor/48x48/hildon/location_applet_on.png",
28         "/usr/share/icons/hicolor/48x48/hildon/statusarea_volume_mute.png"
29     };
30
31     for (int i = 0; i < BUTTON_COUNT; ++i)
32     {
33         QToolButton *button = new QToolButton(this);
34         button->setIcon(QIcon(QString(
35             settings->value(QString("buttonIcon") + QString::number(i),
36                 iconNames[i]).toString()))); 
37         buttons[i] = button;
38         button->setSizePolicy(QSizePolicy::MinimumExpanding,
39                 QSizePolicy::MinimumExpanding);
40         layout->addWidget(button, i%2, i/2);
41     }
42
43     connect(buttons[0], SIGNAL(clicked()),
44             this, SLOT(sendCmdClicked(IRemote::VOLUMEUP)));
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     showSettingsDialog();
55 }
56
57 MainWidget::~MainWidget()
58 {
59     delete settings;
60     delete engine;
61 }
62
63 void MainWidget::paintEvent(QPaintEvent*)
64 {
65     int bgAlpha = settings->value("bgAlpha", "192").toInt();
66     QPainter p(this);
67     p.fillRect(rect(), QColor(0, 0, 0, bgAlpha));
68     p.end();
69 }
70  
71 void MainWidget::showSettingsDialog()
72 {
73     SettingsDlg dlg(this, engine);
74     dlg.exec();
75     update(); // Repaint required if bgAlpha value was changed
76     resize();
77 }
78
79 void MainWidget::resize()
80 {
81     int w = settings->value("width", "250").toInt();
82     int h = settings->value("height", "148").toInt();
83     if (w < 1)
84         w = 250;
85     if (h < 1)
86         h = 148;
87     QWidget::resize(w, h);
88 }
89
90 void MainWidget::sendCmdClicked(IRemote::RemoteCmd cmd)
91 {
92     engine->remote()->sendCmd(cmd);
93
94 }
95
96