/* * JavaScriptInterface.cpp * * Created on: Oct 26, 2011 * Author: ssc */ #include "JavaScriptInterface.h" #include #include #include #include #include #include #include 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 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 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(); }