diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | fbgui.conf | 1 | ||||
-rw-r--r-- | fbgui.logging.conf | 5 | ||||
-rw-r--r-- | src/fbgui/fbgui.cpp | 53 | ||||
-rw-r--r-- | src/fbgui/fbgui.h | 5 | ||||
-rw-r--r-- | src/fbgui/main.cpp | 2 | ||||
-rwxr-xr-x | testApp.sh | 23 |
7 files changed, 72 insertions, 18 deletions
@@ -17,3 +17,4 @@ Debug /doxygen/html/* /doxygen/latex/* /doxygen/man/* +testApp.sh @@ -8,5 +8,4 @@ ip_config=/tmp/ip_config log_file=/tmp/fbgui.log server=209.85.148.105 autoup=true -pathtoexe=~/fbgui/build/src/customdhcpcd/cdhcpcd serverSocket=/var/tmp/qt_c_socket_custom diff --git a/fbgui.logging.conf b/fbgui.logging.conf index b305de2..ba768ad 100644 --- a/fbgui.logging.conf +++ b/fbgui.logging.conf @@ -1,3 +1,7 @@ + +log4j.rootLogger=DEBUG, FA, SLA + + log4j.appender.SLA=SyslogAppender log4j.appender.SLA.layout=PatternLayout log4j.appender.SLA.layout.ConversionPattern=-4r -5p c{2} M.L x - m @@ -10,5 +14,4 @@ log4j.appender.FA.layout=TTCCLayout log4j.appender.FA.layout.ContextPrinting=disabled log4j.appender.FA.layout.DateFormat=ISO8601 -log4j.rootLogger=DEBUG, SLA, FA diff --git a/src/fbgui/fbgui.cpp b/src/fbgui/fbgui.cpp index 683538b..759c747 100644 --- a/src/fbgui/fbgui.cpp +++ b/src/fbgui/fbgui.cpp @@ -54,6 +54,8 @@ void fbgui::init() { // start fbgui LOG4CXX_DEBUG(coreLogger, "Initializing fbgui..."); + _watcher = new QFileSystemWatcher(this); + setupLayout(); createActions(); @@ -173,8 +175,9 @@ void fbgui::watchForTrigger() { } // watch the path to trigger file LOG4CXX_DEBUG(coreLogger, "[watcher] Watching " << fileToTriggerURL); - _watcher = new QFileSystemWatcher(QStringList(fileToTriggerURL), this); -QObject::connect(_watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(prepareURLLoad())); + _watcher->addPath(fileToTriggerURL); + //_watcher = new QFileSystemWatcher(QStringList(fileToTriggerURL, logFilePath), this); +QObject::connect(_watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(prepareURLLoad(const QString&))); } //------------------------------------------------------------------------------------------- @@ -188,14 +191,16 @@ QObject::connect(_watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(prepa * @see fbgui::checkHost() * @see fbgui::loadURL() */ -void fbgui::prepareURLLoad() { - LOG4CXX_DEBUG(coreLogger, "[watcher] " << fileToTriggerURL << " changed!"); - // disconnect _watcher, his job is done - LOG4CXX_DEBUG(coreLogger, "[watcher] disconnected."); - _watcher->disconnect(this); - _watcher->deleteLater(); - // try to load URL - loadURL(); +void fbgui::prepareURLLoad(const QString& fileName) { + if (fileName == fileToTriggerURL) { + LOG4CXX_DEBUG(coreLogger, "[watcher] " << fileToTriggerURL << " changed!"); + // disconnect _watcher, his job is done + LOG4CXX_DEBUG(coreLogger, "[watcher] disconnected."); + _watcher->disconnect(this); + _watcher->deleteLater(); + // try to load URL + loadURL(); + } } //------------------------------------------------------------------------------------------- // Preparations for URL load @@ -471,16 +476,36 @@ void fbgui::createDebugConsole() { pal.setColor(QPalette::Base, Qt::black); _debugConsole->setPalette(pal); _debugConsole->setTextColor(Qt::white); - // enable custom coreLogger engine -// qxtLog->addLoggerEngine("fb_coreLogger", new LoggerEngine_fb(_debugConsole)); - //qxtLog->initLoggerEngine("fb_coreLogger"); -// qxtLog->setMinimumLevel("fb_coreLogger", QxtLogger::DebugLevel); // CTRL + D toggles debug window _toggleDebugConsole = new QAction(tr("&toggleDebug"), this); _toggleDebugConsole->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_D)); addAction(_toggleDebugConsole); connect(_toggleDebugConsole, SIGNAL(triggered()), this, SLOT(toggleDebugConsole())); + + // read from log file + _logFile = new QFile(logFilePath); + _logFileIn = new QTextStream(_logFile); + + if (!_logFile->open(QFile::ReadOnly | QFile::Text)) { + //do error + } + _debugConsole->setPlainText(_logFileIn->readAll()); + _debugConsole->moveCursor(QTextCursor::End); + LOG4CXX_DEBUG(coreLogger, "Log file opened."); + // watch log file + _watcher->addPath(logFilePath); + QObject::connect(_watcher, SIGNAL(fileChanged(const QString&)), this, SLOT(refreshDebugConsole(const QString&))); + +} +//------------------------------------------------------------------------------------------- +void fbgui::refreshDebugConsole(const QString& fileName) { + if (fileName == logFilePath) { + while (!_logFileIn->atEnd()) { + _debugConsole->append(_logFileIn->readLine()); + } + _debugConsole->moveCursor(QTextCursor::End); + } } //------------------------------------------------------------------------------------------- /** diff --git a/src/fbgui/fbgui.h b/src/fbgui/fbgui.h index c6d5a01..4891194 100644 --- a/src/fbgui/fbgui.h +++ b/src/fbgui/fbgui.h @@ -101,14 +101,17 @@ private: // watcher to detect changes in the observed directory. QFileSystemWatcher* _watcher; + QFile* _logFile; + QTextStream* _logFileIn; private slots: // toggles debug console when action _toggleDebugConsole happens. void toggleDebugConsole(); + void refreshDebugConsole(const QString&); // This function is triggered by fileChanged Signal of _watcher. // It deletes _watcher, since we don't need it anymore and tries to load URL. - void prepareURLLoad(); + void prepareURLLoad(const QString&); void loadURLDone(bool success); // shut off the system diff --git a/src/fbgui/main.cpp b/src/fbgui/main.cpp index e7f9fae..6284054 100644 --- a/src/fbgui/main.cpp +++ b/src/fbgui/main.cpp @@ -80,7 +80,7 @@ int main(int argc, char *argv[]) { // parse command line arguments using getopt QMap<QString, QString> clOpts; int longIndex = 0; - static const char *optString = "c:u:d:s:t:D:hl:n"; + static const char *optString = "c:u:d:s:t:D:hl:nS:p:e:"; static const struct option longOpts[] = { { "config", required_argument, NULL, 'c' }, { "url", required_argument, NULL, 'u' }, { "download", required_argument, NULL, 'd' }, { "serial", required_argument, NULL, @@ -11,10 +11,29 @@ # -s <path>, --serial=<path> sets path to serial number file # # Note: all path are expected to be absolute. +<<<<<<< HEAD QT_VERSION=Qt-4.8.0 +======= +# +# Adapt these to your own system. +QT_VERSION=Qt-4.7.2 +PATH_TO_FBGUI_BUILD=/home/joe/workspace/fbgui + +# check if network discovery is activated and if running as root +for ARG in $* +do +if [ "x$ARG" = "x-n" ]; then + if [ $(whoami) != "root" ]; then + echo "Network Discovery activated, you need to be root." + exit 1; + fi +fi +done +>>>>>>> 2abf1cec73371fb4a97a078a47f521d23fbf0775 # clean /tmp/fbgui [ -d /tmp/fbgui ] && rm -rf /tmp/fbgui +[ -f /tmp/fbgui.log ] && rm /tmp/fbgui.log [ -f /tmp/fbgui_trigger ] && rm /tmp/fbgui_trigger # path to script (including script name) @@ -31,6 +50,10 @@ display_id=$(grep -n $(whoami) /etc/passwd| head -n 1|awk -F : '{print $1}') # quick sleep to wait for qvfb loading sleep 0.2 # Start fbgui connecting to QVFb with display_id from above. +<<<<<<< HEAD $working_path/../workspace/fbgui/src/fbgui/fbgui -display QVFb:$display_id $@ +======= +$PATH_TO_FBGUI_BUILD/src/fbgui/fbgui -display QVFb:$display_id $@ -e $PATH_TO_FBGUI_BUILD/src/customdhcpcd/cdhcpcd +>>>>>>> 2abf1cec73371fb4a97a078a47f521d23fbf0775 # kill qvfb since fbgui stopped killall qvfb |