// See issues 0021307, 0021373
BusyLocker lock( myBlocked );
+ QString name = modName;
+ if ( !name.isEmpty() && !moduleTitle( modName ).isEmpty() )
+ name = moduleTitle( modName );
+
bool res = false;
- if ( !modName.isEmpty() )
+ if ( !name.isEmpty() )
{
setProperty("activateModule", true);
- CAM_Module* mod = module( modName );
+ CAM_Module* mod = module( name );
if ( !mod )
- mod = loadModule( modName );
+ mod = loadModule( name );
addModule( mod );
if ( mod )
if ( prevMod )
actName = prevMod->moduleName();
- if ( actName == modName )
+ QString name = modName;
+ if ( !name.isEmpty() && !moduleTitle( modName ).isEmpty() )
+ name = moduleTitle( modName );
+
+ if ( actName == name )
return true;
- putInfo( tr( "ACTIVATING_MODULE" ).arg( modName ) );
+ putInfo( tr( "ACTIVATING_MODULE" ).arg( name ) );
saveDockWindowsState();
if ( infoPanel() )
infoPanel()->clear();
- bool status = CAM_Application::activateModule( modName );
+ bool status = CAM_Application::activateModule( name );
updateModuleActions();
\internal
*/
const char* DEFAULT_SECTION = "SalomePyQt";
+
+ struct Activator
+ {
+ QWidget* myActiveWindow;
+ QWidget* myFocusedWidget;
+ Activator()
+ {
+ myActiveWindow = QApplication::activeWindow();
+ myFocusedWidget = QApplication::focusWidget();
+ QApplication::setActiveWindow( getApplication()->desktop() );
+ }
+ ~Activator()
+ {
+ if ( myActiveWindow )
+ QApplication::setActiveWindow( myActiveWindow );
+ if ( myFocusedWidget )
+ myFocusedWidget->setFocus();
+ }
+ };
}
/*!
virtual void Execute()
{
if ( LightApp_Application* anApp = getApplication() ) {
+ Activator activator;
myResult = anApp->activateModule( myModuleName );
}
}
SUIT_ViewWindow* wnd = getWnd( myWndId );
MESSAGE("window id:" << myWndId << " SUIT_ViewWindow*: " << wnd);
if ( wnd ) {
+ Activator activator;
wnd->setFocus();
myResult = true;
}