Check for frame compatibility before apply modules

This commit is contained in:
jfmcarreira committed 2014-11-04 00:36:19 +00:00
1 parent 58b19940f3
commit 4d1c312af8
1 file changed
+24 -13
+24 -13
View File
@@ -105,6 +105,7 @@ SubWindowHandle* ModulesHandle::enableModuleIf( PlaYUVerModuleIf *pcCurrModuleIf
SubWindowHandle* interfaceChild = NULL;
QString windowName;
QVector<SubWindowHandle*> subWindowList;
UInt numberOfFrames = pcCurrModuleIf->m_cModuleDef.m_uiNumberOfFrames;
if( numberOfFrames > MODULE_REQUIRES_ONE_FRAME ) // Show dialog to select sub windows
{
@@ -113,6 +114,7 @@ SubWindowHandle* ModulesHandle::enableModuleIf( PlaYUVerModuleIf *pcCurrModuleIf
{
QStringList selectedWindows = dialogWindowsSelection.getSelectedWindows();
SubWindowHandle *subWindow;
for( Int j = 0; j < selectedWindows.size(); j++ )
{
for( Int i = 0; i < m_pcMdiArea->subWindowList().size(); i++ )
@@ -120,26 +122,44 @@ SubWindowHandle* ModulesHandle::enableModuleIf( PlaYUVerModuleIf *pcCurrModuleIf
subWindow = qobject_cast<SubWindowHandle *>( m_pcMdiArea->subWindowList().at( i ) );
if( subWindow->getWindowName() == selectedWindows.at( j ) )
{
subWindowList.append( subWindow );
pcCurrModuleIf->m_pcSubWindow[j] = subWindow;
}
}
}
}
else
// Check for same fmt in more than one frame modules
for( Int i = 1; i < subWindowList.size(); i++ )
{
pcCurrModuleIf->m_pcAction->setChecked( false );
return interfaceChild;
if( !subWindowList.at( i )->getCurrFrame()->haveSameFmt( subWindowList.at( 0 )->getCurrFrame()) )
{
subWindowList.clear();
break;
}
}
}
else
{
windowName.append( pcSubWindow->getWindowName() );
pcCurrModuleIf->m_pcSubWindow[0] = pcSubWindow;
subWindowList.append( pcSubWindow );
}
if( subWindowList.size() == 0 )
{
pcCurrModuleIf->m_pcAction->setChecked( false );
return interfaceChild;
}
windowName.append( " <" );
windowName.append( pcCurrModuleIf->m_cModuleDef.m_pchModuleName );
windowName.append( ">" );
for( Int i = 0; i < subWindowList.size(); i++ )
{
pcCurrModuleIf->m_pcSubWindow[i] = subWindowList.at( i );
pcCurrModuleIf->m_pcSubWindow[i]->disableModule();
}
pcCurrModuleIf->m_pcDisplaySubWindow = NULL;
if( pcCurrModuleIf->m_cModuleDef.m_iModuleType == FRAME_PROCESSING_MODULE )
{
@@ -165,19 +185,10 @@ SubWindowHandle* ModulesHandle::enableModuleIf( PlaYUVerModuleIf *pcCurrModuleIf
pcCurrModuleIf->m_pcDockWidget->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable );
pcCurrModuleIf->m_pcDockWidget->setAllowedAreas( Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea );
pcCurrModuleIf->m_pcDockWidget->setWidget( pcCurrModuleIf->m_pcModuleDock );
//pcCurrModuleIf->m_pcDockWidget->setAttribute( Qt::WA_DeleteOnClose );
m_pcParent->addDockWidget( Qt::RightDockWidgetArea, pcCurrModuleIf->m_pcDockWidget );
//connect( pcCurrModuleIf->m_pcDockWidget, SIGNAL( visibilityChanged(bool) ), pcCurrModuleIf->m_pcModuleDock, SLOT( visibilityChangedSlot(bool) ) );
}
}
// Disable existing Module
for( UInt i = 0; i < numberOfFrames; i++ )
{
pcCurrModuleIf->m_pcSubWindow[i]->disableModule();
}
// Create Module
pcCurrModuleIf->create( pcCurrModuleIf->m_pcSubWindow[0]->getCurrFrame() );