de1281ec0d309fea33dbda9eedcc40bd63defa9b
[evehomescreen] / src / eveskilltraining.h
1 // Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
2 // This file is licenced under GPL, see COPYING
3 // for full licence information
4 #ifndef EVESKILLTRAINING_H
5 #define EVESKILLTRAINING_H
6
7 #include <QObject>
8 #include <QDateTime>
9 #include <QString>
10 #include <QXmlStreamReader>
11 #include <QNetworkAccessManager>
12
13 class EveCharacter;
14 class EveModel;
15
16 class TrainingEntry {
17 public:
18     QDateTime startTime;
19     QDateTime endTime;
20     QDateTime currentTime;
21     int typeId;
22     int startSkillpoints;
23     int destSkillpoints;
24     int level;
25 };
26
27 class EveSkillTraining : public QObject
28 {
29     Q_OBJECT
30 public:
31     explicit EveSkillTraining(QObject *parent = 0);
32     bool fromXml(QXmlStreamReader &xml);
33     void setCharacter(EveCharacter *character) { m_character = character; }
34     void setAccount(EveModel *aModel) { m_account = aModel; }
35     bool isTraining() { return !m_trainingQueue.isEmpty(); }
36     const TrainingEntry &firstTraining() const { return m_trainingQueue.first(); }
37     const TrainingEntry &lastTraining() const { return m_trainingQueue.last(); }
38 signals:
39     void finished();
40
41 public slots:
42     void fetchInfo();
43     void infoReady();
44 public:
45     bool training;
46     QDateTime cachedUntil;
47     QDateTime currentTime;
48 private:
49     EveCharacter *m_character;
50     EveModel *m_account;
51     QNetworkAccessManager m_mgr;
52     QNetworkReply *m_reply;
53     QList<TrainingEntry> m_trainingQueue;
54 };
55
56 #endif // EVESKILLTRAINING_H