3 #include <QApplication>
6 #include "mainwidget.h"
7 #include "backendkicker.h"
8 #include "matchdaymodel.h"
9 #include "settingsdialog.h"
11 MainWidget::MainWidget(QWidget *parent) :
13 m_mediaObject_tor(new Phonon::MediaObject(this)),
14 m_mediaObject_pfeife(new Phonon::MediaObject(this)),
15 m_audioOutput(new Phonon::AudioOutput(Phonon::CommunicationCategory, this)),
16 m_backend(new BackendKicker(this)),
17 m_datamodel(new MatchDayModel(this, m_backend)),
18 m_scoretbl(new ScoreTable(m_datamodel)),
19 m_settingsdlg(new SettingsDialog()),
20 m_settings(qApp->organizationName(), qApp->applicationName())
26 this->setAttribute(Qt::WA_TranslucentBackground);
30 m_statuslbl.setText(tr("BuLi Scores!"));
32 palette.setColor(QPalette::Background, QColor(0, 0, 0, 127));
33 palette.setColor(QPalette::Foreground, QColor(255, 255, 255, 127));
34 m_statuslbl.setPalette(palette);
35 m_statuslbl.setAutoFillBackground(true);
36 m_statuslbl.setBackgroundRole(QPalette::Background);
37 m_statuslbl.setAlignment(Qt::AlignCenter);
39 m_statuslbl.setGeometry(0, 0, 400, 200);
40 m_statuslbl.setFont(f);
43 m_layout.addWidget(&m_statuslbl);
44 m_layout.addWidget(m_scoretbl);
45 this->setLayout(&m_layout);
48 connect(m_settingsdlg, SIGNAL(accepted()),
49 this, SLOT(onSettingsAccepted()));
51 connect(m_backend, SIGNAL(updateFinished(int)),
52 this, SLOT(onBackendUpdateFinished(int)));
54 connect(m_backend, SIGNAL(updateStarted()),
55 this, SLOT(onBackendUpdateStarted()));
57 connect(m_backend, SIGNAL(matchAdded(Match*)),
58 this, SLOT(onMatchAdded(Match*)));
60 m_mediaObject_tor->setCurrentSource(Phonon::MediaSource("/usr/share/buliscores/tor.wav"));
61 m_mediaObject_pfeife->setCurrentSource(Phonon::MediaSource("/usr/share/buliscores/trillerpfeife.wav"));
63 //m_audioOutput->volume()
64 Phonon::createPath(m_mediaObject_tor, m_audioOutput);
65 Phonon::createPath(m_mediaObject_pfeife, m_audioOutput);
68 void MainWidget::mousePressEvent(QMouseEvent* event)
70 qDebug() << "widget tapped";
72 // only needed for testing on desktop
73 if (event->button() == Qt::RightButton) {
74 this->showSettingsDialog();
76 qDebug() << "current volume: " << m_audioOutput->volumeDecibel();
77 qDebug() << "MO state: " << m_mediaObject_pfeife->state();
78 m_mediaObject_pfeife->seek(0);
79 m_mediaObject_pfeife->play();
80 qDebug() << "MO state 2: " << m_mediaObject_pfeife->state();
84 void MainWidget::onSettingsAccepted()
86 m_backend->selectLeague(m_settings.value("League", "1. Bundesliga").toString());
89 void MainWidget::onBackendUpdateStarted()
94 void MainWidget::onBackendUpdateFinished(int)
96 if (m_statuslbl.isHidden() == false) {
104 void MainWidget::onMatchAdded(Match* match) {
105 connect(match, SIGNAL(scoreChanged(int,int,int,int)),
106 this, SLOT(onScoreChange()));
108 connect(match, SIGNAL(stateChanged(Match::MatchState)),
109 this, SLOT(onMatchStateChanged(Match::MatchState)));
110 qDebug() << "Match (" << match->homeTeam() << " vs "
111 << match->awayTeam() << ") : registering signals";
114 void MainWidget::onScoreChange()
116 if (m_settings.value("Sounds", false).toBool()) {
117 m_mediaObject_tor->seek(0);
118 m_mediaObject_tor->play();
119 qDebug() << "Playing sound: tor";
123 void MainWidget::onMatchStateChanged(Match::MatchState)
125 if (m_settings.value("Sounds", false).toBool()) {
126 m_mediaObject_pfeife->seek(0);
127 m_mediaObject_pfeife->play();
128 qDebug() << "Playing sound: trillerpfeife";
132 void MainWidget::showSettingsDialog()
134 m_settingsdlg->show();