def createPopupMenu(popup, context): """ This method is called when popup menu is requested by the user (right click). Should analyze the selection and fill in the popup menu with the corresponding actions. @type popup: C{QPopupMenu} @param popup: popup menu from the Object Browser. @type context: C{String} @param context: equal to 'ObjectBrowser' or 'VTKViewer' for example. """ #log.debug("createPopupMenu -> context = %s" % context) study = CFDSTUDYGUI_DataModel._getStudy() dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) #log.debug("createPopupMenu -> SelectedCount = %s" % sg.SelectedCount()) if sg.SelectedCount() > 0: # Custom Popup menu added or removed regards to the type of the object for i in range(sg.SelectedCount()): entry = sg.getSelected(i) if entry != '': sobj = study.FindObjectID(entry) if sobj is not None: test, anAttr = sobj.FindAttribute("AttributeLocalID") if test: id = anAttr._narrow(SALOMEDS.AttributeLocalID).Value() if id >= 0: if sobj.GetFatherComponent().GetName() == "Mesh": if CFDSTUDYGUI_DataModel.getMeshFromMesh( sobj) == None: meshGroupObject, group = CFDSTUDYGUI_DataModel.getMeshFromGroup( sobj) if meshGroupObject != None: ActionHandler.customPopup(id, popup) if sg.SelectedCount() > 1: popup.removeAction( ActionHandler.commonAction( CFDSTUDYGUI_ActionsHandler. DisplayOnlyGroupMESHAction) ) else: ActionHandler.customPopup(id, popup) popup.removeAction( ActionHandler.commonAction( CFDSTUDYGUI_ActionsHandler. DisplayOnlyGroupMESHAction)) else: ActionHandler.customPopup(id, popup) fathername = sobj.GetFather().GetName() if fathername in ["RESU", "RESU_COUPLING"]: if CFDSTUDYGUI_DataModel.checkType(sobj, CFDSTUDYGUI_DataModel.dict_object["RESUSubFolder"]) or \ CFDSTUDYGUI_DataModel.checkType(sobj, CFDSTUDYGUI_DataModel.dict_object["RESU_COUPLINGSubFolder"]): ActionHandler.customPopup(id, popup) ActionHandler.commonAction( ActionHandler.RemoveAction ).setEnabled(True)
def tabObjectBrowser(): """ tabify DockWidgets which contains QTreeView: Object Browser and CFDSTUDY tree """ dsk = sgPyQt.getDesktop() ldock = dsk.findChildren(QDockWidget) ldocktree = [] # FIXME: if either Salome objectBrowser or Code_Saturne BrowserForm # is renamed, this must be updated. Other treeview objects with # the same names in this list could aslo be spurioulsly docked, # so this test should be improved. grouping all QTreeView objects # should be avoided absolutely, as some of those objets may appear # at a lower level (this was the cause of an extremely irritating # bug in previous versions). for i in ldock: lo = i.findChildren(QTreeView) if len(lo): if hasattr(lo[0], "parent"): p = lo[0].parent() if str(p.objectName()) in ( 'objectBrowser', # Salome OB 'BrowserForm'): # Code_Saturne browser ldocktree.append(i) for i in range(1, len(ldocktree)): dsk.tabifyDockWidget(ldocktree[0], ldocktree[i])
def activate(): """ This method is called when GUI module is being activated. @rtype: C{True} or C{False} @return: C{True} only if the activation is successful. """ log.debug("activate") dsk = sgPyQt.getDesktop() dsk.setTabPosition(Qt.RightDockWidgetArea,QTabWidget.South) dsk.setTabPosition(Qt.LeftDockWidgetArea,QTabWidget.South) ActionHandler = _DesktopMgr.getActionHandler(dsk) env_saturne, msg = CheckCFD_CodeEnv(CFD_Saturne) log.debug("activate -> env_saturne = %s" % env_saturne) if not env_saturne: QMessageBox.critical(ActionHandler.dskAgent().workspace(), "Error", msg, QMessageBox.Ok, 0) return False if msg != "": mess = cfdstudyMess.trMessage(ObjectTR.tr("CFDSTUDY_INVALID_ENV"),[]) + " ; "+ msg cfdstudyMess.aboutMessage(msg) return False else: ActionHandler.DialogCollector.InfoDialog.setCode(env_saturne) ActionHandler._SalomeSelection.currentSelectionChanged.connect(ActionHandler.updateActions) ActionHandler.connectSolverGUI() # Hide the Python Console window layout for dock in sgPyQt.getDesktop().findChildren(QDockWidget): dockTitle = dock.windowTitle() log.debug("activate -> QDockWidget: %s" % dockTitle) if "Object Browser" in str(dockTitle): dock.raise_() dock.show() if dsk.dockWidgetArea(dock) == 0: dsk.addDockWidget(Qt.LeftDockWidgetArea,dock) if dockTitle in ("Python Console", "Console Python", "Message Window"): dock.setVisible(False) dock.hide() return True
def removeDockWindow(self, studyCFDName, caseName, xmlName): """ Close the CFD_study_dock_windows from remove popup menu in object browser """ log.debug("removeDockWindow -> %s %s %s" % (studyCFDName, caseName, xmlName)) dsk = sgPyQt.getDesktop() if _c_CFDGUI != None: _c_CFDGUI.delDock(dsk, studyCFDName, caseName, xmlName)
def getObjectBrowserDock(): dock = None dsk = sgPyQt.getDesktop() studyId = sgPyQt.getStudyId() for dock in dsk.findChildren(QDockWidget): dockTitle = str(dock.windowTitle()) if (dockTitle == 'Object Browser'): return dock
def connectDockWindows(self): """ Show all the dock windows of CFDSTUDY GUI, when activating Salome CFDSTUDY module """ studyId = 1 if _c_CFDGUI != None: _c_CFDGUI.showDocks(studyId) _c_CFDGUI.tabifyDockWindows(sgPyQt.getDesktop(), studyId)
def removeDockWindowfromStudyAndCaseNames(self, studyCFDName, caseName): """ Close the CFD_study_dock_windows if opened from close Study popup menu into the object browser """ log.debug("removeDockWindowfromStudyAndCaseNames -> %s %s" % (studyCFDName, caseName)) dsk = sgPyQt.getDesktop() if _c_CFDGUI != None: _c_CFDGUI.delDockfromStudyAndCaseNames(dsk, studyCFDName, caseName)
def removeDockWindow(self, studyCFDName, caseName, xmlName): """ Close the CFD_study_dock_windows from remove popup menu in object browser """ log.debug("removeDockWindow -> %s %s %s" % (studyCFDName, caseName, xmlName)) dsk = sgPyQt.getDesktop() studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: _c_CFDGUI.delDock(dsk, studyId, studyCFDName, caseName, xmlName)
def deactivate(): """ This method is called when GUI module is being deactivated. """ log.debug("deactivate") dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler.disconnect(ActionHandler._SalomeSelection, SIGNAL('currentSelectionChanged()'), ActionHandler.updateActions) ActionHandler.disconnectSolverGUI()
def resizeObjBrowserDock(self): """ called by closeStudy in CFDSTUDYGUI.py because the Object Browser size is stored into ~/.config/salome/SalomeApprc.xxx file xxx is the salome version """ log.debug("resizeObjectBrowserDock") dsk = sgPyQt.getDesktop() if dsk != None: objectBrowserDockWindow = findObjectBrowserDockWindow() if objectBrowserDockWindow != None: dsk.resizeDocks({objectBrowserDockWindow}, {300},Qt.Horizontal)
def connectDockWindows(self): """ Show all the dock windows of CFDSTUDY GUI, when activating Salome CFDSTUDY module """ studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: _c_CFDGUI.showDocks(studyId) _c_CFDGUI.tabifyDockWindows(sgPyQt.getDesktop(),studyId) updateObjectBrowser()
def setSettings(): """ Stores the selected CFD code and updates action according with current selection and study states in the dekstop manager. """ log.debug("setSettings") dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler.updateActions()
def resizeMainWindowDock(self,visible): """ visible referred to Object Browser dock widget """ log.debug("resizeMainWindowDock") dsk = sgPyQt.getDesktop() if dsk != None: dock = self.sender() if visible: dsk.resizeDocks({dock}, {900},Qt.Horizontal)
def setSettings(): """ Stores the selected CFD code and updates action according with current selection and study states in the desktop manager. """ log.debug("setSettings") dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler.updateActions()
def closeStudy(): """ This method is called when salome study is closed (Salome desktop button File -> close -> close w/o saving button) and Salome Main window desktop is already available """ log.debug("closeStudy") if salome_version.getVersion() >= '7.5.0': dsk = sgPyQt.getDesktop() CFDSTUDYGUI_SolverGUI._c_CFDGUI.cleanAllDock(dsk) ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler._SolverGUI.resizeObjBrowserDock()
def setWorkSpace(ws): """ Stores the SALOME Workspace I{ws} into the Desktop Manager. @type ws: C{QWidget} @param ws: main window's central widget """ log.debug("setWorkSpace") dsk = sgPyQt.getDesktop() _DesktopMgr.setWorkspace(dsk, ws)
def findObjectBrowserDockWindow(): dsk = sgPyQt.getDesktop() ldock = [] if dsk != None: ldock = dsk.findChildren(QDockWidget) objectBrowserDockWindow = None if ldock != []: for i in ldock: if 'Object Browser' in str(i.windowTitle()): objectBrowserDockWindow = i return objectBrowserDockWindow
def setWorkSpace(ws): """ Stores the SALOME Workspace I{ws} into the Desktop Manager. @type ws: C{QWidget} @param ws: main window's central widget """ log.debug("setWorkSpace") dsk = sgPyQt.getDesktop() _DesktopMgr.setWorkspace(dsk, ws) ActionHandler = _DesktopMgr.getActionHandler(dsk)
def setWorkSpace(ws): """ Stores the SALOME Workspace I{ws} into the Desktop Manager. @type ws: C{QWidget} @param ws: main window's central widget """ log.debug("setWorkSpace") dsk = sgPyQt.getDesktop() _DesktopMgr.setWorkspace(dsk, ws) ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler.connectSolverGUI()
def deactivate(): """ This method is called when GUI module is being deactivated. """ log.debug("deactivate") dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) ActionHandler._SalomeSelection.currentSelectionChanged.disconnect(ActionHandler.updateActions) ActionHandler.disconnectSolverGUI() ob = sgPyQt.getObjectBrowser() if ob != None: ob.collapseAll()
def tabObjectBrowser(): """ tabify DockWidgets which contains QTreeView: Object Browser and CFDSTUDY tree """ dsk = sgPyQt.getDesktop() ldock = dsk.findChildren(QDockWidget) ldocktree = [] for i in ldock: lo = i.findChildren(QTreeView) if len(lo): ldocktree.append(i) for i in range(1, len(ldocktree)): dsk.tabifyDockWidget(ldocktree[0], ldocktree[i])
def resizeObjectBrowserDock(self,visible): """ visible referred to Object Browser dock widget """ log.debug("resizeObjectBrowserDock") dsk = sgPyQt.getDesktop() if dsk != None: if visible: objectBrowserDockWindow = findObjectBrowserDockWindow() dsk.resizeDocks({objectBrowserDockWindow}, {300},Qt.Horizontal) else: if self.dockMainWin != None : dsk.resizeDocks({self.dockMainWin}, {900},Qt.Horizontal)
def tabifyCfdGui(): """ tabify DockWidgets which contains CFD study CASE QMainview : CFDSTUDY Main Window """ log.debug("tabifyCfdGui") dsk = sgPyQt.getDesktop() ldockMainWin = [] ldockMainWin = _c_CFDGUI.getDockListe() objectBrowserDockWindow = findObjectBrowserDockWindow() if len(ldockMainWin) >= 1: dsk.splitDockWidget(objectBrowserDockWindow,ldockMainWin[0],Qt.Horizontal) dsk.tabifyDockWidget(objectBrowserDockWindow,ldockMainWin[0]) for i in range(1, len(ldockMainWin)): dsk.tabifyDockWidget(ldockMainWin[0], ldockMainWin[i]) dsk.tabifyDockWidget(objectBrowserDockWindow, ldockMainWin[i])
def createPopupMenu(popup, context): """ This method is called when popup menu is requested by the user (right click). Should analyze the selection and fill in the popup menu with the corresponding actions. @type popup: C{QPopupMenu} @param popup: popup menu from the Object Browser. @type context: C{String} @param context: equal to 'ObjectBrowser' or 'VTKViewer' for example. """ #log.debug("createPopupMenu -> context = %s" % context) study = CFDSTUDYGUI_DataModel._getStudy() dsk = sgPyQt.getDesktop() ActionHandler = _DesktopMgr.getActionHandler(dsk) #log.debug("createPopupMenu -> SelectedCount = %s" % sg.SelectedCount()) if sg.SelectedCount() > 0: # Custom Popup menu added or removed regards to the type of the object for i in range(sg.SelectedCount()): entry = sg.getSelected(i) if entry != '': sobj = study.FindObjectID(entry) if sobj is not None: test, anAttr = sobj.FindAttribute("AttributeLocalID") if test: id = anAttr._narrow(SALOMEDS.AttributeLocalID).Value() if id >= 0: if sobj.GetFatherComponent().GetName() == "Mesh": if CFDSTUDYGUI_DataModel.getMeshFromMesh(sobj) == None: meshGroupObject,group = CFDSTUDYGUI_DataModel.getMeshFromGroup(sobj) if meshGroupObject != None: ActionHandler.customPopup(id, popup) if sg.SelectedCount() > 1: popup.removeAction(ActionHandler.commonAction(CFDSTUDYGUI_ActionsHandler.DisplayOnlyGroupMESHAction)) else: ActionHandler.customPopup(id, popup) popup.removeAction(ActionHandler.commonAction(CFDSTUDYGUI_ActionsHandler.DisplayOnlyGroupMESHAction)) else: if not CFDSTUDYGUI_DataModel.isLinkPathObject(sobj): ActionHandler.customPopup(id, popup)
def activate(): """ This method is called when GUI module is being activated. @rtype: C{True} or C{False} @return: C{True} only if the activation is successful. """ log.debug("activate") global d_activation, studyId dsk = sgPyQt.getDesktop() studyId = sgPyQt.getStudyId() dsk.setTabPosition(Qt.RightDockWidgetArea,QTabWidget.South) dsk.setTabPosition(Qt.LeftDockWidgetArea,QTabWidget.South) if salome_version.getVersion() <= '7.4.0' : if salome.myStudy.FindComponent(__MODULE_NAME__) == None : CFDSTUDYGUI_SolverGUI._c_CFDGUI.cleanAllDock(sgPyQt.getDesktop()) log.debug("activate -> CFDSTUDYGUI_SolverGUI._c_CFDGUI.d_CfdCases = %s" % CFDSTUDYGUI_SolverGUI._c_CFDGUI.d_CfdCases) # instance of the CFDSTUDYGUI_ActionsHandler class for the current desktop ActionHandler = _DesktopMgr.getActionHandler(dsk) if studyId not in d_activation.keys(): d_activation[studyId] = 1 if d_activation[studyId] == 1: d_activation[studyId] = 0 env_saturne, mess1 = CheckCFD_CodeEnv(CFD_Saturne) env_neptune, mess2 = CheckCFD_CodeEnv(CFD_Neptune) log.debug("activate -> env_saturne = %s" % env_saturne) log.debug("activate -> env_neptune = %s" % env_neptune) if not env_saturne and not env_neptune: QMessageBox.critical(ActionHandler.dskAgent().workspace(), "Error", mess1, QMessageBox.Ok, 0) QMessageBox.critical(ActionHandler.dskAgent().workspace(), "Error", mess2, QMessageBox.Ok, 0) d_activation[studyId] = 1 return False if env_neptune: if mess2 != "": Error = "Error: "+ ObjectTR.tr("CFDSTUDY_INVALID_ENV") QMessageBox.critical(ActionHandler.dskAgent().workspace(), Error, mess2, QMessageBox.Ok, 0) d_activation[studyId] = 1 return False else: ActionHandler.DialogCollector.InfoDialog.setCode(env_saturne, env_neptune) elif env_saturne: if mess1 != "": Error = "Error: "+ ObjectTR.tr("CFDSTUDY_INVALID_ENV") QMessageBox.critical(ActionHandler.dskAgent().workspace(), Error, mess1, QMessageBox.Ok, 0) d_activation[studyId] = 1 return False else: ActionHandler.DialogCollector.InfoDialog.setCode(env_saturne, False) ActionHandler.slotStudyLocation() ActionHandler.connect(ActionHandler._SalomeSelection, SIGNAL('currentSelectionChanged()'), ActionHandler.updateActions) ActionHandler.connectSolverGUI() ActionHandler.updateObjBrowser() # Hide the Python Console window layout for dock in sgPyQt.getDesktop().findChildren(QDockWidget): dockTitle = dock.windowTitle() log.debug("activate -> QDockWidget: %s" % dockTitle) if dockTitle in (u"Python Console", u"Console Python", u"Message Window"): dock.setVisible(False) return True
def launchGUI(self, WorkSpace, aCase, sobjXML, Args): """ mw.dockWidgetBrowser is the Browser of the CFD MainView """ log.debug("launchGUI") from code_saturne.cs_gui import process_cmd_line from code_saturne.Base.MainView import MainView if CFD_Code() == CFD_Saturne: from code_saturne.cs_package import package elif CFD_Code() == CFD_Neptune: from neptune_cfd.nc_package import package if sobjXML == None: Title = "unnamed" else: Title = sobjXML.GetName() self.Workspace = WorkSpace pkg = package() case, splash = process_cmd_line(Args) try: mw = MainView(pkg, case, aCase) except: mess = "Error in Opening CFD GUI" QMessageBox.warning(None, "Warning", mess, QMessageBox.Ok, QMessageBox.NoButton) return None # Put the standard panel of the MainView inside a QDockWidget # in the SALOME Desktop aTitle = self.setWindowTitle_CFD(mw, aCase, Title) dsk = sgPyQt.getDesktop() ##### objectBrowserDockWindow = findObjectBrowserDockWindow() self.mainWin = QMainWindow() self.mainWin.setWindowTitle(aTitle) self.mainWin.setCentralWidget(mw.centralwidget) self.mainWin.addDockWidget(Qt.LeftDockWidgetArea,mw.dockWidgetBrowser) ##### self.dockMainWin = QDockWidget(aTitle) self.dockMainWin.setWidget(self.mainWin) ## dsk.addDockWidget(Qt.LeftDockWidgetArea,self.dockMainWin) self.dockMainWin.setVisible(True) self.dockMainWin.show() self.dockMainWin.raise_() objectBrowserDockWindow.visibilityChanged["bool"].connect(self.resizeObjectBrowserDock) #Add Dock windows are managed by CFDGUI_Management class aStudyCFD = aCase.GetFather() aCaseCFD = aCase xmlFileName = str(Title) _c_CFDGUI.set_d_CfdCases(self.dockMainWin, mw, aStudyCFD, aCaseCFD, xmlFileName, sobjXML) dockMain = _c_CFDGUI.getDockWithCFDNames(aStudyCFD.GetName(), aCaseCFD.GetName(), xmlFileName) if dockMain != None: dockMain.visibilityChanged["bool"].connect(self.resizeMainWindowDock) updateObjectBrowser() return mw
def lauchGUI(self, WorkSpace, aCase, sobjXML, Args): """ mw.dockWidgetBrowser is the Browser of the CFD MainView """ log.debug("lauchGUI") from cs_gui import process_cmd_line if CFD_Code() == CFD_Saturne: from cs_package import package from code_saturne.Base.MainView import MainView elif CFD_Code() == CFD_Neptune: from nc_package import package from neptune_cfd.core.MainView import MainView if sobjXML == None: Title = "unnamed" else: Title = sobjXML.GetName() self.Workspace = WorkSpace pkg = package() case, splash = process_cmd_line(Args) mw = MainView(pkg, case, aCase) # Put the standard panel of the MainView inside a QDockWidget # in the SALOME Desktop aTitle = self.setWindowTitle_CFD(mw, aCase, Title) dsk = sgPyQt.getDesktop() dock = QDockWidget(aTitle) dock.setWidget(mw.frame) dock.setMinimumWidth(520) dsk.addDockWidget(Qt.RightDockWidgetArea, dock) dock.setVisible(True) dock.show() # Put the QTreeView of the MainView which is already inside a QDockWidget # in the SALOME Desktop BrowserTitle = aTitle + " Browser" mw.dockWidgetBrowser.setWindowTitle(BrowserTitle) dsk.addDockWidget(Qt.LeftDockWidgetArea, mw.dockWidgetBrowser) mw.dockWidgetBrowser.setVisible(True) mw.dockWidgetBrowser.show() mw.dockWidgetBrowser.raise_() dock.raise_() #Add Dock windows are managed by CFDGUI_Management class studyId = sgPyQt.getStudyId() aStudyCFD = aCase.GetFather() aCaseCFD = aCase xmlFileName = str(Title) _c_CFDGUI.set_d_CfdCases(studyId, dock, mw.dockWidgetBrowser, mw, aStudyCFD, aCaseCFD, xmlFileName, sobjXML) self.connect(dock, SIGNAL("visibilityChanged(bool)"), self.setdockWindowBrowserActivated) self.connect(mw.dockWidgetBrowser, SIGNAL("visibilityChanged(bool)"),self.setdockWindowActivated) self.connect(dock.toggleViewAction(), SIGNAL("toggled(bool)"), self.setdockWB) self.connect(mw.dockWidgetBrowser.toggleViewAction(), SIGNAL("toggled(bool)"), self.setdock) _c_CFDGUI.tabifyDockWindows(dsk, studyId) self.showDockWindows(studyId, xmlFileName, aCaseCFD.GetName(), aStudyCFD.GetName()) updateObjectBrowser() return mw
def closeStudy(aStudyId) : """ This method is called when salome study is closed (Salome desktop button File -> close -> close w/o saving button) and Salome Main window desktop is already available """ if salome_version.getVersion() >= '7.5.0' : CFDSTUDYGUI_SolverGUI._c_CFDGUI.cleanAllDock(sgPyQt.getDesktop())
def activate(): """ This method is called when GUI module is being activated. @rtype: C{True} or C{False} @return: C{True} only if the activation is successful. """ log.debug("activate") global d_activation, studyId dsk = sgPyQt.getDesktop() studyId = sgPyQt.getStudyId() dsk.setTabPosition(Qt.RightDockWidgetArea, QTabWidget.South) dsk.setTabPosition(Qt.LeftDockWidgetArea, QTabWidget.South) if salome_version.getVersion() <= '7.4.0': if salome.myStudy.FindComponent(__MODULE_NAME__) == None: CFDSTUDYGUI_SolverGUI._c_CFDGUI.cleanAllDock(sgPyQt.getDesktop()) log.debug( "activate -> CFDSTUDYGUI_SolverGUI._c_CFDGUI.d_CfdCases = %s" % CFDSTUDYGUI_SolverGUI._c_CFDGUI.d_CfdCases) # instance of the CFDSTUDYGUI_ActionsHandler class for the current desktop ActionHandler = _DesktopMgr.getActionHandler(dsk) if studyId not in list(d_activation.keys()): d_activation[studyId] = 1 if d_activation[studyId] == 1: d_activation[studyId] = 0 env_saturne, mess1 = CheckCFD_CodeEnv(CFD_Saturne) env_neptune, mess2 = CheckCFD_CodeEnv(CFD_Neptune) log.debug("activate -> env_saturne = %s" % env_saturne) log.debug("activate -> env_neptune = %s" % env_neptune) if not env_saturne and not env_neptune: QMessageBox.critical(ActionHandler.dskAgent().workspace(), "Error", mess1, QMessageBox.Ok, 0) QMessageBox.critical(ActionHandler.dskAgent().workspace(), "Error", mess2, QMessageBox.Ok, 0) d_activation[studyId] = 1 return False if env_neptune: if mess2 != "": mess = cfdstudyMess.trMessage( ObjectTR.tr("CFDSTUDY_INVALID_ENV"), []) + " ; " + mess2 cfdstudyMess.aboutMessage(mess) d_activation[studyId] = 1 return False else: ActionHandler.DialogCollector.InfoDialog.setCode( env_saturne, env_neptune) elif env_saturne: if mess1 != "": mess = cfdstudyMess.trMessage( ObjectTR.tr("CFDSTUDY_INVALID_ENV"), []) + " ; " + mess2 cfdstudyMess.aboutMessage(mess) d_activation[studyId] = 1 return False else: ActionHandler.DialogCollector.InfoDialog.setCode( env_saturne, False) ActionHandler._SalomeSelection.currentSelectionChanged.connect( ActionHandler.updateActions) ActionHandler.connectSolverGUI() ActionHandler.updateObjBrowser() # Hide the Python Console window layout for dock in sgPyQt.getDesktop().findChildren(QDockWidget): dockTitle = dock.windowTitle() log.debug("activate -> QDockWidget: %s" % dockTitle) if dockTitle in ("Python Console", "Console Python", "Message Window"): dock.setVisible(False) return True
def launchGUI(self, WorkSpace, aCase, sobjXML, Args): """ mw.dockWidgetBrowser is the Browser of the CFD MainView """ log.debug("launchGUI") from cs_gui import process_cmd_line if CFD_Code() == CFD_Saturne: from cs_package import package from code_saturne.Base.MainView import MainView elif CFD_Code() == CFD_Neptune: from nc_package import package from neptune_cfd.core.MainView import MainView if sobjXML == None: Title = "unnamed" else: Title = sobjXML.GetName() self.Workspace = WorkSpace pkg = package() case, splash = process_cmd_line(Args) try: mw = MainView(pkg, case, aCase) except: mess = "Error in Opening CFD GUI" QMessageBox.warning(None, "Warning", mess, QMessageBox.Ok, QMessageBox.NoButton) return None # Put the standard panel of the MainView inside a QDockWidget # in the SALOME Desktop aTitle = self.setWindowTitle_CFD(mw, aCase, Title) dsk = sgPyQt.getDesktop() dock = QDockWidget(aTitle) dock.setWidget(mw.frame) dock.setMinimumWidth(520) dsk.addDockWidget(Qt.RightDockWidgetArea, dock) dock.setVisible(True) dock.show() # Put the QTreeView of the MainView which is already inside a QDockWidget # in the SALOME Desktop BrowserTitle = aTitle + " Browser" mw.dockWidgetBrowser.setWindowTitle(BrowserTitle) dsk.addDockWidget(Qt.LeftDockWidgetArea, mw.dockWidgetBrowser) mw.dockWidgetBrowser.setVisible(True) mw.dockWidgetBrowser.show() mw.dockWidgetBrowser.raise_() dock.raise_() #Add Dock windows are managed by CFDGUI_Management class studyId = sgPyQt.getStudyId() aStudyCFD = aCase.GetFather() aCaseCFD = aCase xmlFileName = str(Title) _c_CFDGUI.set_d_CfdCases(studyId, dock, mw.dockWidgetBrowser, mw, aStudyCFD, aCaseCFD, xmlFileName, sobjXML) dock.visibilityChanged["bool"].connect( self.setdockWindowBrowserActivated) mw.dockWidgetBrowser.visibilityChanged["bool"].connect( self.setdockWindowActivated) dock.toggleViewAction().toggled["bool"].connect(self.setdockWB) mw.dockWidgetBrowser.toggleViewAction().toggled["bool"].connect( self.setdock) _c_CFDGUI.tabifyDockWindows(dsk, studyId) self.showDockWindows(studyId, xmlFileName, aCaseCFD.GetName(), aStudyCFD.GetName()) updateObjectBrowser() return mw
def closeStudy(aStudyId): """ This method is called when salome study is closed (Salome desktop button File -> close -> close w/o saving button) and Salome Main window desktop is already available """ if salome_version.getVersion() >= '7.5.0': CFDSTUDYGUI_SolverGUI._c_CFDGUI.cleanAllDock(sgPyQt.getDesktop())