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
Beispiel #2
0
    def slotCopyFrom(self):
        """
        Call into ui_SetTreeLocationDialog.py from setTreeLocationDialog.ui built with qtdesigner
        for option --copy-from
        """

        if not self.findChild(QCheckBox, "checkBoxCopyFrom").isChecked():
            self.findChild(QWidget, "copyFromCase_widget").hide()
            return

        CopyFromCasePath = ""
        if self.findChild(QLineEdit, "StudyDirName").text() != "":
            CopyFromCasePath = QFileDialog.getExistingDirectory(
                None, ObjectTR.tr("SET_CASE_LOCATION_BROWSE_CAPTION"))

            if CopyFromCasePath == None or str(CopyFromCasePath) == "":
                self.findChild(QCheckBox, "checkBoxCopyFrom").setChecked(False)
                return

        self.CaseRefName = os.path.abspath(str(CopyFromCasePath))
        # check if it is a case directory
        if not self.isCfdCaseDir(self.CaseRefName):
            mess = cfdstudyMess.trMessage(self.tr("CASE_DLG_ERROR_MESS"),
                                          [self.CaseRefName])
            cfdstudyMess.aboutMessage(mess)
            self.findChild(QWidget, "copyFromCase_widget").hide()
            self.findChild(QCheckBox, "checkBoxCopyFrom").setChecked(False)
            return
        CaseRefDATAPath = os.path.join(self.CaseRefName, "DATA")
        if "NeptuneGUI" in os.listdir(CaseRefDATAPath) and self.findChild(
                QRadioButton, "radioButtonSaturne").isChecked():
            mess = cfdstudyMess.trMessage(
                self.tr("CASE_COPYFROM_NEPTUNE_DLG_ERROR_MESS"), [])
            cfdstudyMess.aboutMessage(mess)
            self.findChild(QWidget, "copyFromCase_widget").hide()
            self.findChild(QCheckBox, "checkBoxCopyFrom").setChecked(False)
            return
        if "SaturneGUI" in os.listdir(CaseRefDATAPath) and self.findChild(
                QRadioButton, "radioButtonNeptune").isChecked():
            mess = cfdstudyMess.trMessage(
                self.tr("CASE_COPYFROM_SATURNE_DLG_ERROR_MESS"), [])
            cfdstudyMess.aboutMessage(mess)
            self.findChild(QWidget, "copyFromCase_widget").hide()
            self.findChild(QCheckBox, "checkBoxCopyFrom").setChecked(False)
            return

        self.findChild(QWidget, "copyFromCase_widget").show()
        self.findChild(QLineEdit, "copyFromCase").setText(self.CaseRefName)
        self.findChild(QDialogButtonBox, "buttonBox").button(
            QDialogButtonBox.Ok).setEnabled(True)
Beispiel #3
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
Beispiel #4
0
    def accept(self):
        aDirLE = self.findChild(QLineEdit, "StudyDirName")
        aNameLE = self.findChild(QLineEdit, "StudyLineEdit")
        aCaseLE = self.findChild(QLineEdit, "CaseLineEdit")
        CreateOption = self.findChild(QCheckBox, "checkBoxCreate")
        Neptune = self.findChild(QRadioButton, "radioButtonNeptune")
        Saturne = self.findChild(QRadioButton, "radioButtonSaturne")
        self.CaseNames = str(self.findChild(QLineEdit, "CaseLineEdit").text())
        self.CopyFromOption = self.findChild(QCheckBox,
                                             "checkBoxCopyFrom").isChecked()
        self.CouplingSaturneSyrthes = self.findChild(
            QCheckBox, "checkBoxCouplingSaturneSyrthes").isChecked()
        self.Nprocs = str(self.findChild(QLineEdit, "NprocsLineEdit").text())
        if aNameLE.text() == "":
            mess = cfdstudyMess.trMessage(self.tr("LOCATION_DLG_ERROR_MESS"),
                                          [])
            cfdstudyMess.criticalMessage(mess)
            return False

        # check study directory
        aStudyDir = str(aDirLE.text())
        # Load from study dir + study name
        if aNameLE.text() != aNameLE.text():
            raise ValueError("Names must not contain special characters.")

        aStudyDirName = str(aNameLE.text())
        self.StudyPath = os.path.join(aStudyDir, aStudyDirName)
        self.StudyName = aStudyDirName

        if Neptune.isChecked():
            self.code = "NEPTUNE_CFD"
        else:
            self.code = "Code_Saturne"

        if self.checkBoxLoad.isChecked():
            studyObj = CFDSTUDYGUI_DataModel.FindStudyByPath(self.StudyPath)
            if studyObj != None:
                mess = cfdstudyMess.trMessage(
                    self.tr("LOCATION_DLG_ERROR_OPEN_MESS"), [self.StudyPath])
                cfdstudyMess.aboutMessage(mess)
                self.reinit()
                return False
            if self.StudyName == '':
                mess = cfdstudyMess.trMessage(
                    self.tr("LOCATION_DLG_ERROR_MESS"), [])
                cfdstudyMess.criticalMessage(mess)
                self.reinit()
                return False
            if not CFDSTUDYGUI_Commons.isaSaturneSyrthesCouplingStudy(
                    self.StudyPath):
                if not CFDSTUDYGUI_Commons.isaCFDStudy(self.StudyPath):
                    mess = cfdstudyMess.trMessage(
                        self.tr("NOT_A_STUDY_DIRECTORY"),
                        [self.StudyPath, "CFD", "SYRTHES"])
                    cfdstudyMess.criticalMessage(mess)
                    self.reinit()
                    return False

        # ckeck case name
        if self.checkBoxCreate.isChecked():
            if self.StudyName == '':
                mess = cfdstudyMess.trMessage(
                    self.tr("LOCATION_DLG_ERROR_MESS"), [aStudyDir])
                cfdstudyMess.criticalMessage(mess)
                return False
            self.CaseNames = str(aCaseLE.text())
            self.CreateOption = True
            if self.CouplingSaturneSyrthes:
                self.SyrthesCase = str(
                    self.findChild(QLineEdit, "syrthesCase").text())
                if self.SyrthesCase == "":
                    mess = cfdstudyMess.trMessage(
                        self.tr("EMPTY_SYRTHES_CASENAME_MESS"), [])
                    cfdstudyMess.criticalMessage(mess)
                    return False
        SetTreeLocationDialog.accept(self)