]> vaikene.ee Git - evaf/commitdiff
The LogView widget is now subclassed from Gui::Panel and adds itself to the document...
authorEnar Väikene <enar@vaikene.net>
Thu, 1 Dec 2011 14:17:44 +0000 (16:17 +0200)
committerEnar Väikene <enar@vaikene.net>
Thu, 1 Dec 2011 14:17:44 +0000 (16:17 +0200)
* Is currently hardcoded to use the SdiWindow::iSdiWindow
* The name of the panel defaults to "LogView", but can be changed in the XML file attribute "panelName".

src/plugins/LogView/CMakeLists.txt
src/plugins/LogView/logview.cpp
src/plugins/LogView/logview.h
src/plugins/LogView/version.h

index 557cacc4eb9881d5ef7a09be5a103b9eba360ad2..8f68dd18c712bd2b30c94040b7fc0b7021b65b86 100644 (file)
@@ -11,7 +11,7 @@ add_definitions(-DLOGVIEW_LIBRARY)
 include_directories(${eVaf_INCLUDE})
 
 # Required eVaf libraries
-set(eVaf_LIBRARIES CommonLib PluginsLib)
+set(eVaf_LIBRARIES CommonLib PluginsLib GuiLib)
 
 # Source files
 set(SRCS
index 2eaae975d2ea4eae1338eeeb417d000d5d1f893a..1f75c58759a43c873a24bc376e06cd661ffcf764 100644 (file)
 #include <Common/Globals>
 #include <Common/iLogger>
 #include <Common/iApp>
+#include <Common/iRegistry>
+#include <SdiWindow/iSdiWindow>
 
 #include <QtGui>
+#include <QXmlStreamReader>
 
 
 using namespace eVaf;
@@ -243,11 +246,14 @@ void Widget::saveToFile()
 
 //-------------------------------------------------------------------
 
-Window::Window(QWidget * parent, Qt::WindowFlags flags)
-    : QWidget(parent, flags)
+Window::Window(QString const & args, QWidget * parent, Qt::WindowFlags flags)
+    : Gui::Panel(parent, flags)
 {
     setObjectName(QString("%1-Window").arg(VER_MODULE_NAME_STR));
 
+    SdiWindow::iSdiWindow * win = evafQueryInterface<SdiWindow::iSdiWindow>("iSdiWindow");
+    win->addPanel(getPanelName(args), this);
+
     setWindowTitle(tr("Messages"));
 
     Common::iLogger * logger = Common::iLogger::instance();
@@ -295,6 +301,25 @@ Window::~Window()
     EVAF_INFO("%s destroyed", qPrintable(objectName()));
 }
 
+QString Window::getPanelName(QString const & args) const
+{
+    QString panelName = "LogView";
+
+    QXmlStreamReader xml(args);
+    while (!xml.atEnd()) {
+        xml.readNext();
+        if (xml.isStartElement() && xml.name() == "attributes") {
+            if (xml.attributes().hasAttribute("panelName")) {
+                QString s = xml.attributes().value("panelName").toString();
+                if (!s.isEmpty())
+                    panelName = s;
+            }
+        }
+    }
+
+    return panelName;
+}
+
 bool Window::event(QEvent * e)
 {
     if (e->type() == QEvent::StatusTip) {
@@ -371,9 +396,7 @@ Module::~Module()
 
 bool Module::init(QString const & args)
 {
-    Q_UNUSED(args);
-
-    wWindow = new Window();
+    wWindow = new Window(args);
 
     EVAF_INFO("%s initialized", qPrintable(objectName()));
 
index 1bfe6a8228b62c30943efa09787ee95fd3ecfa25..dd768585587f7e7cf5e8a19ffc6ea5f34409f4f7 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <Plugins/iPlugin>
 #include <Common/iLogger>
+#include <Gui/Panel>
 
 #include <QObject>
 #include <QString>
@@ -171,13 +172,13 @@ private:
 /**
  * The log view window
  */
-class Window : public QWidget
+class Window : public Gui::Panel
 {
     Q_OBJECT
 
 public:
 
-    Window(QWidget * parent = 0, Qt::WindowFlags flags = 0);
+    Window(QString const & args, QWidget * parent = 0, Qt::WindowFlags flags = 0);
 
     virtual ~Window();
 
@@ -195,6 +196,8 @@ private: // Methods
 
     void restoreSettings();
 
+    QString getPanelName(QString const & args) const;
+
 
 private: // Members
 
index d8d31338dee47ed37b0b11254aca75de61c169d6..b1893b17b41e889b06c3f8f564493402c60769fc 100644 (file)
 /**
  * Module/library version number in the form major,minor,release,build
  */
-#define VER_FILE_VERSION                0,1,1,2
+#define VER_FILE_VERSION                0,2,1,3
 
 /**
  * Module/library version number in the string format (shall end with \0)
  */
-#define VER_FILE_VERSION_STR            "0.1.1.2\0"
+#define VER_FILE_VERSION_STR            "0.2.1.3\0"
 
 /**
  * Module/library name (shall end with \0)