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))
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
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)