/* # 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 # # # Main class of the fbgui: # - Manages display of components and their communications # */ #ifndef FBGUI_H #define FBGUI_H #include #include #include // Internal default settings #define DEFAULT_URL "http://www.google.com" #define DEFAULT_DOWNLOAD_DIR "/tmp/fbgui/downloads" #define DEFAULT_CONFIG_PATH "/etc/fbgui.conf" #define DEFAULT_UPDATE_INTERVAL 1; #define DEFAULT_QRC_HTML_DIR ":/html" #define DEFAULT_FILE_TRIGGER "/tmp/fbgui/trigger" // Global settings variables extern QString serialLocation; extern QString fileToTriggerURL; extern QString sessionID; extern QString binPath; extern QString downloadPath; extern QUrl baseURL; extern int debugMode; extern int updateInterval; class fbgui : public QMainWindow { Q_OBJECT public: fbgui(); private: // debug setup void setupBasicDebug(); void createDebugConsole(); // layout setup void setupLayout(); void createActions(); // functions to trigger the loading of baseURL void watchForTrigger(); bool checkHost() const; void loadURL(); QByteArray generatePOSTData(); // widgets constituing the gui QWebView* _webView; QSplitter* _splitter; QTextEdit* _debugConsole; // action list QAction* _quit; QAction* _toggleDebugConsole; // watcher to detect changes in the observed directory QFileSystemWatcher* _watcher; private slots: // action slots void toggleDebugConsole(); // checks if the change reported by _watcher is the one we are looking for // e.g. fileToTriggerURL has been created, ignores other events. void checkForTrigger(const QString& dirname); }; #endif // FBGUI_H