Check for existing skill training, detect if there is a skill in training
authorjasu <jasu@skeletor.(none)>
Mon, 10 May 2010 22:36:54 +0000 (01:36 +0300)
committerjasu <jasu@skeletor.(none)>
Mon, 10 May 2010 22:36:54 +0000 (01:36 +0300)
src/widget.cpp

index 88bf66f..93326dc 100644 (file)
@@ -36,6 +36,7 @@ Widget::Widget(QWidget *parent)
     if (c != NULL) {
         loadTraining();
     }
+    m_timer->setSingleShot(true);
     connect(m_timer,SIGNAL(timeout()),this,SLOT(loadTraining()));
 }
 
@@ -68,13 +69,18 @@ void Widget::paintEvent(QPaintEvent *event)
         }
         QRect nameLoc(0,10,150,20);
         p.drawText(nameLoc,Qt::AlignCenter,character->name);
-        if (m_training) {
+        if (m_training && m_training->training) {
             QRect skillTitle(0,110,150,50);
             p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
                        QString("%1 %2").arg(m_skills->skillName(m_training->typeId))
                                        .arg(m_training->level));
             QRect skillLoc(0,155,150,20);
             p.drawText(skillLoc,Qt::AlignCenter,m_training->endTime.toString(Qt::SystemLocaleShortDate));
+        } else {
+
+            QRect skillTitle(0,110,150,50);
+            p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
+                       "No skill in training");
         }
 
     }
@@ -107,11 +113,13 @@ void Widget::loadTraining()
     if (character != NULL) {
 
         qDebug() << "Fetch skills";
-        if (m_training == NULL)
+        if (m_training == NULL) {
             m_training = new EveSkillTraining(this);
+            connect(m_training,SIGNAL(finished()),this,SLOT(trainingLoaded()));
+        }
         m_training->setAccount(m_settings->model().data());
         m_training->setCharacter(character);
-        connect(m_training,SIGNAL(finished()),this,SLOT(trainingLoaded()));
+
         m_training->fetchInfo();
     }
 }
@@ -134,9 +142,13 @@ 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_timer->isActive()) {
+            m_timer->stop();
+        }
         m_timer->setInterval( interval );
         m_timer->start();
     }