From df164cd05bd953a3222f0a4a84f642803cd1d0e8 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Thu, 17 Jun 2010 13:38:05 +0000
Subject: [PATCH] SequenceViewer, exports for addEntity

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2416 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/pymod/export_sequence_viewer.cc   |  2 ++
 .../gui/src/sequence_viewer/sequence_model.cc |  4 ++--
 .../gui/src/sequence_viewer/sequence_model.hh |  4 ++--
 .../sequence_viewer/sequence_view_object.cc   |  2 +-
 .../sequence_viewer/sequence_view_object.hh   |  2 +-
 .../src/sequence_viewer/sequence_viewer.cc    | 20 ++++++++++++++-----
 .../src/sequence_viewer/sequence_viewer.hh    |  8 ++++++--
 7 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/modules/gui/pymod/export_sequence_viewer.cc b/modules/gui/pymod/export_sequence_viewer.cc
index 32e79ed48..fb2c7e45f 100644
--- a/modules/gui/pymod/export_sequence_viewer.cc
+++ b/modules/gui/pymod/export_sequence_viewer.cc
@@ -100,6 +100,8 @@ void export_SequenceViewer()
     .def(init<bool, optional<QWidget*> >())
     .def("Show", &SequenceViewer::show)
     .def("Hide", &SequenceViewer::hide)
+    .def("AddEntity", &SequenceViewer::AddEntity)
+    .def("RemoveEntity", &SequenceViewer::RemoveEntity)
     .def("AddAlignment", &SequenceViewer::AddAlignment)
     .def("RemoveAlignment", &SequenceViewer::RemoveAlignment)
     .def("GetDisplayModes", &get_display_modes_a)
diff --git a/modules/gui/src/sequence_viewer/sequence_model.cc b/modules/gui/src/sequence_viewer/sequence_model.cc
index 923a24c0f..293ffe2d6 100644
--- a/modules/gui/src/sequence_viewer/sequence_model.cc
+++ b/modules/gui/src/sequence_viewer/sequence_model.cc
@@ -95,7 +95,7 @@ void SequenceModel::InsertSequences(const QList<QString>& names, seq::SequenceLi
   this->endInsertRows();
 }
 
-void SequenceModel::InsertGfxEntity(gfx::EntityP& ent){
+void SequenceModel::InsertGfxEntity(const gfx::EntityP& ent){
   mol::EntityView view=ent->GetView();
   int size = view.GetChainList().size();
   int cols = this->columnCount();
@@ -111,7 +111,7 @@ void SequenceModel::InsertGfxEntity(gfx::EntityP& ent){
   this->endInsertRows();
 }
 
-void SequenceModel::RemoveGfxEntity(gfx::EntityP& entity){
+void SequenceModel::RemoveGfxEntity(const gfx::EntityP& entity){
   if(SequenceViewObject* obj = this->GetItem(entity)){
     int index = this->GetGlobalRow(obj,0);
     this->beginRemoveRows(QModelIndex(),index,index+obj->GetRowCount()-1);
diff --git a/modules/gui/src/sequence_viewer/sequence_model.hh b/modules/gui/src/sequence_viewer/sequence_model.hh
index d0afbbc4d..f05241df0 100644
--- a/modules/gui/src/sequence_viewer/sequence_model.hh
+++ b/modules/gui/src/sequence_viewer/sequence_model.hh
@@ -47,13 +47,13 @@ public:
   SequenceModel(QObject *parent = 0);
 
   void InsertAlignment(const seq::AlignmentHandle& alignment);
-  void InsertGfxEntity(gfx::EntityP& entity);
+  void InsertGfxEntity(const gfx::EntityP& entity);
   void InsertChain(QString& name, mol::ChainView& view);
   void InsertSequence(QString& name, seq::SequenceHandle& seq);
   void InsertSequences(const QList<QString>& names, seq::SequenceList& list);
 
   void RemoveAlignment(const seq::AlignmentHandle& alignment);
-  void RemoveGfxEntity(gfx::EntityP& entity);
+  void RemoveGfxEntity(const gfx::EntityP& entity);
 
   QModelIndexList GetModelIndexes(gfx::EntityP& entity, const mol::EntityView& view);
   QModelIndexList GetModelIndexes(const QString& subject, const QString& sequence_name=QString());
diff --git a/modules/gui/src/sequence_viewer/sequence_view_object.cc b/modules/gui/src/sequence_viewer/sequence_view_object.cc
index 8b63980bf..fdc227d2e 100644
--- a/modules/gui/src/sequence_viewer/sequence_view_object.cc
+++ b/modules/gui/src/sequence_viewer/sequence_view_object.cc
@@ -70,7 +70,7 @@ SequenceViewObject::SequenceViewObject(mol::ChainView& chain, const QString& nam
   this->SetDisplayMode(properties_mode);
 }
 
-SequenceViewObject::SequenceViewObject(gfx::EntityP& entity, QObject* parent): BaseViewObject(parent), entity_(entity)
+SequenceViewObject::SequenceViewObject(const gfx::EntityP& entity, QObject* parent): BaseViewObject(parent), entity_(entity)
 {
   this->Init();
   mol::EntityView view =entity->GetView();
diff --git a/modules/gui/src/sequence_viewer/sequence_view_object.hh b/modules/gui/src/sequence_viewer/sequence_view_object.hh
index 2ad390a95..ba862c724 100644
--- a/modules/gui/src/sequence_viewer/sequence_view_object.hh
+++ b/modules/gui/src/sequence_viewer/sequence_view_object.hh
@@ -50,7 +50,7 @@ public:
   SequenceViewObject(seq::SequenceList& sequences, const QList<QString>& names, QObject* parent = 0);
   SequenceViewObject(seq::SequenceHandle& sequence, const QString& name, QObject* parent = 0);
   SequenceViewObject(mol::ChainView& chain, const QString& name, QObject* parent = 0);
-  SequenceViewObject(gfx::EntityP& entity, QObject* parent = 0);
+  SequenceViewObject(const gfx::EntityP& entity, QObject* parent = 0);
   SequenceViewObject(QObject* parent = 0);
 
   void Init();
diff --git a/modules/gui/src/sequence_viewer/sequence_viewer.cc b/modules/gui/src/sequence_viewer/sequence_viewer.cc
index c5d86d783..a2d530e5b 100644
--- a/modules/gui/src/sequence_viewer/sequence_viewer.cc
+++ b/modules/gui/src/sequence_viewer/sequence_viewer.cc
@@ -166,20 +166,30 @@ void SequenceViewer::InitActions()
   connect(menu_action, SIGNAL(triggered(bool)), this, SLOT(DisplayMenu()));
 }
 
+void SequenceViewer::AddEntity(const gfx::EntityP& entity)
+{
+  model_->InsertGfxEntity(entity);
+  seq_table_view_->resizeColumnsToContents();
+  seq_table_view_->resizeRowsToContents();
+  this->UpdateSearchBar();
+}
+
+void SequenceViewer::RemoveEntity(const gfx::EntityP& entity)
+{
+  model_->RemoveGfxEntity(entity);
+}
+
 void SequenceViewer::NodeAdded(const gfx::GfxNodeP& n)
 {
   if (gfx::EntityP o=boost::dynamic_pointer_cast<gfx::Entity>(n)) {
-    model_->InsertGfxEntity(o);
-    seq_table_view_->resizeColumnsToContents();
-    seq_table_view_->resizeRowsToContents();
+    this->AddEntity(o);
   }
-  this->UpdateSearchBar();
 }
 
 void SequenceViewer::NodeRemoved(const gfx::GfxNodeP& node)
 {
   if (gfx::EntityP o=boost::dynamic_pointer_cast<gfx::Entity>(node)) {
-    model_->RemoveGfxEntity(o);
+    this->RemoveEntity(o);
   }
 }
 
diff --git a/modules/gui/src/sequence_viewer/sequence_viewer.hh b/modules/gui/src/sequence_viewer/sequence_viewer.hh
index e4f8d55f2..c5190ace9 100644
--- a/modules/gui/src/sequence_viewer/sequence_viewer.hh
+++ b/modules/gui/src/sequence_viewer/sequence_viewer.hh
@@ -49,10 +49,11 @@ public:
   SequenceViewer(bool stand_alone=true, QWidget* parent=NULL);
   ~SequenceViewer();
 
-  virtual void NodeAdded(const gfx::GfxNodeP& node);
-  virtual void NodeRemoved(const gfx::GfxNodeP& node);
   virtual void SelectionChanged(const gfx::GfxObjP& o, const mol::EntityView& view);
 
+  virtual void AddEntity(const gfx::EntityP& entity);
+  virtual void RemoveEntity(const gfx::EntityP& entity);
+
   virtual void AddAlignment(const seq::AlignmentHandle& alignment);
   virtual void RemoveAlignment(const seq::AlignmentHandle& alignment);
 
@@ -78,6 +79,9 @@ public slots:
   void OnSearchBarUpdate(const QString&, bool, const QString&);
 
 private:
+  virtual void NodeAdded(const gfx::GfxNodeP& node);
+  virtual void NodeRemoved(const gfx::GfxNodeP& node);
+
   void InitActions();
   void InitView();
   void InitSearchBar();
-- 
GitLab