+// Copyright (C) 2010 Jaakko Kyro <jkyro@korjaussarja.net>
+// This file is licenced under GPL, see COPYING
+// for full licence information
#include "evemodel.h"
#include "eveaccount.h"
#include <QNetworkAccessManager>
#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();
+
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("characterIcon").value<QPixmap>());
+ }
+ characters().append(character);
+ }
+ settings.endArray();
+ m_selectedIndex = settings.value("account/selectedCharacter",-1).toInt();
+ return true;
+}
+
+// TODO
+void EveModel::saveSettings()
+{
+ qDebug() << "Save";
+ 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("characterName", 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();
+}