summaryrefslogblamecommitdiffstats
path: root/src/javascriptinterface.h
blob: e686b77bf6ad35770816d4e50bbcfd7a5b5e4864 (plain) (tree)
























                                                                         



                                               
        
                            
                           
                                                                            
                                             
                            

                          
        
                                             
                                                  
                               


                         
                                                               
                           
 
                                             
                                                    
                                                            
                                                      

                    



                                                                    


                                                                                             
 
                     
                       


                                
/*
# Copyright (c) 2010,2011 - RZ Uni Freiburg
# Copyright (c) 2010,2011 - OpenSLX Project
#
# This program/file is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found under http://openslx.org
#
#
# 	   Interface for javascript.
#
*/

#ifndef JAVASCRIPTINTERFACE_H_
#define JAVASCRIPTINTERFACE_H_

#include "fbgui.h"

class JavascriptInterface : public QObject
{
	Q_OBJECT
public:
	JavascriptInterface(QWebFrame* parent);
	~JavascriptInterface();

private:
	// pointer to parent
	QWebFrame* _parent;
	// function to be called withint javascript when downloads are done.
	QString _callbackOnDownloadsFinished;
	// loads jQuery code
	void loadJQuery();

signals:
    // request the file from download manager
	void requestFile(const QString& filename);
	// quit the application
	void quitFbgui();

public slots:
    // make sure the interface stays attached on webpage reload
	void attachToDOM();

	// slots for calling from the webpage
	void startDownload(const QString& filename);
	void setCallbackOnFinished(const QString& function);
	const QString getSysInfo(const QString& info);
	void quit();

	// callback when downloads are done.
    void callbackOnFinished();

	// slots for information exchange with the download manager.
	void updateProgressBar(const int& percent, const double& speed, const QString& unit);
	void downloadInfo(const QString& filename, const double& filesize);
	void notify(const QString& msg);

	// test stuff
	void trigger();
};

#endif // JAVASCRIPTINTERFACE_H_