diff options
author | Brian Helfrich <helfrich9000@gmail.com> | 2008-01-30 17:29:57 +0000 |
---|---|---|
committer | Brian Helfrich <helfrich9000@gmail.com> | 2008-01-30 17:29:57 +0000 |
commit | 15fa9ee99147abfa125282cf2c1be859d7f34c15 (patch) | |
tree | c494d2946ee543a612ad2d9a42236236e76ecabb | |
parent | a89d14bcf088abd9223dca5ed4f928c5e3c0772f (diff) | |
download | nanoengineer-theirix-15fa9ee99147abfa125282cf2c1be859d7f34c15.tar.gz nanoengineer-theirix-15fa9ee99147abfa125282cf2c1be859d7f34c15.zip |
Added a log dock widget.
-rw-r--r-- | cad/plugins/NanoVision-1/src/KDevelop/nv1.kdevelop | 28 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/LogHandlerWidget.cpp | 39 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/LogHandlerWidget.h | 35 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/LogHandlerWidget.ui | 30 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/ResultsWindow.cpp | 3 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/ResultsWindow.h | 7 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/main.cpp | 19 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/nv1.cpp | 12 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/nv1.h | 3 | ||||
-rw-r--r-- | cad/plugins/NanoVision-1/src/src.pro | 9 |
10 files changed, 154 insertions, 31 deletions
diff --git a/cad/plugins/NanoVision-1/src/KDevelop/nv1.kdevelop b/cad/plugins/NanoVision-1/src/KDevelop/nv1.kdevelop index 75f9b96a2..16a7d8f04 100644 --- a/cad/plugins/NanoVision-1/src/KDevelop/nv1.kdevelop +++ b/cad/plugins/NanoVision-1/src/KDevelop/nv1.kdevelop @@ -14,8 +14,8 @@ <projectname>nv1</projectname> <projectdirectory>.</projectdirectory> <absoluteprojectpath>false</absoluteprojectpath> - <description></description> - <defaultencoding></defaultencoding> + <description/> + <defaultencoding/> </general> <kdevfileview> <groups> @@ -68,7 +68,7 @@ <includePaths>.;</includePaths> </codecompletion> <creategettersetter> - <prefixGet></prefixGet> + <prefixGet/> <prefixSet>set</prefixSet> <prefixVariable>m_,_</prefixVariable> <parameterName>theValue</parameterName> @@ -121,16 +121,16 @@ </kdevdoctreeview> <kdevdebugger> <general> - <dbgshell></dbgshell> + <dbgshell/> <breakpoints/> <programargs/> <gdbpath>/usr/bin/gdb</gdbpath> <breakonloadinglibs>true</breakonloadinglibs> <separatetty>false</separatetty> <floatingtoolbar>false</floatingtoolbar> - <configGdbScript></configGdbScript> - <runShellScript></runShellScript> - <runGdbScript></runGdbScript> + <configGdbScript/> + <runShellScript/> + <runGdbScript/> <raiseGDBOnStart>false</raiseGDBOnStart> </general> <display> @@ -142,11 +142,11 @@ </kdevdebugger> <kdevtrollproject> <run> - <mainprogram></mainprogram> - <programargs></programargs> + <mainprogram>/home/bh/11Nano/SVN-D/cad/plugins/NanoVision-1/src/KDevelop</mainprogram> + <programargs/> <directoryradio>executable</directoryradio> - <globaldebugarguments></globaldebugarguments> - <globalcwd></globalcwd> + <globaldebugarguments/> + <globalcwd>/home/bh/11Nano/SVN-D/cad/plugins/NanoVision-1/src/KDevelop</globalcwd> <useglobalprogram>false</useglobalprogram> <terminal>false</terminal> <autocompile>false</autocompile> @@ -158,7 +158,7 @@ <GLT/> <CppUnit/> <HDF5_Consumer/> - <nv1></nv1> + <nv1/> </runarguments> <cwd> <HDF5_SimResultsImportExport>/home/rmanoj/Nanorex/SVN/trunk/cad/plugins/NanoVision-1/src/KDevelop</HDF5_SimResultsImportExport> @@ -172,7 +172,7 @@ <GLT/> <CppUnit/> <HDF5_Consumer/> - <nv1></nv1> + <nv1/> </debugarguments> </run> <general> @@ -183,7 +183,7 @@ <runmultiplejobs>false</runmultiplejobs> <numberofjobs>1</numberofjobs> <dontact>false</dontact> - <makebin></makebin> + <makebin/> <prio>0</prio> <envvars/> </make> diff --git a/cad/plugins/NanoVision-1/src/LogHandlerWidget.cpp b/cad/plugins/NanoVision-1/src/LogHandlerWidget.cpp new file mode 100644 index 000000000..71819be04 --- /dev/null +++ b/cad/plugins/NanoVision-1/src/LogHandlerWidget.cpp @@ -0,0 +1,39 @@ +// Copyright 2008 Nanorex, Inc. See LICENSE file for details. + +#include "LogHandlerWidget.h" + + +/* CONSTRUCTOR */ +LogHandlerWidget::LogHandlerWidget(NXLogLevel logLevel, QWidget* parent) + : QWidget(parent), NXLogHandler(logLevel), Ui_LogHandlerWidget() { + + setupUi(this); + suppressed = false; +} + + +void LogHandlerWidget::setSuppressed(bool suppressed) { + if (!suppressed) { + textEdit->setText(storedMessages); + storedMessages = ""; + } + this->suppressed = suppressed; +} + + +/* FUNCTION: publish */ +void LogHandlerWidget::publish(LogRecord logRecord) { + mutex.lock(); + QString message = + QString("%1 [%2] %3 %4") + .arg(logRecord.getDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")) + .arg(LogLevelNames[logRecord.getLogLevel()], -7) + .arg(logRecord.getSource().length() == 0 ? + "" : logRecord.getSource().append(":").c_str()) + .arg(logRecord.getMessage().c_str()); + if (suppressed) + storedMessages.append(message); + else + textEdit->append(message); + mutex.unlock(); +} diff --git a/cad/plugins/NanoVision-1/src/LogHandlerWidget.h b/cad/plugins/NanoVision-1/src/LogHandlerWidget.h new file mode 100644 index 000000000..bae9d1b74 --- /dev/null +++ b/cad/plugins/NanoVision-1/src/LogHandlerWidget.h @@ -0,0 +1,35 @@ +// Copyright 2008 Nanorex, Inc. See LICENSE file for details. + +#ifndef LOGHANDLERWIDGET_H +#define LOGHANDLERWIDGET_H + +#include <QWidget> +#include <QTextEdit> +#include <QHBoxLayout> + +#include "Nanorex/Utility/NXLogger.h" +using namespace Nanorex; + +#include "ui_LogHandlerWidget.h" + + +/* CLASS: LogHandlerWidget */ +class LogHandlerWidget : public QWidget, public NXLogHandler, + private Ui_LogHandlerWidget { + Q_OBJECT + +public: + LogHandlerWidget(NXLogLevel logLevel, QWidget* parent = 0); + ~LogHandlerWidget() { } + + void setSuppressed(bool suppressed); + void publish(LogRecord logRecord); + +private: + QMutex mutex; + + bool suppressed; + QString storedMessages; +}; + +#endif diff --git a/cad/plugins/NanoVision-1/src/LogHandlerWidget.ui b/cad/plugins/NanoVision-1/src/LogHandlerWidget.ui new file mode 100644 index 000000000..80438935d --- /dev/null +++ b/cad/plugins/NanoVision-1/src/LogHandlerWidget.ui @@ -0,0 +1,30 @@ +<ui version="4.0" > + <class>LogHandlerWidget</class> + <widget class="QWidget" name="LogHandlerWidget" > + <property name="windowTitle" > + <string>Form</string> + </property> + <layout class="QHBoxLayout" > + <property name="margin" > + <number>9</number> + </property> + <property name="spacing" > + <number>6</number> + </property> + <item> + <widget class="QTextEdit" name="textEdit" > + <property name="font" > + <font> + <pointsize>8</pointsize> + </font> + </property> + <property name="readOnly" > + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/cad/plugins/NanoVision-1/src/ResultsWindow.cpp b/cad/plugins/NanoVision-1/src/ResultsWindow.cpp index 19b7630c0..2de3d2813 100644 --- a/cad/plugins/NanoVision-1/src/ResultsWindow.cpp +++ b/cad/plugins/NanoVision-1/src/ResultsWindow.cpp @@ -4,8 +4,9 @@ /* CONSTRUCTOR */ -ResultsWindow::ResultsWindow(QWidget *parent) +ResultsWindow::ResultsWindow(NXEntityManager* entityManager, QWidget* parent) : QWidget(parent), Ui_ResultsWindow() { + this->entityManager = entityManager; setupUi(this); diff --git a/cad/plugins/NanoVision-1/src/ResultsWindow.h b/cad/plugins/NanoVision-1/src/ResultsWindow.h index ce9f02e39..9a11bfbbf 100644 --- a/cad/plugins/NanoVision-1/src/ResultsWindow.h +++ b/cad/plugins/NanoVision-1/src/ResultsWindow.h @@ -14,6 +14,9 @@ #include <QDockWidget> #include <QWorkspace> +#include "Nanorex/Interface/NXEntityManager.h" +using namespace Nanorex; + #include "ui_ResultsWindow.h" #include "DataWindow.h" #include "ViewParametersWindow.h" @@ -28,7 +31,7 @@ public: QWorkspace* workspace; QSignalMapper* windowMapper; - ResultsWindow(QWidget *parent = 0); + ResultsWindow(NXEntityManager* entityManager, QWidget* parent = 0); ~ResultsWindow(); bool loadFile(const QString &fileName); @@ -44,6 +47,8 @@ private slots: private: QString curFile; + NXEntityManager* entityManager; + void setCurrentFile(const QString &fileName); QString strippedName(const QString &fullFileName); }; diff --git a/cad/plugins/NanoVision-1/src/main.cpp b/cad/plugins/NanoVision-1/src/main.cpp index 1753ac3e4..658aebbfe 100644 --- a/cad/plugins/NanoVision-1/src/main.cpp +++ b/cad/plugins/NanoVision-1/src/main.cpp @@ -20,16 +20,21 @@ int main(int argc, char *argv[]) { "Nanorex", "NanoVision-1"); // Start logger + // splash->showMessage("Starting logger..."); splash->repaint(); int logLevel = 0; - NXLogger logger; + NXLogger* logger = new NXLogger(); + + // Console logging if (settings.value("Logging/EnableConsoleLogging", true).toBool()) { logLevel = settings.value("Logging/ConsoleLoggingLevel", NXLogLevel_Info).toInt(); - logger.addHandler(new NXConsoleLogHandler((NXLogLevel)logLevel)); + logger->addHandler(new NXConsoleLogHandler((NXLogLevel)logLevel)); } + + // File logging if (settings.value("Logging/EnableFileLogging", true).toBool()) { logLevel = settings.value("Logging/FileLoggingLevel", @@ -39,9 +44,13 @@ int main(int argc, char *argv[]) { logFilename.append("log"); NXFileLogHandler* logHandler = new NXFileLogHandler(qPrintable(logFilename), (NXLogLevel)logLevel); - logger.addHandler(logHandler); + logger->addHandler(logHandler); } + // Dock widget logging + LogHandlerWidget* logHandlerWidget = new LogHandlerWidget(NXLogLevel_Info); + logger->addHandler(logHandlerWidget); + // Initialize entity manager and load import/export plugins splash->showMessage("Loading entity manager..."); splash->repaint(); @@ -58,10 +67,10 @@ int main(int argc, char *argv[]) { delete properties; // Create main window - nv1* mainWindow = new nv1(entityManager); + nv1* mainWindow = new nv1(entityManager, logHandlerWidget); mainWindow->show(); - sleep(1); + sleep(1); splash->finish(mainWindow); delete splash; int appReturn = app->exec(); diff --git a/cad/plugins/NanoVision-1/src/nv1.cpp b/cad/plugins/NanoVision-1/src/nv1.cpp index 2c69bb613..31534cf0e 100644 --- a/cad/plugins/NanoVision-1/src/nv1.cpp +++ b/cad/plugins/NanoVision-1/src/nv1.cpp @@ -4,15 +4,17 @@ /* CONSTRUCTOR */ -nv1::nv1(NXEntityManager* entityManager) : QMainWindow() { +nv1::nv1(NXEntityManager* entityManager, LogHandlerWidget* logHandlerWidget) + : QMainWindow() { this->entityManager = entityManager; setWindowIcon(QPixmap(":/Icons/eye-icon.png")); + setWindowTitle(tr("NanoVision-1")); mainWindowTabs = new MainWindowTabWidget(this); setCentralWidget(mainWindowTabs); - resultsWindow = new ResultsWindow(this); + resultsWindow = new ResultsWindow(entityManager, this); mainWindowTabs->vboxLayout->removeWidget(mainWindowTabs->widget); delete mainWindowTabs->widget; mainWindowTabs->vboxLayout->addWidget(resultsWindow); @@ -25,12 +27,10 @@ nv1::nv1(NXEntityManager* entityManager) : QMainWindow() { readSettings(); - setWindowTitle(tr("NanoVision-1")); - // Setup log dock widget - QDockWidget *dock = new QDockWidget(tr("Log"), this); + QDockWidget* dock = new QDockWidget(tr("Log"), this); dock->setAllowedAreas(Qt::BottomDockWidgetArea); - dock->setWidget(new QLabel("log entries")); + dock->setWidget(logHandlerWidget); addDockWidget(Qt::BottomDockWidgetArea, dock); } diff --git a/cad/plugins/NanoVision-1/src/nv1.h b/cad/plugins/NanoVision-1/src/nv1.h index 70dc37dbd..2b7cd1987 100644 --- a/cad/plugins/NanoVision-1/src/nv1.h +++ b/cad/plugins/NanoVision-1/src/nv1.h @@ -12,6 +12,7 @@ using namespace Nanorex; #include "ResultsWindow.h" +#include "LogHandlerWidget.h" #include "MainWindowTabWidget.h" @@ -20,7 +21,7 @@ class nv1 : public QMainWindow { Q_OBJECT public: - nv1(NXEntityManager* entityManager); + nv1(NXEntityManager* entityManager, LogHandlerWidget* logHandlerWidget); ~nv1(); protected: diff --git a/cad/plugins/NanoVision-1/src/src.pro b/cad/plugins/NanoVision-1/src/src.pro index a6dafc633..456488e95 100644 --- a/cad/plugins/NanoVision-1/src/src.pro +++ b/cad/plugins/NanoVision-1/src/src.pro @@ -4,14 +4,16 @@ SOURCES += nv1.cpp \ MainWindowTabWidget.cpp \ ViewParametersWindow.cpp \ TrajectoryGraphicsPane.cpp \ - DataWindow.cpp + DataWindow.cpp \ + LogHandlerWidget.cpp HEADERS += nv1.h \ ResultsWindow.h \ MainWindowTabWidget.h \ ViewParametersWindow.h \ TrajectoryGraphicsPane.h \ DataWindow.h \ - main.h + main.h \ + LogHandlerWidget.h TEMPLATE = app CONFIG += warn_on \ thread \ @@ -21,7 +23,8 @@ RESOURCES = application.qrc FORMS += ResultsWindow.ui \ MainWindowTabWidget.ui \ ViewParametersWindow.ui \ - TrajectoryGraphicsPane.ui + TrajectoryGraphicsPane.ui \ + LogHandlerWidget.ui INCLUDEPATH += ../include \ $(OPENBABEL_INCPATH) |