From eb4a9b4a0169db14cee072d98111cddcf4bcd4c2 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Wed, 21 Apr 2010 13:13:27 +0000
Subject: [PATCH] New sip export for Perspective

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2079 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/pymod/export_gosty.cc         | 10 ++++++++++
 modules/gui/pymod/export_perspective.cc   |  1 +
 modules/gui/pymod/scene/init_inspector.py |  4 ++--
 scripts/init.py                           |  3 +--
 4 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/modules/gui/pymod/export_gosty.cc b/modules/gui/pymod/export_gosty.cc
index 88967d519..88aacd059 100644
--- a/modules/gui/pymod/export_gosty.cc
+++ b/modules/gui/pymod/export_gosty.cc
@@ -28,6 +28,8 @@ using namespace boost::python;
 #include <ost/gui/tools/tool_options_win.hh>
 
 #include "transfer_ownership.hh"
+#include "sip_handler.hh"
+
 #include "python_shell_proxy.hh"
 #include "tool_options_win_proxy.hh"
 #include "scene_win_proxy.hh"
@@ -84,6 +86,13 @@ void app_add_widget_to_app_a(GostyApp* app, const QString& ident,
   }
 }
 
+void app_add_widget_to_app_b(GostyApp* app, const QString& ident,
+                               object py_object)
+{
+  if(QWidget* widget = get_cpp_qobject<QWidget>(py_object)){
+    app->AddWidgetToApp(ident, widget);
+  }
+}
 
 void export_Gosty()
 {
@@ -112,6 +121,7 @@ void export_Gosty()
                   make_function(&GostyApp::GetPerspective, 
                                 return_value_policy<reference_existing_object>()))
     .def("AddWidgetToApp", &app_add_widget_to_app_a)
+    .def("AddWidgetToApp", &app_add_widget_to_app_b)
     .def("GetPerspective", &GostyApp::GetPerspective, 
          return_value_policy<reference_existing_object>())
   ;
diff --git a/modules/gui/pymod/export_perspective.cc b/modules/gui/pymod/export_perspective.cc
index d7367b700..bf5f14b3f 100644
--- a/modules/gui/pymod/export_perspective.cc
+++ b/modules/gui/pymod/export_perspective.cc
@@ -57,6 +57,7 @@ void export_Perspective()
                   return_value_policy<reference_existing_object>()))
     .add_property("panels", make_function(&Perspective::GetPanels,
                   return_value_policy<reference_existing_object>()))
+    .add_property("menubar", make_function(&app_get_menu_bar))
   ;
 }
 
diff --git a/modules/gui/pymod/scene/init_inspector.py b/modules/gui/pymod/scene/init_inspector.py
index 03e88ef63..748012691 100644
--- a/modules/gui/pymod/scene/init_inspector.py
+++ b/modules/gui/pymod/scene/init_inspector.py
@@ -18,6 +18,7 @@
 #------------------------------------------------------------------------------
 
 import sip
+
 from ost import gui
 from ost import gfx
 from PyQt4 import QtCore, QtGui
@@ -45,8 +46,7 @@ def _InitInspector():
   mywidget = InspectorDialog(app.gl_win.qobject)
   mywidget.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.Tool)
   mywidget.show()
-  unwrapped = gui.BPQtHandle(sip.unwrapinstance(mywidget))
-  app.AddWidgetToApp("InspectorDialog", unwrapped)  
+  app.AddWidgetToApp("InspectorDialog", mywidget)  
   menu_bar=app.perspective.GetMenuBar()
   InitInspectorMenu(mywidget,menu_bar)
 
diff --git a/scripts/init.py b/scripts/init.py
index e012b6118..1fcf39cb8 100644
--- a/scripts/init.py
+++ b/scripts/init.py
@@ -1,5 +1,4 @@
 import __main__
-import sip
 import sys
 import optparse
 from ost import io, mol, seq, geom, conop, gui
@@ -50,7 +49,7 @@ def _InitFrontEnd():
   app.SetAppTitle("DNG")
   main_area=app.perspective.main_area
   _InitPanels(app, app.perspective.panels)
-  _InitMenuBar(app.perspective.GetMenuBar())
+  _InitMenuBar(app.perspective.menubar)
   _InitSpaceNav(app.perspective.panels.qobject)
   _InitContextMenu()
   main_area.AddPersistentWidget("3D Scene", "gl_win" , app.gl_win.qobject, int(QtCore.Qt.WindowMaximized))
-- 
GitLab