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 m_skills->loadSkills();
29 m_model->loadSettings();
30 m_settings->setModel(m_model);
39 QSize Widget::sizeHint() const
41 return 2 * QLabel::sizeHint();
44 void Widget::paintEvent(QPaintEvent *event)
47 p.setBrush(QColor(0, 0, 0, 128));
49 p.drawRoundedRect(rect(), 25, 25);
51 QFont dFont(p.font());
52 dFont.setPixelSize(15);
54 EveCharacter *character = m_model->selectedCharacter();
55 if (character != NULL) {
56 QPoint iconLoc((150-64)/2,(150-64)/2);
57 if (character->characterIcon) {
58 p.drawPixmap(iconLoc,*(character->characterIcon));
60 QRect nameLoc(0,10,150,20);
61 p.drawText(nameLoc,Qt::AlignCenter,character->name);
63 QRect skillTitle(0,110,150,50);
64 p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
65 QString("%1 %2").arg(m_skills->skillName(m_training->typeId))
66 .arg(m_training->level));
67 QRect skillLoc(0,155,150,20);
68 p.drawText(skillLoc,Qt::AlignCenter,m_training->endTime.toString(Qt::SystemLocaleShortDate));
74 QLabel::paintEvent(event);
77 void Widget::showSettingsDialog()
80 int result = m_settings->exec();
81 if (result == QDialog::Accepted) {
83 m_model->setSelected(m_settings->selectedCharacter());
84 EveCharacter *character = m_model->selectedCharacter();
85 if (character != NULL) {
86 qDebug() << "Got character " << character->name;
88 connect(character,SIGNAL(imageLoaded()),this,SLOT(skillReady()));
89 character->fetchImage();
90 qDebug() << "Fetch skills";
91 m_training = new EveSkillTraining(this);
92 m_training->setAccount(m_settings->model().data());
93 m_training->setCharacter(character);
94 connect(m_training,SIGNAL(finished()),this,SLOT(update()));
95 m_training->fetchInfo();
100 void Widget::skillReady()
103 m_training->fetchInfo();
104 m_model->saveSettings();
107 void Widget::onlineStateChanged(bool online)
109 qDebug() << "Online status changed, reloading info";
111 m_training->fetchInfo();