Mercurial > lcfOS
diff python/ide.py @ 152:b73bc14a3aa3
Light coupling ide and c3 frontend
author | Windel Bouwman |
---|---|
date | Sat, 02 Mar 2013 09:56:12 +0100 |
parents | 1cc59ac80950 |
children | 81e08e2e7777 |
line wrap: on
line diff
--- a/python/ide.py Fri Mar 01 17:13:56 2013 +0100 +++ b/python/ide.py Sat Mar 02 09:56:12 2013 +0100 @@ -12,6 +12,7 @@ from astviewer import AstViewer from codeeditor import CodeEdit stutil = __import__('st-util') +import testc3 lcfospng = base64.decodestring(b'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A\n/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJEhMKBk7B678AAAA/SURBVFjD\n7dbBCQAgDATBi9h/y7EFA4Kf2QLCwH1S6XQu6sqoujublc8BAAAAAAAAAAB8B+zXT6YJAAAAAKYd\nWSgFQNUyijIAAAAASUVORK5CYII=\n') @@ -33,8 +34,7 @@ def setErrorList(self, errorlist): model = QStandardItemModel() for e in errorlist: - row, col, msg = e - item = QStandardItem(str(msg)) + item = QStandardItem(str(e)) item.setData(e) model.appendRow(item) self.setModel(model) @@ -193,6 +193,11 @@ self.settings = QSettings('windelsoft', 'lcfoside') self.loadSettings() + ce = self.newFile() + ce.setSource(testc3.testsrc) + + self.diag = ppci.DiagnosticsManager() + # File handling: def newProject(self): filename = QFileDialog.getSaveFileName(self, \ @@ -203,7 +208,10 @@ self.project.save() def newFile(self): - self.loadFile('main.ks') + ce = CodeEdit() + self.mdiArea.addSubWindow(ce) + ce.show() + return ce def openFile(self): filename = QFileDialog.getOpenFileName(self, "Open K# file...", "*.ks", "K# source files (*.ks)") if filename: @@ -281,9 +289,6 @@ self.restoreState(self.settings.value('mainwindowstate')) if self.settings.contains('mainwindowgeometry'): self.restoreGeometry(self.settings.value('mainwindowgeometry')) - if self.settings.contains('openedproject'): - projectfile = self.settings.value('openedproject') - #self.loadProject(projectfile) if self.settings.contains('lastfile'): self.loadFile(self.settings.value('lastfile')) @@ -297,6 +302,10 @@ if ac: if ac.filename: self.settings.setValue('lastfile', ac.filename) + else: + self.settings.remove('lastfile') + else: + self.settings.remove('lastfile') ev.accept() # Error handling: @@ -311,34 +320,38 @@ ce.clearErrors() def errorSelected(self, err): - row, col, msg = err ce = self.activeMdiChild() if not ce: return - ce.highlightErrorLocation(row, col) + ce.highlightErrorLocation(err.loc.row, err.loc.col) # Project loading: # Build recepy: def buildFile(self): ce = self.activeMdiChild() + print('BUILD file') if ce: source = ce.source self.buildOutput.clear() self.buildOutput.append(str(self.compiler)) - ast = self.compiler.compilesource(source) + ast = testc3.c3compile(source, self.diag) + #ast = self.compiler.compilesource(source) self.astViewer.setAst(ast) self.buildOutput.append("Done!") def buildProject(self): """ Build project """ + print('BUILD project') self.buildOutput.clear() + self.diag.diags.clear() self.buildOutput.append(str(self.compiler)) - mods = self.compiler.compileProject(self.project) + self.buildFile() + #mods = self.compiler.compileProject(self.project) - #self.builderrors.setErrorList(self.compiler.errorlist) - self.astViewer.setAst(mods[0]) - #for err in self.compiler.errorlist: - # self.buildOutput.append(str(err)) + self.builderrors.setErrorList(self.diag.diags) + #self.astViewer.setAst(mods[0]) + for err in self.diag.diags: + self.buildOutput.append(str(err)) self.buildOutput.append("Done!") if __name__ == '__main__':