def loadLicFile(self, filename): #startTime = time.time() progress = LicDialogs.LicProgressDialog(self, "Opening " + os.path.basename(filename)) progress.setValue(2) # Try and force dialog to show up right away loader = LicBinaryReader.loadLicFile(filename, self.instructions, FileVersion, MagicNumber) count = loader.next() + 3 progress.setMaximum(count) # First value yielded after load is # of progress steps, +3 because we start at 2, and have to load colors self.scene.emit(SIGNAL("layoutAboutToBeChanged()")) progress.incr() for unused in loader: if progress.wasCanceled(): loader.close() self.fileClose() self.statusBar().showMessage("Open File aborted") return progress.incr() self.treeModel.root = self.instructions.mainModel self.scene.emit(SIGNAL("layoutChanged()")) self.filename = filename self.addRecentFile(filename) self.scene.selectPage(1) self.copySettingsToScene() progress.setValue(progress.maximum())
def fileLoadTemplate(self): templateName = self.instructions.templateSettings.filename folder = os.path.dirname(templateName) if templateName != "" else "." # TODO: Check what happens if templateName has no path newFilename = unicode(QFileDialog.getOpenFileName(self, "Lic - Load Template", folder, "Lic Template files (*.lit)")) if newFilename and os.path.basename(newFilename) != templateName: try: LicBinaryReader.loadLicTemplateSettings(newFilename, self.instructions, FileVersion, MagicNumber) except IOError, e: QMessageBox.warning(self, "Lic - Load Template Error", "Failed to open %s: %s" % (newFilename, e)) else: #self.scene.emit(SIGNAL("layoutAboutToBeChanged()")) #self.scene.removeItem(self.instructions.template) #self.instructions.template = newTemplate #newTemplate.applyFullTemplate(True) #self.scene.emit(SIGNAL("layoutChanged()")) self.scene.update() self.setWindowModified(True)
def importModel(self, filename): if not self.fileClose(): return #import time #startTime = time.time() progress = LicDialogs.LicProgressDialog(self, "Importing " + os.path.basename(filename)) progress.setValue(2) # Try and force dialog to show up right away loader = self.instructions.importModel(filename) try: progress.setMaximum(loader.next()) # First value yielded after load is # of progress steps except IOError as e: # Failed to import model. Usually means a bad path to LDraw. Signal user & abort. progress.cancel() loader.close() s = "Failed to import %s:\n%s\n\nThis could mean a corrupt Lic config file.\nDo you want to recreate it?" % (os.path.basename(filename), e) reply = QMessageBox.critical(self, "Lic - Import Error", s, QMessageBox.Yes | QMessageBox.No) if reply == QMessageBox.Yes: settings = self.getSettingsFile() settings.clear() settings.sync() exit(1) return for label in loader: if progress.wasCanceled(): loader.close() self.fileClose() return progress.incr(label) self.scene.emit(SIGNAL("layoutAboutToBeChanged()")) self.treeModel.root = self.instructions.mainModel try: template = LicBinaryReader.loadLicTemplate(self.defaultTemplateFilename, self.instructions, FileVersion, MagicNumber) # import LicTemplate # Use this to regenerate new default template from scratch, to add new stuff to it # template = LicTemplate.TemplatePage(self.instructions.mainModel, self.instructions) # template.createBlankTemplate(self.glWidget) except IOError, unused: # Could not load default template, so load template stored in resource bundle template = LicBinaryReader.loadLicTemplate(":/default_template", self.instructions, FileVersion, MagicNumber)
def loadDefaultLicTemplateSettings(self): try: LicBinaryReader.loadLicTemplateSettings(self.defaultTemplateSettingsFilename, self.instructions, FileVersion, MagicNumber) except IOError, unused: self.instructions.resetTemplateSettings()