don't refresh if cache period hasn't passed
[evehomescreen] / src / widget.cpp
index 93326dc..294a6ee 100644 (file)
@@ -141,15 +141,18 @@ void Widget::onlineStateChanged(bool online)
 
 void Widget::trainingLoaded()
 {
-    QDateTime now = QDateTime::currentDateTime();
     qDebug() << "Training loaded";
-    if (m_training != NULL) {
-        int interval = 1000 * (now.secsTo(m_training->endTime) + 60);
-        qDebug() << "Timer interval" << interval;
+    if (m_training != NULL && m_training->training) {
+        QDateTime limit = (m_training->cachedUntil > m_training->endTime) ?
+                          m_training->cachedUntil : m_training->endTime;
+        qDebug() << "Next refresh:" << limit.toString(Qt::SystemLocaleShortDate);
+        int interval = 1000 * (m_training->currentTime.secsTo(limit) + 15);
+        //qDebug() << "Timer interval" << interval;
         if (m_timer->isActive()) {
             m_timer->stop();
         }
         m_timer->setInterval( interval );
         m_timer->start();
     }
+    update();
 }