X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FImageMPR%2FImageMPR.cxx;h=ce1f2fc769c7f39232d3902adbb18353cb367936;hb=31e4cf1f3580efa059d3ffad14ba6a15d2372f5c;hp=5754e3d9d120d866d1c72d0e62f94d18d8a1b22f;hpb=5c1b2267b487286b208c71a6bdeb7ed5b5ccc370;p=cpPlugins.git diff --git a/appli/ImageMPR/ImageMPR.cxx b/appli/ImageMPR/ImageMPR.cxx index 5754e3d..ce1f2fc 100644 --- a/appli/ImageMPR/ImageMPR.cxx +++ b/appli/ImageMPR/ImageMPR.cxx @@ -60,10 +60,25 @@ ImageMPR:: void ImageMPR:: UpdateActualFilter( ) { - /* TODO - if( !( this->m_Plugins->HasActiveFilter( ) ) ) - return; + if( !( this->m_Plugins.HasActiveFilter( ) ) ) + return; + + // Update filter + TPlugins::TStringContainer outputs; + if( + !( + this->m_Plugins.UpdateActiveFilter( + outputs, this->m_ActiveFilterMainInput + ) + ) + ) + return; + + // Show outputs + for( auto oIt = outputs.begin( ); oIt != outputs.end( ); ++oIt ) + std::cout << *oIt << std::endl; + /* TODO std::vector< std::string > outputs; std::string err = this->m_Plugins->UpdateActiveFilter( outputs ); if( err == "" ) @@ -151,18 +166,8 @@ _AssociatePluginsToMenu( ) if( name == "" ) \ return; \ TImage* image = this->m_Plugins.GetData< TImage >( name ); \ - vtkImageData* vimage = image->GetVTK< vtkImageData >( ); \ - if( vimage != NULL ) \ - { \ - this->m_UI->MPR->AddImage( vimage, name ); \ - this->m_UI->MPR->ShowData( name ); \ - } \ - else \ - QMessageBox::critical( \ - this, \ - QMessageBox::tr( "Error showing image." ), \ - QMessageBox::tr( "Image read, but no valid VTK conversion found." ) \ - ); \ + this->m_UI->MPR->AddData( image, name, "" ); \ + this->m_UI->MPR->ShowData( name ); \ } \ catch( std::exception& err ) \ { \ @@ -255,9 +260,8 @@ _execPlugin( ) return; // Get IO names - TPlugins::TStringContainer inputs, outputs; + TPlugins::TStringContainer inputs; this->m_Plugins.GetActiveFilterInputsNames( inputs ); - this->m_Plugins.GetActiveFilterOutputsNames( outputs ); // Configure inputs if( inputs.size( ) > 1 ) @@ -265,80 +269,29 @@ _execPlugin( ) // TODO } else if( inputs.size( ) == 1 ) + { + this->m_ActiveFilterMainInput = this->m_UI->MPR->GetSelectedData( ); this->m_Plugins.ConnectInputInActiveFilter( - this->m_UI->MPR->GetSelectedData( ), *( inputs.begin( ) ) + this->m_ActiveFilterMainInput, *( inputs.begin( ) ) ); - // Configure outputs - for( auto oIt = outputs.begin( ); oIt != outputs.end( ); ++oIt ) - this->m_Plugins.SetOutputNameInActiveFilter( - filter_name + "_" + *oIt, *oIt - ); + } // fi // Configure paramereters auto dlg_res = this->m_Plugins.ConfigureActiveFilter( ); if( dlg_res == TPlugins::TProcessObject::DialogResult_Cancel ) { + // Just deactivate filter, since it was canceled this->m_Plugins.DeactivateFilter( ); - // TODO - } - - - /* - QMenu* menu = dynamic_cast< QMenu* >( action->parentWidget( ) ); - if( menu == NULL ) return; - std::string filter_cate = menu->title( ).toStdString( ); - - // Activate filter - if( !( this->m_Plugins->ActivateFilter( filter_name ) ) ) - return; - - // Associate inputs - std::vector< std::string > inputs = - this->m_Plugins->GetActiveFilterInputsNames( ); - if( inputs.size( ) == 1 ) - { - std::string data_name = this->m_UI->MPR->GetSelectedData( ); - this->m_Plugins->ConnectInputInActiveFilter( data_name, inputs[ 0 ] ); - } - else if( inputs.size( ) > 1 ) - { - QMessageBox::critical( - this, - tr( "Error executing" ), - tr( "Filter has multiple inputs: NOT YET IMPLEMENTED!!!" ) - ); - return; - - } // fi - - // Associate outputs - std::vector< std::string > outputs = - this->m_Plugins->GetActiveFilterOutputsNames( ); - for( auto oIt = outputs.begin( ); oIt != outputs.end( ); ++oIt ) - this->m_Plugins->SetOutputNameInActiveFilter( - filter_name + "_" + *oIt, *oIt - ); - - // Configure filter - TPlugins::TProcessObject::DialogResult dlg_res = - this->m_Plugins->ConfigureActiveFilter( ); - if( dlg_res == TPlugins::TProcessObject::DialogResult_Cancel ) - { - this->m_Plugins->DeactivateFilter( ); - return; - - } // fi - - // Execute filter and associate outputs - if( dlg_res == TPlugins::TProcessObject::DialogResult_NoModal ) - { + } + else if( dlg_res == TPlugins::TProcessObject::DialogResult_NoModal ) + { + // Execute automatic filter and associate outputs this->UpdateActualFilter( ); - this->m_Plugins->DeactivateFilter( ); + this->m_Plugins.DeactivateFilter( ); - } // fi - */ + } // fi } // -------------------------------------------------------------------------