blob: dbb6e2e0c95e97db795a7ef3388c26ca8298a1bf (
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();
}
|