-#include <QVBoxLayout>
+#include <QSettings>
+#include <QMouseEvent>
+#include <QApplication>
+#include <QProcess>
+#include <phonon/AudioOutput>
+#include <phonon/MediaObject>
#include "mainwidget.h"
+#include "backendkicker.h"
+#include "matchdaymodel.h"
+#include "settingsdialog.h"
MainWidget::MainWidget(QWidget *parent) :
- QWidget(parent)
+ QWidget(parent),
+ m_backend(new BackendKicker(this)),
+ m_datamodel(new MatchDayModel(this, m_backend)),
+ m_scoretbl(new ScoreTable(m_datamodel)),
+ m_settingsdlg(new SettingsDialog(this)),
+ m_settings(qApp->organizationName(), qApp->applicationName())
{
- QVBoxLayout layout;
+ QFont f;
+ QPalette palette;
+
+ // label
+ m_statuslbl.setText(tr("BuLi Scores!"));
+ f.setPixelSize(40);
+ palette.setColor(QPalette::Background, QColor(0, 0, 0, 127));
+ palette.setColor(QPalette::Foreground, QColor(255, 255, 255, 127));
+ m_statuslbl.show();
+ m_statuslbl.setPalette(palette);
+ m_statuslbl.setAttribute(Qt::WA_TransparentForMouseEvents);
+ m_statuslbl.setAutoFillBackground(true);
+ m_statuslbl.setBackgroundRole(QPalette::Background);
+ m_statuslbl.setAlignment(Qt::AlignCenter);
+
+ m_statuslbl.setFont(f);
+
+ // table
+ m_scoretbl->hide();
this->setAttribute(Qt::WA_TranslucentBackground);
- layout.addWidget(&m_scoretbl);
+ this->setLayout(&m_layout);
+ m_layout.addWidget(&m_statuslbl);
+ m_layout.addWidget(m_scoretbl);
- this->setLayout(&layout);
+ // sounds
+ Phonon::MediaObject *m_mediaObject = new Phonon::MediaObject(this);
+ Phonon::AudioOutput *m_audioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
+ Phonon::createPath(m_mediaObject, m_audioOutput);
+ connect(m_settingsdlg, SIGNAL(accepted()),
+ this, SLOT(update()));
- this->setAutoFillBackground(true);
+ connect(m_backend, SIGNAL(matchListChanged()),
+ this, SLOT(onBackendUpdateFinished()));
+
+ connect(m_backend, SIGNAL(updateStarted()),
+ this, SLOT(onBackendUpdateStarted()));
}
+
+// only needed for testing on desktop
+void MainWidget::mousePressEvent(QMouseEvent* event)
+{
+ if (event->button() == Qt::RightButton) {
+ this->showSettingsDialog();
+ }
+}
+
+void MainWidget::update(void)
+{
+ m_backend->selectLeague(m_settings.value("League", "1. Bundesliga").toString());
+ m_backend->update();
+}
+
+void MainWidget::onBackendUpdateStarted()
+{
+ m_statuslbl.setText(tr("Updating..."));
+ m_statuslbl.show();
+ m_scoretbl->hide();
+}
+
+void MainWidget::onBackendUpdateFinished()
+{
+ //mediaObject->play();
+
+ m_scoretbl->show();
+ m_statuslbl.hide();
+}
+
+void MainWidget::showSettingsDialog()
+{
+ m_settingsdlg->show();
+}
+