Index: trunk/GnssCenter/main/app.cpp
===================================================================
--- trunk/GnssCenter/main/app.cpp	(revision 5082)
+++ trunk/GnssCenter/main/app.cpp	(revision 5086)
@@ -44,2 +44,8 @@
   }
 }
+
+//  
+////////////////////////////////////////////////////////////////////////////
+void t_app::slotMessage(QByteArray msg) {
+  qDebug() << msg;
+}
Index: trunk/GnssCenter/main/app.h
===================================================================
--- trunk/GnssCenter/main/app.h	(revision 5082)
+++ trunk/GnssCenter/main/app.h	(revision 5086)
@@ -18,4 +18,7 @@
   const QString& confFileName() const {return _confFileName;}
 
+ public slots:
+  void slotMessage(QByteArray msg);
+
  private:
   QString                _confFileName;
Index: trunk/GnssCenter/main/mainwin.cpp
===================================================================
--- trunk/GnssCenter/main/mainwin.cpp	(revision 5082)
+++ trunk/GnssCenter/main/mainwin.cpp	(revision 5086)
@@ -19,4 +19,5 @@
 #include "settings.h" 
 #include "mdiarea.h" 
+#include "app.h" 
 
 using namespace std;
@@ -135,4 +136,12 @@
   t_pluginAction* action = dynamic_cast<t_pluginAction*>(sender());
   QWidget* widget = action->_factIface->create();
+  t_app* app = dynamic_cast<t_app*>(qApp);
+  if (app) {
+    const QMetaObject* metaObj = widget->metaObject();
+    QByteArray bncMessageName = QMetaObject::normalizedSignature("bncMessage(QByteArray)");
+    if (metaObj->indexOfSignal(bncMessageName) != -1) {
+      connect(widget, SIGNAL(bncMessage(QByteArray)), app, SLOT(slotMessage(QByteArray)));
+    }
+  }
   widget->setMinimumSize(500, 300);
   QMdiSubWindow* subWindow = _mdi->addSubWindow((QWidget*) widget);
