From b8fbb02240da7ce471f5b62fdb46c581d94b5335 Mon Sep 17 00:00:00 2001 From: Niklas Date: Fri, 7 Oct 2011 14:10:55 +0200 Subject: adding files of the renamed directory --- NetworkDiscovery/ndgui.cpp | 267 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 NetworkDiscovery/ndgui.cpp (limited to 'NetworkDiscovery/ndgui.cpp') diff --git a/NetworkDiscovery/ndgui.cpp b/NetworkDiscovery/ndgui.cpp new file mode 100644 index 0000000..bf3b05e --- /dev/null +++ b/NetworkDiscovery/ndgui.cpp @@ -0,0 +1,267 @@ +#include "ndgui.h" + +ndgui::ndgui(QMainWindow *parent) : + QMainWindow(parent) { + + _tag = "[nd:ndgui]"; + + _started = false; + _userChoice = false; + + createAction(); + + connect(&networkDiscovery, SIGNAL(addInterface(const QString &)), this, SLOT(addInterface( const QString &))); + connect(&networkDiscovery, SIGNAL(changeProgressBarValue(const QString & , const int& )), this, SLOT(updateIfProgressBar(const QString & , const int&))); + connect(&networkDiscovery, SIGNAL(connectionEstablished(QString)), this, SLOT(handleConnectionEstablished(QString))); + connect(&networkDiscovery, SIGNAL(abortBoot(QString)), this, SLOT(abortBoot(const QString))); + connect(&networkDiscovery, SIGNAL(updateStatusLabel(QString,QString)), this, SLOT(updateIfStatus(const QString &, const QString &))); + connect(&networkDiscovery, SIGNAL(allProcessesFinished()), this, SLOT(handleAllProcessesFinished())); + connect(&networkDiscovery, SIGNAL(continueBoot(QString, int)), this, SLOT(continueBoot(QString, int))); + + + + _webView = new QWebView(this); + connect(_webView->page()->mainFrame(), SIGNAL( + javaScriptWindowObjectCleared()), this, SLOT(attachToDOM())); + setCentralWidget(_webView); + setWindowTitle(tr("NetD")); + setAttribute(Qt::WA_QuitOnClose, true); + setWindowFlags(Qt::FramelessWindowHint); + + _webView->load(QUrl("qrc:html/networkdiscovery_userchoice.html")); + _webView->show(); + + QTimer::singleShot(2000, this, SLOT(prepareNetworkDiscover())); + +} + + + +ndgui::~ndgui() { + +} + + + +void ndgui::createAction() { + _allowUserChoice = new QAction(tr("&quit"), this); + _allowUserChoice->setShortcut(QKeySequence(Qt::Key_F5)); + connect(_allowUserChoice, SIGNAL(triggered()), this, SLOT(setUserChoiceTrue())); + this->addAction(_allowUserChoice); +} + + + +void ndgui::setUserChoiceTrue() { + _userChoice = true; +} + + + +void ndgui::prepareNetworkDiscover() { + connect(_webView, SIGNAL(loadFinished(bool)), this, + SLOT(startNetworkDiscovery())); + this->removeAction(_allowUserChoice); + + _webView->load(QUrl("qrc:html/networkdiscovery.html")); + _webView->show(); +} + + + +void ndgui::startNetworkDiscovery(){ + + disconnect(_webView,SIGNAL(loadFinished(bool)), this, SLOT(startNetworkDiscovery())); + if(!_started) { + _started = true; + networkDiscovery.initAndRun("209.85.148.105", _userChoice, true, "/var/tmp/logfile","/var/tmp/qt_c_socket_custom"); + } + else { + qDebug() << _tag << "NetworkDiscovery already started"; + } +} + + + +void ndgui::handleConnectionEstablished(QString ifName) { + _ifNameList.append(ifName); +} + + + +void ndgui::handleAllProcessesFinished() { + qDebug() << _tag << "all Processes finished"; + if(_ifNameList.size() > 0) { + QString jsonArr = "["; + for(int i = 0; i < _ifNameList.size()-1; i++) { + jsonArr += "\"" + _ifNameList.value(i) + "\","; + } + jsonArr += "\"" + _ifNameList.last() + "\"]"; + chooseInterfaceDialog(jsonArr); + } else { + abortBoot("No usable interfaces found!"); + } +} + + + +void ndgui::restartSystem() { + +} + + + +void ndgui::shutDownSystem() { + +} + + + +void ndgui::continueBoot(QString ifName, int userChoice) { + if (!userChoice) { + QString text = "continue with interface: " + ifName; + qDebug() << _tag << text << "no user choice"; + } else { + QString text = "continue with interface: " + ifName; + qDebug() << _tag << text << "with user choice"; + QString gateway = networkDiscovery.getGatewayForInterface(ifName); + networkDiscovery.ip4_replaceDefaultRoute(ifName,gateway,0); + } + _webView->load(QUrl("qrc:html/continueBoot.html")); +} + + + +QString ndgui::readLogFile() { + qDebug() << _tag << "show log"; + return networkDiscovery.readLogFile(); +} + + + +/*test html gui version*/ + +QVariantList ndgui::getManualConfInterfaces() { + qDebug() << _tag << "call getManualConfInterfaces"; + QVariantList jsonArr; + foreach (QString s, _manConfList) { + QVariant e(s); + jsonArr << e; + } + qDebug() << _tag << "value of jsonArr:" << jsonArr; + return jsonArr; +} + + + +int ndgui::ip4_setManualConfiguration(QVariantMap jsonArr) { + return networkDiscovery.ip4_setManualConfiguration(jsonArr); + +} + + + +/* slots */ +/************************************************/ +////////////////////////////////////////////////// +/************************************************/ + +void ndgui::attachToDOM(){ + _webView->page()->mainFrame()->addToJavaScriptWindowObject(QString("fbgui"), this); + loadJQuery(); +} + + + +void ndgui::loadJQuery() { + QString js; + QString pathToJsDir(":/html"); + pathToJsDir.append("/js"); + + QDir qrcJSDir(pathToJsDir); + QFileInfoList fiList = qrcJSDir.entryInfoList(); + QFileInfo fi; + foreach(fi, fiList) + { + if (fi.suffix() == "js") { + //qDebug()<< fi.fileName(); + //qxtLog->debug() << fi.fileName(); + if (fi.fileName() != "test.js" && fi.fileName() != "nd-functions.js") { + QFile file; + file.setFileName(pathToJsDir + "/" + fi.fileName()); + file.open(QIODevice::ReadOnly); + js = file.readAll(); + file.close(); + + _webView->page()->mainFrame()->evaluateJavaScript(js); + //qxtLog->debug() << "evaluated " + fi.fileName(); + } + } + } +} + + + +//diese methoden müssen später in die javascriptInterface Klasse eingefügt werden. + +// dieser code muss später in die javascriptInterface klasse der fbgui eingefügt werden +// tausche dazu ndgui zu javascriptinterface +// und _webView->page()->mainFrame() zu _parent + +void ndgui::abortBoot(const QString msg) { + qDebug() << _tag << "call abortBoot:" << msg; + QString code = QString("abortBootDialog('\%1')").arg(msg); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::chooseInterfaceDialog(const QString msg) { + QString code = QString("chooseInterfaceDialog(\%1)").arg(msg); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::updateStatus(const QString &status) { + if (status == "") + return; + QString code = QString("updateStatus('\%1')").arg(status); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::updateIfProgressBar(const QString &ifName, const int& percent) { + if (percent == 0) + return; + qDebug() << _tag << "call updateIfProgressBar"; + QString code = QString("updateIfProgressBar('\%1',\%2)").arg(ifName).arg(percent); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::updateIfStatus(const QString &ifName, const QString &status) { + if (ifName == "") + return; + QString code = QString("updateIfStatus('\%1','\%2')").arg(ifName).arg(status); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::addInterface(const QString &ifName) { + if (ifName == "") + return; + qDebug() << _tag << "call addInterface"; + _manConfList.append(ifName); + QString code = QString("addInterface('\%1')").arg(ifName); + _webView->page()->mainFrame()->evaluateJavaScript(code); +} + + + +void ndgui::notifyCall(QString msg){ + qDebug() << _tag << "------ called:" << msg; +} -- cgit v1.2.3-55-g7522