Add timer for refreshing training
authorjasu <jasu@skeletor.(none)>
Mon, 10 May 2010 21:31:37 +0000 (00:31 +0300)
committerjasu <jasu@skeletor.(none)>
Mon, 10 May 2010 21:31:37 +0000 (00:31 +0300)
src/widget.cpp
src/widget.h

index 7302d32..88bf66f 100644 (file)
@@ -10,6 +10,8 @@
 #include <QtDebug>
 #include <QNetworkConfigurationManager>
 #include <QSettings>
+#include <QTimer>
+#include <QDateTime>
 
 QTM_USE_NAMESPACE
 
@@ -19,7 +21,8 @@ Widget::Widget(QWidget *parent)
     m_training(NULL),
     m_net(new QNetworkConfigurationManager(this)),
     m_skills(new SkillTree(this)),
-    m_model(new EveModel)
+    m_model(new EveModel),
+    m_timer(new QTimer(this))
 {
     setAlignment(Qt::AlignCenter);
     setAttribute(Qt::WA_TranslucentBackground);
@@ -33,6 +36,7 @@ Widget::Widget(QWidget *parent)
     if (c != NULL) {
         loadTraining();
     }
+    connect(m_timer,SIGNAL(timeout()),this,SLOT(loadTraining()));
 }
 
 Widget::~Widget()
@@ -103,10 +107,11 @@ void Widget::loadTraining()
     if (character != NULL) {
 
         qDebug() << "Fetch skills";
-        m_training = new EveSkillTraining(this);
+        if (m_training == NULL)
+            m_training = new EveSkillTraining(this);
         m_training->setAccount(m_settings->model().data());
         m_training->setCharacter(character);
-        connect(m_training,SIGNAL(finished()),this,SLOT(update()));
+        connect(m_training,SIGNAL(finished()),this,SLOT(trainingLoaded()));
         m_training->fetchInfo();
     }
 }
@@ -126,3 +131,13 @@ void Widget::onlineStateChanged(bool online)
     }
 }
 
+void Widget::trainingLoaded()
+{
+    QDateTime now = QDateTime::currentDateTime();
+    if (m_training != NULL) {
+        int interval = 1000 * (now.secsTo(m_training->endTime) + 60);
+        qDebug() << "Timer interval" << interval;
+        m_timer->setInterval( interval );
+        m_timer->start();
+    }
+}
index 8f33c6d..6897415 100644 (file)
@@ -31,12 +31,14 @@ public slots:
     void skillReady();
     void onlineStateChanged(bool online);
     void loadTraining();
+    void trainingLoaded();
 private:
     EveSettingsDialog *m_settings;
     EveSkillTraining *m_training;
     QNetworkConfigurationManager *m_net;
     SkillTree *m_skills;
     QSharedPointer<EveModel> m_model;
+    QTimer *m_timer;
 };
 
 #endif // WIDGET_H