예제 #1
0
 def findEndOFFile(self):
     q = QLabel('Text not found !')
     q.setPixmap(QPixmap(':/images/icons/wrap.png'))
     self.statusBar.addWidget(q)
     self.statusBar.showMessage(
         '     End of page found, restart from top !', 2000)
     QTimer.singleShot(2000, lambda: self.statusBar.removeWidget(q))
예제 #2
0
파일: lpystudio.py 프로젝트: jvail/lpy
    def __init__(self, parent=None, withinterpreter=True):
        """
        :param parent : parent window
        """
        QMainWindow.__init__(self, parent)
        ComputationTaskManager.__init__(self)
        lsmw.Ui_MainWindow.__init__(self)

        self.setObjectName('LPYMainWindow')
        self.setWindowIcon(QIcon(":/images/icons/mango.png"))

        import weakref
        LPyWindow.instances.append(weakref.ref(self))

        self.withinterpreter = withinterpreter
        self.setupUi(self)
        self.editToolBar.hide()
        lpydock.initDocks(self)

        QTimer.singleShot(1000, lambda: lpydock.initShell(self))

        self.preferences = lpypreferences.LpyPreferences(self)
        icon = QIcon()
        icon.addPixmap(QPixmap(":/images/icons/history.png"), QIcon.Normal,
                       QIcon.Off)
        self.menuRecents.setIcon(icon)
        self.simulations = []
        self.currentSimulationId = None
        self.history = []
        self.historymaxsize = 50
        self.fileBackupEnabled = True
        self.codeBackupEnabled = True
        self.fitAnimationView = True
        self.fitRunView = True
        self.with_thread = False
        self.showPyCode = False
        self.displayMetaInfo = False
        self.reloadAtStartup = True
        self.fileMonitoring = True
        self.exitWithoutPrompt = False
        self.cCompilerPath = ''
        self.profilingMode = ProfilingWithFinalPlot
        self.desc_items = {
            '__authors__': self.authorsEdit,
            '__institutes__': self.intitutesEdit,
            '__copyright__': self.copyrightEdit,
            '__description__': self.descriptionEdit,
            '__references__': self.referenceEdit
        }
        self.com_mutex = QMutex()
        self.com_waitcondition = QWaitCondition()
        self.killsimudialog = KillSimulationDialog(self)
        self.plotter = LpyPlotter(self)
        self.use_own_view3D = False
        self.viewer = Viewer
        registerPlotter(self.plotter)

        class ViewerFuncAborter:
            def __init__(self):
                self.__shouldAbort = False
                self.__registered = False

            def shouldAbort(self):
                self.__shouldAbort = True

            def reset(self):
                self.__shouldAbort = False
                if not self.__registered:
                    self.__registered = True
                    Viewer.setDialogAbortFunc(self)

            def __call__(self):
                if self.__shouldAbort:
                    self.__shouldAbort = False
                    return True
                else:
                    return False

        self.viewAbortFunc = ViewerFuncAborter()
        self.frameFind.hide()
        self.frameReplace.hide()
        self.frameGoto.hide()
        self.codeeditor.initWithEditor(self)
        self.debugMode = False
        self.debugger = LpyVisualDebugger(self)
        st = self.statusBar()
        self.materialed.statusBar = st
        self.panelmanager = ObjectPanelManager(self)
        #self.documentNames.setShape(QTabBar.TriangularNorth)
        #self.documentNames.setTabsClosable(True)
        self.newfile()
        self.textEditionWatch = False
        self.documentNames.connectTo(self)

        self.endTask.connect(self.endTaskCheck)
        # self.documentNamesMore.newDocumentRequest = pyqtSignal() # AUTO SIGNAL TRANSLATION in class LPyWindow
        self.documentNamesMore.newDocumentRequest.connect(self.newfile)
        # self.documentNamesMore2.newDocumentRequest = pyqtSignal() # AUTO SIGNAL TRANSLATION in class LPyWindow
        self.documentNamesMore2.newDocumentRequest.connect(self.newfile)
        self.actionNew.triggered.connect(self.newfile)
        self.actionOpen.triggered.connect(lambda: self.openfile())
        self.actionSave.triggered.connect(lambda: self.savefile())
        self.actionSaveAll.triggered.connect(lambda: self.saveallfiles())
        self.actionSaveAs.triggered.connect(self.saveas)
        self.actionClose.triggered.connect(self.closeDoc)
        self.actionImportCpfgProject.triggered.connect(
            lambda: self.importcpfgproject())
        self.actionImportCpfgFile.triggered.connect(
            lambda: self.importcpfgfile())
        self.actionClear.triggered.connect(self.clearHistory)
        self.actionSaveSession.triggered.connect(self.saveSession)
        self.actionRun.triggered.connect(self.run)
        self.actionAnimate.triggered.connect(self.animate)
        self.actionStep.triggered.connect(self.step)
        self.actionRewind.triggered.connect(self.rewind)
        self.actionStepInterpretation.triggered.connect(
            self.stepInterpretation)
        self.actionIterateTo.triggered.connect(self.iterateTo)
        self.actionNextIterate.triggered.connect(self.nextIterate)
        self.actionAutoRun.triggered.connect(self.projectAutoRun)
        self.actionDebug.triggered.connect(self.debug)
        self.actionProfile.triggered.connect(self.profile)
        self.actionRecord.triggered.connect(self.record)
        self.actionStop.triggered.connect(self.cancelTask)
        self.actionStop.triggered.connect(self.abortViewer)
        self.actionExecute.triggered.connect(self.executeCode)
        self.actionComment.triggered.connect(self.codeeditor.comment)
        self.actionUncomment.triggered.connect(self.codeeditor.uncomment)
        self.actionInsertTab.triggered.connect(self.codeeditor.tab)
        self.actionRemoveTab.triggered.connect(self.codeeditor.untab)
        self.actionSyntax.triggered.connect(self.setSyntaxHighLightActivation)
        self.actionTabHightlight.triggered.connect(
            self.setTabHighLightActivation)
        self.actionPreferences.triggered.connect(self.preferences.show)
        self.animtimestep.valueChanged.connect(self.setTimeStep)
        self.animtimeSpinBox.valueChanged.connect(self.setTimeStep)
        self.codeeditor.textChanged.connect(self.textEdited)
        self.descriptionEdit.textChanged.connect(self.projectEdited)
        self.referenceEdit.textChanged.connect(self.projectEdited)
        self.authorsEdit.textChanged.connect(self.projectEdited)
        self.intitutesEdit.textChanged.connect(self.projectEdited)
        self.copyrightEdit.textChanged.connect(self.projectEdited)
        self.materialed.valueChanged.connect(self.projectEdited)
        self.scalarEditor.valueChanged.connect(self.projectEdited)
        self.scalarEditor.valueChanged.connect(self.projectParameterEdited)
        self.actionPrint.triggered.connect(self.printCode)
        self.actionView3D.setEnabled(self.use_own_view3D)
        self.actionView3D.triggered.connect(self.switchCentralView)
        self.aboutLpy = lambda x: doc.aboutLpy(self)
        self.actionAbout.triggered.connect(self.aboutLpy)
        self.actionAboutQt.triggered.connect(QApplication.aboutQt)
        self.aboutVPlants = lambda x: doc.aboutVPlants(self)
        self.helpDisplay.setText(doc.getSpecification())
        self.actionOnlineHelp.triggered.connect(self.onlinehelp)
        self.actionSubmitBug.triggered.connect(self.submitBug)
        self.actionCheckUpdate.triggered.connect(self.check_lpy_update)
        self.actionUseThread.triggered.connect(self.toggleUseThread)
        self.actionFitAnimationView.triggered.connect(
            self.toggleFitAnimationView)
        self.menuRecents.triggered.connect(self.recentMenuAction)
        self.initSVNMenu()
        self.printTitle()
        self.centralViewIsGL = False
        self.svnLastRevisionChecked = 0
        self.svnLastDateChecked = 0.0
        self.stackedWidget.setCurrentIndex(0)
        self.setAnimated(False)
        settings.restoreState(self)
        self.createRecentMenu()
        #if not py2exe_release:
        try:
            self.createTutorialMenu()
        except:
            pass
        self.textEditionWatch = True
        self._initialized = False
        try:
            self.lpy_update_enabled = self.check_lpy_update_available()
        except:
            pass
예제 #3
0
 def run(self, cond, killer, timeout=5, initialtimeout=0.1):
     self.condition = cond
     self.killer = killer
     self.timeout = timeout
     if self.condition():
         QTimer.singleShot(1000 * initialtimeout, self.initTiming)