diff options
author | Sebastian Schmelzer | 2011-11-02 17:01:15 +0100 |
---|---|---|
committer | Sebastian Schmelzer | 2011-11-02 17:01:15 +0100 |
commit | ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b (patch) | |
tree | a8ba70ee50db2a22f713b681b3e6b9b0fee7dfad /src/JavaScriptInterface.cpp | |
download | emuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.tar.gz emuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.tar.xz emuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.zip |
initial commit
Diffstat (limited to 'src/JavaScriptInterface.cpp')
-rw-r--r-- | src/JavaScriptInterface.cpp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/JavaScriptInterface.cpp b/src/JavaScriptInterface.cpp new file mode 100644 index 0000000..dcae24b --- /dev/null +++ b/src/JavaScriptInterface.cpp @@ -0,0 +1,143 @@ +/* + * JavaScriptInterface.cpp + * + * Created on: Oct 26, 2011 + * Author: ssc + */ + +#include "JavaScriptInterface.h" +#include <QDebug> +#include <QString> +#include <QFile> + +#include <VSession.h> +#include <VSessionHandler.h> +#include <XSession.h> +#include <XSessionHandler.h> + + + +JavaScriptInterface::JavaScriptInterface(QWebView* parent) { + // TODO Auto-generated constructor stub + + index = 1; + m_dom = parent->page()->mainFrame(); +} + +JavaScriptInterface::~JavaScriptInterface() { + // TODO Auto-generated destructor stub +} + +void JavaScriptInterface::addItems(const QList<Session *> entries) { + int i; + for(i=0; i<entries.size(); i++) { + m_data.insert(index + i, entries.at(i)); + } + index = index + i; +} + + +void JavaScriptInterface::attachToDOM() { + m_dom->addToJavaScriptWindowObject(QString("emuchooser"), this); +} + +QVariantList JavaScriptInterface::getList() { + QVariantMap elem; + QVariantList list; +// qDebug() << "getList was called"; + + QHashIterator<int, Session *> i(m_data); + while (i.hasNext()) { + i.next(); + elem.insert("title", i.value()->shortDescription()); + elem.insert("icon", i.value()->icon()); + elem.insert("id", i.key()); + list << elem; + elem.clear(); + } + + return list; +} + +QString JavaScriptInterface::getDetails(int id) { +// qDebug() << "getDetails was called"; + + QString tpl, ret; + QFile file(":/html/detail"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return QString(); + + while (!file.atEnd()) { + QByteArray line = file.readLine(); + tpl.append(line); + } + + + ret = tpl.arg(m_data.value(id)->title()) + .arg(m_data.value(id)->screenshot()) + .arg(m_data.value(id)->author()) + .arg(m_data.value(id)->creationDate()) + .arg(m_data.value(id)->changeDate()) + .arg(m_data.value(id)->os()) + .arg(m_data.value(id)->emulator()) + .arg(m_data.value(id)->description()); + + return ret; +} + + + +QString JavaScriptInterface::getFoo() { +// qDebug() << "getFoo was called"; + return QString("foobar"); +} + +QString JavaScriptInterface::getAbout() { +// qDebug() << "getAbout was called"; + QString ret; + QFile file(":/html/about"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return QString(); + + while (!file.atEnd()) { + QByteArray line = file.readLine(); + ret.append(line); + } + return ret; +} + +QString JavaScriptInterface::getHelp() { +// qDebug() << "getHelp was called"; + QString ret; + QFile file(":/html/help"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return QString(); + + while (!file.atEnd()) { + QByteArray line = file.readLine(); + ret.append(line); + } + return ret; +} + +QString JavaScriptInterface::getWelcome() { +// qDebug() << "getWelcome was called"; + QString ret; + QFile file(":/html/welcome"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return QString(); + + while (!file.atEnd()) { + QByteArray line = file.readLine(); + ret.append(line); + } + return ret; +} + +void JavaScriptInterface::run(int id) { + qDebug() << "start system: " << m_data.value(id)->title(); + emit hideMainWindow(); + m_data.value(id)->run(); +} + + |