From 7377594787ff94a1c554ba1234deedbc1730d804 Mon Sep 17 00:00:00 2001 From: jasu Date: Sat, 22 May 2010 23:15:34 +0300 Subject: [PATCH] Use skill queue, change background color according to queue status --- src/evehomescreen.pro | 1 - src/widget.cpp | 25 +++++++++++++++++++------ src/widget.h | 5 +++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/evehomescreen.pro b/src/evehomescreen.pro index e2c8fd4..abf604a 100644 --- a/src/evehomescreen.pro +++ b/src/evehomescreen.pro @@ -59,4 +59,3 @@ INSTALLS += target desktop iconxpm icon26 icon48 icon64 icon64.path = $$DATADIR/icons/hicolor/64x64/apps icon64.files += ../data/64x64/$${TARGET}.png } - diff --git a/src/widget.cpp b/src/widget.cpp index 294a6ee..634c0d1 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -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; diff --git a/src/widget.h b/src/widget.h index 6897415..2002464 100644 --- a/src/widget.h +++ b/src/widget.h @@ -19,6 +19,11 @@ class EveModel; class Widget : public QLabel { Q_OBJECT + enum TrainingState { + QueueEmpty, //