summaryrefslogtreecommitdiffstats
path: root/src/JavaScriptInterface.cpp
diff options
context:
space:
mode:
authorSebastian Schmelzer2011-11-02 17:01:15 +0100
committerSebastian Schmelzer2011-11-02 17:01:15 +0100
commitec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b (patch)
treea8ba70ee50db2a22f713b681b3e6b9b0fee7dfad /src/JavaScriptInterface.cpp
downloademuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.tar.gz
emuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.tar.xz
emuchooser-ec9a8dfe2de934f38e75bab8ed48ae7b42c31d9b.zip
initial commit
Diffstat (limited to 'src/JavaScriptInterface.cpp')
-rw-r--r--src/JavaScriptInterface.cpp143
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();
+}
+
+