Use skill queue, change background color according to queue status
[evehomescreen] / src / evemodel.cpp
index 9b44c7c..167d32e 100644 (file)
@@ -1,3 +1,6 @@
+// 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>
@@ -6,12 +9,16 @@
 #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()
@@ -77,6 +84,7 @@ void EveModel::replyReady()
         reader.readNextStartElement(); // start next row
     }
     m_reply->deleteLater();
+
     emit accountsReady();
 }
 
@@ -85,3 +93,65 @@ void EveModel::networkError(QNetworkReply::NetworkError error)
     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();
+}