eveaccount.cpp \
eveskilltraining.cpp \
evesettingsdialog.cpp \
- mainwindow.cpp \
skilltree.cpp
HEADERS += widget.h \
evemodel.h \
eveaccount.h \
eveskilltraining.h \
evesettingsdialog.h \
- mainwindow.h \
skilltree.h
FORMS += evesettingsdialog.ui \
mainwindow.ui
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QtDebug>
+#include <QSettings>
+
static QUrl imageUrl("http://img.eve.is/serv.asp");
EveModel::EveModel(QObject *parent) :
QObject(parent),
- m_userId(0)
+ m_userId(0),
+ m_selectedIndex(-1)
{
+
}
void EveModel::fetchAccounts()
reader.readNextStartElement(); // start next row
}
m_reply->deleteLater();
+ saveSettings();
emit accountsReady();
}
qDebug() << "Network error " << error;
}
+EveCharacter *EveModel::selectedCharacter()
+{
+ qDebug() << "Index:" << m_selectedIndex;
+ if (m_selectedIndex >= 0 && m_selectedIndex < m_characters.size())
+ return &(m_characters[m_selectedIndex]);
+ return NULL;
+}
+
+bool EveModel::loadSettings()
+{
+ QSettings settings("net.korjaussarja","evehomescreen");
+ qDebug() << "Load settings";
+ // Absence of this key means first time load
+ if (!settings.contains("account/apiKey")) {
+ qDebug() << "No saved settings";
+ return false;
+ }
+ setApiKey(settings.value("account/apiKey").toString());
+ setUserId(settings.value("account/userId").toInt());
+
+ int size = settings.beginReadArray("characters");
+ for (int i = 0;i<size;++i) {
+ settings.setArrayIndex(i);
+ EveCharacter character;
+ character.name = settings.value("characterName").toString();
+ character.characterId = settings.value("characterId").toInt();
+ character.corpName = settings.value("corpName").toString();
+ character.corpId = settings.value("corpId").toInt();
+
+ if (settings.contains("characterIcon")) {
+ character.characterIcon = new QPixmap(settings.value("characerIcon").value<QPixmap>());
+ }
+ characters().append(character);
+ }
+ settings.endArray();
+ m_selectedIndex = settings.value("account/selectedCharacter",-1).toInt();
+ return true;
+}
+
+// TODO
+void EveModel::saveSettings()
+{
+ QSettings settings("net.korjaussarja","evehomescreen");
+ settings.setValue("account/apiKey",apiKey());
+ settings.setValue("account/userId",userId());
+ if (m_selectedIndex >= 0 && m_selectedIndex < characters().size())
+ settings.setValue("account/selectedCharacter",m_selectedIndex);
+ settings.beginWriteArray("characters");
+
+ for (int i=0;i<characters().size();++i) {
+ settings.setArrayIndex(i);
+ settings.setValue("characerName", characters().at(i).name);
+ settings.setValue("characterId", characters().at(i).characterId);
+ settings.setValue("corpName", characters().at(i).corpName);
+ settings.setValue("corpId", characters().at(i).corpId);
+ if (characters().at(i).characterIcon != NULL) {
+ settings.setValue("characterIcon",*(characters().at(i).characterIcon));
+ }
+ }
+ settings.endArray();
+}
void setUserId(int aId) { m_userId = aId; }
int userId() const { return m_userId; }
QList<EveCharacter> &characters() { return m_characters; }
+
+ EveCharacter *selectedCharacter();
+ void setSelected( int index ) { m_selectedIndex = index; }
+ int selectedIndex() { return m_selectedIndex; }
signals:
void accountsReady();
public slots:
void fetchAccounts();
+ bool loadSettings();
+ void saveSettings();
+
private slots:
void replyReady();
void networkError(QNetworkReply::NetworkError);
QNetworkAccessManager mgr;
QNetworkReply *m_reply;
QList<EveCharacter> m_characters;
+ int m_selectedIndex;
};
#endif // EVEMODEL_H
QPushButton *button = new QPushButton("Done");
m_layout->addWidget(button);
characterPicker->setPickSelector(characterSelector);
-
- connect(button,SIGNAL(pressed()),this,SLOT(accept()));
+ connect(button,SIGNAL(pressed()),this,SLOT(donePressed()));
//connect(buttons,SIGNAL(rejected()),this,SLOT(reject()));
//connect(ui->getCharactersButton,SIGNAL(pressed()),this,SLOT(tryLoadCharacters()));
//connect(ui->characterCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(characterSelected(int)));
//connect(userIdEdit,SIGNAL(editingFinished()),this,SLOT(tryLoadCharacters()));
//connect(characterSelector->view(),SIGNAL(activated(const QModelIndex &)),this,SLOT(characterSelected()));
connect(characterPicker,SIGNAL(pressed()),this,SLOT(tryLoadCharacters()));
- connect(characterSelector,SIGNAL(selected(const QString &)),characterPicker,SLOT(setValuetext(const QString &)));
+ //connect(characterSelector,SIGNAL(selected(const QString &)),characterPicker,SLOT(setValuetext(const QString &)));
}
+
+
void EveSettingsDialog::changeEvent(QEvent *e)
{
QDialog::changeEvent(e);
void EveSettingsDialog::setModel(QSharedPointer<EveModel> &model)
{
+ qDebug() << "Set model";
m_model = model;
- apiKeyEdit->setText(model->apiKey());
- userIdEdit->setText(QString::number(model->userId()));
+ apiKeyEdit->setText(m_model->apiKey());
+ if (m_model->userId() != 0)
+ userIdEdit->setText(QString::number(m_model->userId()));
+
charactersLoaded();
+ characterSelector->setCurrentIndex(m_model->selectedIndex());
}
void EveSettingsDialog::charactersLoaded()
}
}
-EveCharacter *EveSettingsDialog::selectedCharacter() {
- int idx = characterSelector->currentIndex();
- qDebug() << "Selected index is " << idx;
- if ( idx >=0 && idx < m_model->characters().size() ) {
- qDebug() << "Selecting " << m_model->characters().at(idx).name;
- return &(m_model->characters()[idx]);
- }
- return NULL;
+int EveSettingsDialog::selectedCharacter()
+{
+ return characterSelector->currentIndex();
}
void EveSettingsDialog::characterSelected()
{
}
+
+void EveSettingsDialog::donePressed()
+{
+ m_model->saveSettings();
+ accept();
+}
public:
EveSettingsDialog(QWidget *parent = 0);
- EveCharacter *selectedCharacter();
+ int selectedCharacter();
QSharedPointer<EveModel> model() { return m_model; }
void setModel(QSharedPointer<EveModel> &model);
protected:
void tryLoadCharacters();
void charactersLoaded();
void characterSelected();
+ void donePressed();
private:
QSharedPointer<EveModel> m_model;
QNetworkReply *m_reply;
{
int result = m_settings->exec();
if (result == QDialog::Accepted) {
- m_character = m_settings->selectedCharacter();
+ m_selectedCharacter = m_settings->selectedCharacter();
- if (m_character != NULL ) {
+ if (m_selectedCharacter > 0 && m_selectedCharacter < m_model->chara ) {
qDebug() << "Selected character:" << m_character->name;
connect(m_character,SIGNAL(imageLoaded()),this,SLOT(setLabelImage()));
m_character->fetchImage();
qDebug() << "Reply ready";
if (!reply->error()) {
QByteArray replyContent = reply->readAll();
- qDebug() << replyContent;
+ //qDebug() << replyContent;
fromXml(replyContent);
emit skillsLoaded();
} else {
assert(xml.name() == "row");
QString name = xml.attributes().value("","typeName").toString();
int typeId = xml.attributes().value("","typeID").toString().toInt();
- qDebug() << "Found skill " << name << ":" << typeId;
+ //qDebug() << "Found skill " << name << ":" << typeId;
skillNames[typeId] = name;
xml.skipCurrentElement(); // description
}
}
- qDebug() << skillNames;
+ //qDebug() << skillNames;
qDebug() << longestName;
}
-// Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
-// This file is licenced under GPL, see COPYING
-// for full licence information
/********************************************************************************
** Form generated from reading UI file 'evesettingsdialog.ui'
**
-** Created: Fri May 7 20:57:37 2010
+** Created: Sat May 8 12:01:14 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
-// Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
-// This file is licenced under GPL, see COPYING
-// for full licence information
/********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
-** Created: Fri May 7 20:57:37 2010
+** Created: Sat May 8 12:01:14 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
#include "skilltree.h"
#include <QtDebug>
#include <QNetworkConfigurationManager>
+#include <QSettings>
QTM_USE_NAMESPACE
Widget::Widget(QWidget *parent)
: QLabel(parent),
- m_character(NULL),
m_settings(new EveSettingsDialog(this)),
m_training(NULL),
m_net(new QNetworkConfigurationManager(this)),
m_skills(new SkillTree(this)),
- m_model(NULL)
+ m_model(new EveModel)
{
setAlignment(Qt::AlignCenter);
setAttribute(Qt::WA_TranslucentBackground);
setGeometry(0,0,150,180);
connect(m_net,SIGNAL(onlineStateChanged(bool)),this,SLOT(onlineStateChanged(bool)));
m_skills->loadSkills();
+ m_model->loadSettings();
+ m_settings->setModel(m_model);
}
Widget::~Widget()
{
- delete m_character;
+
}
QFont dFont(p.font());
dFont.setPixelSize(15);
p.setFont(dFont);
- if (m_character != NULL) {
+ EveCharacter *character = m_model->selectedCharacter();
+ if (character != NULL) {
QPoint iconLoc((150-64)/2,(150-64)/2);
- if (m_character->characterIcon) {
- p.drawPixmap(iconLoc,*(m_character->characterIcon));
+ if (character->characterIcon) {
+ p.drawPixmap(iconLoc,*(character->characterIcon));
}
QRect nameLoc(0,10,150,20);
- p.drawText(nameLoc,Qt::AlignCenter,m_character->name);
+ p.drawText(nameLoc,Qt::AlignCenter,character->name);
if (m_training) {
QRect skillTitle(0,110,150,50);
p.drawText(skillTitle,Qt::AlignCenter|Qt::TextWordWrap,
int result = m_settings->exec();
if (result == QDialog::Accepted) {
- m_character = m_settings->selectedCharacter();
- m_model = m_settings->model();
- qDebug() << "Got character " << m_character->name;
- connect(m_character,SIGNAL(imageLoaded()),this,SLOT(skillReady()));
- m_character->fetchImage();
- qDebug() << "Fetch skills";
- m_training = new EveSkillTraining(this);
- m_training->setAccount(m_settings->model().data());
- m_training->setCharacter(m_character);
- connect(m_training,SIGNAL(finished()),this,SLOT(update()));
+ m_model->setSelected(m_settings->selectedCharacter());
+ EveCharacter *character = m_model->selectedCharacter();
+ if (character != NULL) {
+ qDebug() << "Got character " << character->name;
+
+ connect(character,SIGNAL(imageLoaded()),this,SLOT(skillReady()));
+ character->fetchImage();
+ qDebug() << "Fetch skills";
+ m_training = new EveSkillTraining(this);
+ m_training->setAccount(m_settings->model().data());
+ m_training->setCharacter(character);
+ connect(m_training,SIGNAL(finished()),this,SLOT(update()));
+ m_training->fetchInfo();
+ }
}
}
{
update();
m_training->fetchInfo();
+ m_model->saveSettings();
}
void Widget::onlineStateChanged(bool online)
}
}
-// TODO
-void Widget::loadSettings()
-{
-
-}
-
-// TODO
-void Widget::saveSettings()
-{
-
-}
Widget(QWidget *parent = 0);
~Widget();
QSize sizeHint() const;
- void setCharacter(EveCharacter *aChar) { m_character = aChar; }
- EveCharacter *character() { return m_character; }
public slots:
void showSettingsDialog();
void paintEvent(QPaintEvent *event);
void skillReady();
void onlineStateChanged(bool online);
- void loadSettings();
- void saveSettings();
private:
- EveCharacter *m_character;
EveSettingsDialog *m_settings;
EveSkillTraining *m_training;
QNetworkConfigurationManager *m_net;