From 118744b3fb76bbf48c71358ea9328612502442af Mon Sep 17 00:00:00 2001 From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Fri, 28 May 2010 15:09:39 +0000 Subject: [PATCH] New SequenceViewer, not listen to scene if aligment loaded from file browser git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2300 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/gui/src/file_loader.cc | 2 +- modules/gui/src/sequence/sequence_viewer.cc | 20 ++++++++++++-------- modules/gui/src/sequence/sequence_viewer.hh | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/modules/gui/src/file_loader.cc b/modules/gui/src/file_loader.cc index 8552f2dcf..9ae9885b8 100644 --- a/modules/gui/src/file_loader.cc +++ b/modules/gui/src/file_loader.cc @@ -322,7 +322,7 @@ gfx::GfxObjP FileLoader::TryLoadAlignment(const QString& filename, io::SequenceI handler->Import(seq_list,filename.toStdString()); seq::AlignmentHandle alignment = seq::AlignmentFromSequenceList(seq_list); gui::MainArea* main_area = gui::GostyApp::Instance()->GetPerspective()->GetMainArea(); - SequenceViewerV2* viewer = new SequenceViewerV2(main_area); + SequenceViewerV2* viewer = new SequenceViewerV2(false,main_area); viewer->AddAlignment(alignment); main_area->AddWidget(filename,viewer); throw io::IOFileAlreadyLoadedException("Loaded in DataViewer"); diff --git a/modules/gui/src/sequence/sequence_viewer.cc b/modules/gui/src/sequence/sequence_viewer.cc index 00ab97447..392309d70 100644 --- a/modules/gui/src/sequence/sequence_viewer.cc +++ b/modules/gui/src/sequence/sequence_viewer.cc @@ -70,9 +70,11 @@ struct GetNodesVisitor: public gfx::GfxNodeVisitor { gfx::NodePtrList GetNodes(){return nodes_;} }; -SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent) +SequenceViewerV2::SequenceViewerV2(bool listen_scene, QWidget* parent): Widget(NULL,parent) { - gfx::Scene::Instance().AttachObserver(this); + if(listen_scene){ + gfx::Scene::Instance().AttachObserver(this); + } model_ = new SequenceModel(this); QVBoxLayout* layout = new QVBoxLayout(this); @@ -102,12 +104,14 @@ SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent) connect(seq_table_view_,SIGNAL(CopyEvent(QKeyEvent*)),this,SLOT(CopyEvent(QKeyEvent*))); connect(seq_table_view_,SIGNAL(MouseWheelEvent(QWheelEvent*)),this,SLOT(MouseWheelEvent(QWheelEvent*))); - gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode(); - GetNodesVisitor gnv; - gfx::Scene::Instance().Apply(gnv); - gfx::NodePtrList list = gnv.GetNodes(); - for(unsigned int i=0; i<list.size();i++){ - this->NodeAdded(list[i]); + if(listen_scene){ + gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode(); + GetNodesVisitor gnv; + gfx::Scene::Instance().Apply(gnv); + gfx::NodePtrList list = gnv.GetNodes(); + for(unsigned int i=0; i<list.size();i++){ + this->NodeAdded(list[i]); + } } } diff --git a/modules/gui/src/sequence/sequence_viewer.hh b/modules/gui/src/sequence/sequence_viewer.hh index b4134f1fe..10af21bb3 100644 --- a/modules/gui/src/sequence/sequence_viewer.hh +++ b/modules/gui/src/sequence/sequence_viewer.hh @@ -44,7 +44,7 @@ namespace ost { namespace gui { class DLLEXPORT_OST_GUI SequenceViewerV2 : public Widget, public gfx::SceneObserver { Q_OBJECT public: - SequenceViewerV2(QWidget* parent=NULL); + SequenceViewerV2(bool listen_scene=true, QWidget* parent=NULL); ~SequenceViewerV2(); virtual void NodeAdded(const gfx::GfxNodeP& node); -- GitLab