--- infoscreen/MainView.cpp 2010/06/22 20:29:40 873 +++ infoscreen/MainView.cpp 2010/06/24 13:01:35 891 @@ -10,12 +10,13 @@ #include #include -#include "MyWebView.h" +#include "webview.h" #include "clientsiderender.h" #include "pictureview.h" #include "videoview.h" - +#include "clockoverlay.h" #include "httpwrapper.h" +#include "screenmanager.h" @@ -28,6 +29,7 @@ xmlUrl = url + "?screen_id=" + screenid; qDebug() << "Starting XML mode"; qDebug() << "xmlUrl" << xmlUrl; + qDebug() << "xmlInterval" << xmlInterval/(60*1000); } if (currentMode == ModeSimpleWeb){ @@ -49,7 +51,7 @@ render = new ClientSideRender(this); - web = new MyWebView(this); + web = new WebView(this); picture = new PictureView(this); @@ -66,11 +68,23 @@ layout->setContentsMargins(0,0,0,0); setLayout(layout); + clockOverlay = new ClockOverlay(this); + clockOverlay->move(10,10); + clockOverlay->resize(150,75); + + + if (currentMode == ModeSimpleWeb) { web->setVisible(true); web->start(url,screenid); } + if (enableScreenManager) { + screenManager = new ScreenManager(screenManagerOn, screenManagerOff); + } else { + qDebug() << "ScreenManager is disabled"; + } + qDebug() << "Starting timer..."; timer = new QTimer(this); @@ -97,6 +111,15 @@ exit(1); } + enableScreenManager = settings->value("enablescreenmanager").toBool(); + if (enableScreenManager) { + screenManagerOn = settings->value("screenmanager_on").toTime(); + screenManagerOff = settings->value("screenmanager_off").toTime(); + } + + xmlInterval = settings->value("xmlinterval", 30).toInt(); + xmlInterval = (xmlInterval * 60 * 1000); //convert to milliseconds + if (currentMode == ModeSimpleWeb || currentMode == ModeXml) { url = settings->value("url").toString(); @@ -134,8 +157,9 @@ void MainView::onTimer() { - qDebug() << "onTimer()"; - screenManager.timerTick(); + if (enableScreenManager == true) { + screenManager->timerTick(); + } if (currentMode == ModeXml) { readXml(); @@ -144,6 +168,7 @@ if (currentMode == ModeXml || currentMode == ModeLocal) { switchScreens(); } + clockOverlay->timerTick(); } @@ -197,8 +222,8 @@ bool MainView::readXml() { - const int TIMEOUT = 30*60*1000; // 30 minutter - if ( lastXml.isNull() || lastXml.elapsed() > TIMEOUT) { + if ( lastXml.isNull() || lastXml.elapsed() > xmlInterval) { + qDebug() << "Reading XML"; bool res = xmlHandler.readXml( xmlUrl ); @@ -224,7 +249,6 @@ } if (lastScreenSwitch.isNull() || lastScreenSwitch.elapsed() > (currentItem.runtime*1000)) { - QTime now = QTime::currentTime(); if (lastScreenSwitch.isNull()) currentItemIdx = -1; @@ -271,8 +295,9 @@ } } else { - qDebug() << "no screen"; errorInfoScreen("Der er ingen information at vise"); + currentItem = ScreenItem(); + currentItem.runtime = 60; //switch screens again in 1 minute } lastScreenSwitch = QTime::currentTime(); @@ -281,11 +306,12 @@ void MainView::errorInfoScreen(QString msg) { - ensureVisible(web); - web->setHtml("\ - \ -

" + msg+ "

\ - "); + ensureVisible(web); + QString html(""); + html.append("

") + .append(msg) + .append("

"); + web->setHtml(html); } void MainView::ensureVisible(QWidget* widget)