def updateObjectBrowser(): """ force le regroupement en onglets des QTreeView apres updateObjBrowser """ studyId = sgPyQt.getStudyId() sgPyQt.updateObjBrowser(studyId, 1) tabObjectBrowser()
def setdockWindowBrowserActivated(self, visible): """ mw is the Main CFD window allocated by MainView code When we click on a cfd study window tab, the cfd study window appears and the associated CFD window browser raises too """ studyId = sgPyQt.getStudyId() dock = self.sender() log.debug("setdockWindowBrowserActivated -> %s" % (dock, )) if not visible: return #if dock.isActiveWindow() == False: #return if _c_CFDGUI != None: dockWB = _c_CFDGUI.getdockWB(studyId, dock) if dockWB != None: dockWB.activateWindow() dockWB.show() dockWB.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdockWindowBrowserActivated -> mw = %s" % (mw, )) ob = sgPyQt.getObjectBrowser() # Clear the current selection in the SALOME object browser, which does not match with the shown dock window ob.clearSelection() else: self._CurrentWindow = None
def setdockWindowBrowserActivated(self, visible): """ mw is the Main CFD window allocated by MainView code When we click on a cfd study window tab, the cfd study window appears and the associated CFD window browser raises too """ studyId = sgPyQt.getStudyId() dock = self.sender() log.debug("setdockWindowBrowserActivated -> %s" % (dock,)) if not visible: return #if dock.isActiveWindow() == False: #return if _c_CFDGUI != None: dockWB = _c_CFDGUI.getdockWB(studyId, dock) if dockWB != None: dockWB.activateWindow() dockWB.show() dockWB.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdockWindowBrowserActivated -> mw = %s" % (mw,)) ob = sgPyQt.getObjectBrowser() # Clear the current selection in the SALOME object browser, which does not match with the shown dock window ob.clearSelection() else: self._CurrentWindow = None
def setdockWindowActivated(self, visible): """ mv is the Main CFD window allocated by MainView code When we click on a CFD window browser tab, the CFD window browser appears and the associated cfd study window raises too """ studyId = sgPyQt.getStudyId() dockWB = self.sender() log.debug("setdockWindowActivated -> %s" % (dockWB,)) if not visible: return #if dockWB.isActiveWindow() == False: #return if _c_CFDGUI != None: dock = _c_CFDGUI.getdock(studyId, dockWB) if dock != None: dock.activateWindow() dock.show() dock.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdockWindowActivated -> mw = %s" % (mw,)) ob = sgPyQt.getObjectBrowser() # effacer la selection en cours ob.clearSelection() else: self._CurrentWindow = None
def setdockWindowActivated(self, visible): """ mv is the Main CFD window allocated by MainView code When we click on a CFD window browser tab, the CFD window browser appears and the associated cfd study window raises too """ studyId = sgPyQt.getStudyId() dockWB = self.sender() log.debug("setdockWindowActivated -> %s" % (dockWB, )) if not visible: return #if dockWB.isActiveWindow() == False: #return if _c_CFDGUI != None: dock = _c_CFDGUI.getdock(studyId, dockWB) if dock != None: dock.activateWindow() dock.show() dock.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdockWindowActivated -> mw = %s" % (mw, )) ob = sgPyQt.getObjectBrowser() # effacer la selection en cours ob.clearSelection() else: self._CurrentWindow = None
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 isActive(self): studyId = sgPyQt.getStudyId() if _c_CFDGUI.getDocks(studyId) == {}: self._CurrentWindow = None if self._CurrentWindow != None: return True else: return False
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 disconnectDockWindows(self): """ Hide the dock windows of CFDSTUDY GUI, when activating another Salome module We can have one or several of them with the right click on the main menu bar of Salome """ studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: _c_CFDGUI.hideDocks(studyId)
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 removeDockWindowfromStudyAndCaseNames(self, studyCFDName, caseName): """ Close the CFD_study_dock_windows if opened from close Study popup menu into the object browser """ log.debug("removeDockWindow -> %s %s" % (studyCFDName, caseName)) dsk = sgPyQt.getDesktop() studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: _c_CFDGUI.delDockfromStudyAndCaseNames(dsk, studyId, studyCFDName, caseName)
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 setdock(self, istoggled): studyId = sgPyQt.getStudyId() dockWB = self.sender().parent() log.debug("setdock -> %s" % (dockWB, )) if _c_CFDGUI != None: dock = _c_CFDGUI.getdock(studyId, dockWB) if dock != None: dock.setVisible(dockWB.isVisible()) if istoggled: dock.show() dock.raise_() dockWB.show() dockWB.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdock -> mw = %s" % (mw, )) else: self._CurrentWindow = None
def setdock(self, istoggled): studyId = sgPyQt.getStudyId() dockWB = self.sender().parent() log.debug("setdock -> %s" % (dockWB,)) if _c_CFDGUI != None: dock = _c_CFDGUI.getdock(studyId, dockWB) if dock != None: dock.setVisible(dockWB.isVisible()) if istoggled: dock.show() dock.raise_() dockWB.show() dockWB.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdock -> mw = %s" % (mw,)) else: self._CurrentWindow = None
def setdockWB(self, istoggled): """ istoggled referred to CFD Window dock widget """ log.debug("setdockWB") studyId = sgPyQt.getStudyId() dock = self.sender().parent() log.debug("setdockWB -> %s" % (dock, )) if _c_CFDGUI != None: dockWB = _c_CFDGUI.getdockWB(studyId, dock) if dockWB != None: dockWB.setVisible(istoggled) #dock.isVisible()) if istoggled: dock.show() dock.raise_() dockWB.show() dockWB.raise_() mw = _c_CFDGUI.getMW(studyId, dock) self._CurrentWindow = mw mw.activateWindow() log.debug("setdockWB -> mw = %s" % (mw, )) else: self._CurrentWindow = None
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 getStudyCaseXmlNames(self, mw): studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: studyCFDName, caseName, xmlName = _c_CFDGUI.getStudyCaseXmlNames( studyId, mw) return studyCFDName, caseName, xmlName
def getCase(self, mw): studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: case = _c_CFDGUI.getCase(studyId,mw) return case
def getStudyCaseXmlNames(self, mw): studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: studyCFDName, caseName, xmlName = _c_CFDGUI.getStudyCaseXmlNames(studyId, mw) return studyCFDName, caseName, xmlName
def getCase(self, mw): studyId = sgPyQt.getStudyId() if _c_CFDGUI != None: case = _c_CFDGUI.getCase(studyId, mw)
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 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