Use skill queue, change background color according to queue status
authorjasu <jasu@skeletor.(none)>
Sat, 22 May 2010 20:15:34 +0000 (23:15 +0300)
committerjasu <jasu@skeletor.(none)>
Sat, 22 May 2010 20:15:34 +0000 (23:15 +0300)
src/evehomescreen.pro
src/widget.cpp
src/widget.h

index e2c8fd4..abf604a 100644 (file)
@@ -59,4 +59,3 @@ INSTALLS += target desktop iconxpm icon26 icon48 icon64
   icon64.path = $$DATADIR/icons/hicolor/64x64/apps
   icon64.files += ../data/64x64/$${TARGET}.png
 }
-
index 294a6ee..634c0d1 100644 (file)
@@ -54,7 +54,19 @@ QSize Widget::sizeHint() const
 void Widget::paintEvent(QPaintEvent *event)
 {
     QPainter p(this);
-    p.setBrush(QColor(0, 0, 0, 128));
+    QColor bgColor(0, 0, 0, 128);
+    if (m_training) {
+        // Queue empty -> red background
+        if (!m_training->training) {
+            bgColor.setRed(128);
+            bgColor.setAlpha(160);
+        } else if (m_training->currentTime.secsTo(m_training->lastTraining().endTime) < 60*60*24) {
+            // Queue not full -> yellow background
+            bgColor.setGreen(109);
+            bgColor.setRed(163);
+        }
+    }
+    p.setBrush(bgColor);
     p.setPen(Qt::NoPen);
     p.drawRoundedRect(rect(), 25, 25);
     p.setPen(Qt::white);
@@ -72,13 +84,14 @@ void Widget::paintEvent(QPaintEvent *event)
         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));
+                       QString("%1 %2").arg(m_skills->skillName(m_training->firstTraining().typeId))
+                                       .arg(m_training->firstTraining().level));
             QRect skillLoc(0,155,150,20);
-            p.drawText(skillLoc,Qt::AlignCenter,m_training->endTime.toString(Qt::SystemLocaleShortDate));
+            p.drawText(skillLoc,Qt::AlignCenter,m_training->firstTraining().endTime.toString(Qt::SystemLocaleShortDate));
         } else {
 
             QRect skillTitle(0,110,150,50);
+            p.setPen(Qt::red);
             p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
                        "No skill in training");
         }
@@ -143,8 +156,8 @@ void Widget::trainingLoaded()
 {
     qDebug() << "Training loaded";
     if (m_training != NULL && m_training->training) {
-        QDateTime limit = (m_training->cachedUntil > m_training->endTime) ?
-                          m_training->cachedUntil : m_training->endTime;
+        QDateTime limit = (m_training->cachedUntil > m_training->lastTraining().endTime) ?
+                          m_training->cachedUntil : m_training->lastTraining().endTime;
         qDebug() << "Next refresh:" << limit.toString(Qt::SystemLocaleShortDate);
         int interval = 1000 * (m_training->currentTime.secsTo(limit) + 15);
         //qDebug() << "Timer interval" << interval;
index 6897415..2002464 100644 (file)
@@ -19,6 +19,11 @@ class EveModel;
 class Widget : public QLabel
 {
     Q_OBJECT
+    enum TrainingState {
+        QueueEmpty, // <! No items in training queue
+        QueuePartial, // <! The queue still has room
+        QueueFull // <! The queue is full
+    };
 
 public:
     Widget(QWidget *parent = 0);