diff --git a/modules/gui/pymod/export_sequence_viewer.cc b/modules/gui/pymod/export_sequence_viewer.cc index 32e79ed48d3eb9e90f0f8aa5aa072388907c4e22..fb2c7e45fa38274c375a36e9c39d48debe6b2012 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 923a24c0fc2bb2adac5bb72b0be5bf5f21f0862f..293ffe2d6291148c330b9cdb56df2fff547493d8 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 d0afbbc4d8d8f7d5ed192d9ee6cab239f753fbaf..f05241df018cbb6d6736d7cb676fa69a46f9c52d 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 8b63980bf5fa0a9f1142df964ec8dc5cb8454a7a..fdc227d2eb41ae1323f1c9b7a01bba8e62d7831e 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 2ad390a95bd9a19a91ae3db86c05ac90a297e2ec..ba862c724efba112968fdc735f0f1cc1271a4492 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 c5d86d7834cb9557d387faefb0f96d02c243eec3..a2d530e5bce7b1faca2f7f74148de1af9e8af4f3 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 e4f8d55f2638b6abfc260e4eec4bf6a43c629a54..c5190ace95dbdafb1e808b10a475f36457b24a87 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();