1 // Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
2 // This file is licenced under GPL, see COPYING
3 // for full licence information
6 #include "eveaccount.h"
7 #include "evesettingsdialog.h"
8 #include "eveskilltraining.h"
11 #include <QNetworkConfigurationManager>
16 Widget::Widget(QWidget *parent)
18 m_settings(new EveSettingsDialog(this)),
20 m_net(new QNetworkConfigurationManager(this)),
21 m_skills(new SkillTree(this)),
24 setAlignment(Qt::AlignCenter);
25 setAttribute(Qt::WA_TranslucentBackground);
26 setGeometry(0,0,150,180);
27 connect(m_net,SIGNAL(onlineStateChanged(bool)),this,SLOT(onlineStateChanged(bool)));
28 connect(m_skills,SIGNAL(skillsLoaded()),this,SLOT(update()));
29 m_skills->loadSkills();
30 m_model->loadSettings();
31 m_settings->setModel(m_model);
32 EveCharacter *c = m_model->selectedCharacter();
44 QSize Widget::sizeHint() const
46 return 2 * QLabel::sizeHint();
49 void Widget::paintEvent(QPaintEvent *event)
52 p.setBrush(QColor(0, 0, 0, 128));
54 p.drawRoundedRect(rect(), 25, 25);
56 QFont dFont(p.font());
57 dFont.setPixelSize(15);
59 EveCharacter *character = m_model->selectedCharacter();
60 if (character != NULL) {
61 QPoint iconLoc((150-64)/2,(150-64)/2);
62 if (character->characterIcon) {
63 p.drawPixmap(iconLoc,*(character->characterIcon));
65 QRect nameLoc(0,10,150,20);
66 p.drawText(nameLoc,Qt::AlignCenter,character->name);
68 QRect skillTitle(0,110,150,50);
69 p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
70 QString("%1 %2").arg(m_skills->skillName(m_training->typeId))
71 .arg(m_training->level));
72 QRect skillLoc(0,155,150,20);
73 p.drawText(skillLoc,Qt::AlignCenter,m_training->endTime.toString(Qt::SystemLocaleShortDate));
79 QLabel::paintEvent(event);
82 void Widget::showSettingsDialog()
85 int result = m_settings->exec();
86 if (result == QDialog::Accepted) {
88 m_model->setSelected(m_settings->selectedCharacter());
89 EveCharacter *character = m_model->selectedCharacter();
90 if (character != NULL) {
91 qDebug() << "Got character " << character->name;
92 connect(character,SIGNAL(imageLoaded()),this,SLOT(skillReady()));
93 character->fetchImage();
100 void Widget::loadTraining()
102 EveCharacter *character = m_model->selectedCharacter();
103 if (character != NULL) {
105 qDebug() << "Fetch skills";
106 m_training = new EveSkillTraining(this);
107 m_training->setAccount(m_settings->model().data());
108 m_training->setCharacter(character);
109 connect(m_training,SIGNAL(finished()),this,SLOT(update()));
110 m_training->fetchInfo();
114 void Widget::skillReady()
117 m_training->fetchInfo();
118 m_model->saveSettings();
121 void Widget::onlineStateChanged(bool online)
123 qDebug() << "Online status changed, reloading info";
125 m_training->fetchInfo();