summaryrefslogblamecommitdiffstats
path: root/src/JSObject.h
blob: 282b232e86ae135ae3c79a870290b86bb659c450 (plain) (tree)
1
2
3
4
5
6
7




                           

                                                                                                            




                   
                      
                  

             







                         
           
 


                               
 
                
        
                         
       

                                 
 
 






                                                                                         
 
        


                                            

                                                                 
                            
                                                                                      
                                             


















                                                                                                                                                    
                              
          
 

             
                           


                                                         

                                             


                            




                                            

                              


                              
 


                        
/*
 * jsObject.h
 *
 *  Created on: Feb 1, 2011
 *      Author: niklas
 * The purpose of the jsObject class is to provide signals which will be emited in the javascript functions.
 * Those javascript functions are writen in a seperate file: jsFunktions.js
 */

#ifndef JSOBJECT_H_
#define JSOBJECT_H_

#include "fbbrowser.h"
#include <QObject>

typedef enum 
{
	QUIT,
	SHOW_USB_DEVICES,
	SHOW_HARDDRIVES,
	SHOW_MAC_ADDRESS,
	SHOW_IP_ADDRESS,
	SHOW_TIME,
	SHOW_DATE
} jsAction;

class fbbrowser;
class QWebFrame;
class JSObject : public QObject
{
	Q_OBJECT
private:
	QWebFrame* owner;
public:
	JSObject(QWebFrame* qwf);
	virtual ~JSObject();


// no slots needed. class provides only signals
// private slots:
//	void performAction(jsAction a);

// define all the needed signals.
// every action gets its own signal. (the former enum is not needed anymore)
// the signals will be connected in the fbbrowser class with slots of the fbbrowser class

signals:
	void downloadFile(QString filename);
	void signalQuitAll();
	/*
	// should be the last signal to be emited. 
	// Will close the browser and continues the boot sequenze
	void closeBrowser();
	// will start the download of all needed files for the following boot sequence
	void startDownload(QString filename);
	// starts the slot which is responsible for extracting the MAC address of the machine
	// the MAC Address will be the parameter of a javascript function which will present it on the webpage
	void getMacAddress();
	// starts the slot which is responsible for extracting the IP address of the machine
	// the IP address will be the parameter of a javascript function which will present it on the webpage
	void getIpAddress();
	// starts the slot which is responsible for extracting the integrated hardware devices of the machine
	// the array of  integrated hardware devices will be the parameter of a javascript function which will present 		// it on the webpage
	void getIntegratedHardwareDevices();
	// starts the slot which is responsible for extracting the usb devices of the machine
	// the array of usb devices will be the parameter of a javascript function which will present it on the webpag
	void getUsbDevices();
	// starts the slot which is responsible for extracting the hard drive devices of the machine
	// the array of hard rive devices will be the parameter of a javascript function which will present it on the 		// webpag
	void getHardDrives();

	// for testing
	void showTime();
	void showDate();
	void showHelloWorld();
	*/

public slots:

	void attachToDOM();
	// slots which are emited by the jsObject signals

	void quitAll();
	void startDownload(QString filename);
	void updateProgress(int i);

	// System info stuff
	void getSysInfo();
	void getMacAddress();
	void getIpAddress();
	void getIntegratedHardwareDevices();
	void getUsbDevices();
	void getHardDrives();

	// for testing reasons
	void showTime();
	void showDate();
	void showHelloWorld();

};

#endif /* JSOBJECT_H_ */