From a7e1a62f9be04ad5526242f5e874da1116b680e3 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Wed, 21 Apr 2010 13:13:37 +0000
Subject: [PATCH] New Sip Exports for WidgetWrapper

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2089 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/pymod/export_widget.cc | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/modules/gui/pymod/export_widget.cc b/modules/gui/pymod/export_widget.cc
index 7eca6987c..0834cec32 100644
--- a/modules/gui/pymod/export_widget.cc
+++ b/modules/gui/pymod/export_widget.cc
@@ -37,8 +37,12 @@ using namespace ost::gui;
 
 struct WrappedWidget : public Widget
 {
-  WrappedWidget(PyObject *p, QObject* object):
-       Widget(dynamic_cast<QWidget*>(object)){ }
+  WrappedWidget(PyObject *p, object py_object):
+       Widget(NULL,NULL){
+    if(QWidget* widget = get_cpp_qobject<QWidget>(py_object)){
+      this->SetInternalWidget(widget);
+    }
+  }
 
   virtual bool Restore(const QString& prefix){return true;}
 
@@ -50,11 +54,13 @@ struct WrappedWidget : public Widget
 
 void export_Widget()
 {
-  class_<Widget, WrappedWidget, boost::noncopyable>("WrappedWidget",init<QObject*>())
+  class_<Widget, WrappedWidget, boost::noncopyable>("WrappedWidget",init<object>())
     .def("Save", &WrappedWidget::Save)
     .def("Restore", &WrappedWidget::Restore)
     .def("SetDestroyOnClose", &WrappedWidget::SetDestroyOnClose)
     .def("DestroyOnClose", &WrappedWidget::DestroyOnClose)
+    .def("GetQObject",&get_py_qobject<Widget>)
+    .add_property("qobject", &get_py_qobject<Widget>)
   ;
 }
 
-- 
GitLab