コード例 #1
0
def updateObjectBrowser():
    """
    force le regroupement en onglets des QTreeView apres updateObjBrowser
    """
    studyId = sgPyQt.getStudyId()
    sgPyQt.updateObjBrowser(studyId, 1)
    tabObjectBrowser()
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
    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
コード例 #5
0
def updateObjectBrowser():
    """
    force le regroupement en onglets des QTreeView apres updateObjBrowser
    """
    studyId = sgPyQt.getStudyId()
    sgPyQt.updateObjBrowser(studyId, 1)
    tabObjectBrowser()
コード例 #6
0
    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
コード例 #7
0
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
コード例 #8
0
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
コード例 #9
0
    def isActive(self):
        studyId = sgPyQt.getStudyId()
        if _c_CFDGUI.getDocks(studyId) == {}:
            self._CurrentWindow = None

        if self._CurrentWindow != None:
            return True
        else:
            return False
コード例 #10
0
 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)
コード例 #11
0
 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)
コード例 #12
0
    def isActive(self):
        studyId = sgPyQt.getStudyId()
        if _c_CFDGUI.getDocks(studyId) == {}:
            self._CurrentWindow = None

        if self._CurrentWindow != None:
            return True
        else:
            return False
コード例 #13
0
 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)
コード例 #14
0
    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()
コード例 #15
0
 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)
コード例 #16
0
 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)
コード例 #17
0
    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()
コード例 #18
0
    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
コード例 #19
0
    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
コード例 #20
0
    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
コード例 #21
0
    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
コード例 #22
0
 def getStudyCaseXmlNames(self, mw):
     studyId = sgPyQt.getStudyId()
     if _c_CFDGUI != None:
         studyCFDName, caseName, xmlName = _c_CFDGUI.getStudyCaseXmlNames(
             studyId, mw)
     return studyCFDName, caseName, xmlName
コード例 #23
0
 def getCase(self, mw):
     studyId = sgPyQt.getStudyId()
     if _c_CFDGUI != None:
         case  = _c_CFDGUI.getCase(studyId,mw)
     return case
コード例 #24
0
 def getStudyCaseXmlNames(self, mw):
     studyId = sgPyQt.getStudyId()
     if _c_CFDGUI != None:
         studyCFDName, caseName, xmlName  = _c_CFDGUI.getStudyCaseXmlNames(studyId, mw)
     return studyCFDName, caseName, xmlName
コード例 #25
0
 def getCase(self, mw):
     studyId = sgPyQt.getStudyId()
     if _c_CFDGUI != None:
         case = _c_CFDGUI.getCase(studyId, mw)
コード例 #26
0
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
コード例 #27
0
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
コード例 #28
0
    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