def read(self, fileName): self.state = PluginState.Invalid self.hasError = False self.dependencies = [] specFile = QFile(fileName) if not specFile.exists(): msg = QCoreApplication.translate(None, "File does not exist: {name}") return self.__reportError(msg.format(name=specFile.fileName())) if not specFile.open(QIODevice.ReadOnly): msg = QCoreApplication.translate(None, "Could not open file for read: {name}") return self.__reportError(msg.format(name=specFile.fileName())) fileInfo = QFileInfo(specFile) self.location = fileInfo.absolutePath() self.filePath = fileInfo.absoluteFilePath() reader = QXmlStreamReader(specFile) while not reader.atEnd(): reader.readNext() tokenType = reader.tokenType() if tokenType is QXmlStreamReader.StartElement: self.__readPluginSpec(reader) else: pass if reader.hasError(): msg = QCoreApplication.translate(None, "Error parsing file {0}: {1}, at line {2}, column {3}") return self.__reportError(msg.format(specFile.fileName(), reader.errorString(), reader.lineNumber(), reader.columnNumber())) self.state = PluginState.Read return True
def serializedArguments(self): seperator = "|" rc = "" for spec in self.plugins(): if spec.arguments(): if rc: rc += seperator rc += ":" rc += spec.name() rc += seperator rc += spec.arguments() + seperator if self.private.arguments: if rc: rc += seperator rc += ARGUMENT_KEYWORD # If the argument appears to be a file, make it absolute # when sending to another instance for argument in self.private.arguments: rc += seperator fi = QFileInfo(argument) if fi.exists() and fi.isRelative(): rc += fi.absoluteFilePath() else: rc += argument return rc