summaryrefslogblamecommitdiffstats
path: root/src/JavaScriptInterface.cpp
blob: dbb6e2e0c95e97db795a7ef3388c26ca8298a1bf (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
















                                


                                                          
 

                                      

 


                                           

 






                                                             
     
                    

 



                                                                  

 




                              

                                         











                                                          

 


                                       

                                            



                                                        
 



                                        

     




                                                                                 
 
             

 


                             
                                        
                           

 


                               
                                          








                                                        
     
             

 


                              
                                         








                                                        
     
             

 


                                 
                                            








                                                        
     
             

 






                                                            

 
/*
 * 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();
}