blob: dcae24b56738f7a4ccfac3899d0611bb77e8adca (
plain) (
tree)
|
|
/*
* 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();
}
|