def unpack(self, package): """Unpack the given lilypond .sh archive.""" fileName = os.path.basename(package) ver = version(fileName) or 'unknown' # should not happen self.prefix = os.path.join(self.installDest.url().path(), ver) self.lilypond = os.path.join(self.prefix, "bin", "lilypond") if not os.path.exists(self.prefix): os.makedirs(self.prefix) elif os.path.exists(self.lilypond): result = KMessageBox.questionYesNoCancel(self, i18n( "LilyPond %1 seems already to be installed in %2.\n\n" "Do you want to use it or to remove and re-install?", ver, self.prefix), None, KGuiItem(i18n("Use existing LilyPond")), KGuiItem(i18n("Remove and re-install"))) if result == KMessageBox.Yes: self.info.lilypond.setText(self.lilypond) self.enableButtonOk(True) KDialog.done(self, KDialog.Accepted) return elif result == KMessageBox.No: shutil.rmtree(self.prefix, True) else: # Cancel self.progress.reset() self.enableButtonOk(True) return self.status.setText(i18n("Unpacking %1...", fileName)) self.progress.setRange(0, 0) unpack = self.unpackJob = QProcess() unpack.setProcessChannelMode(QProcess.MergedChannels) unpack.setWorkingDirectory(self.prefix) unpack.finished.connect(self.unpackFinished) unpack.error.connect(self.unpackError) unpack.start("sh", [package, "--batch", "--prefix", self.prefix])
def done(self, result): if result: # Save selected extensions to preselect next time. exts = list(set(item.ext for item in self.selectedItems())) config("general").writeEntry("email_extensions", exts) urls = [item.url for item in self.selectedItems()] emailFiles(urls) KDialog.done(self, result)
def done(self, result): pdfs = [] if result: for i, pdf in zip(range(self.fileList.count()), self.pdfs): if self.fileList.item(i).checkState() == Qt.Checked: pdfs.append(pdf) KDialog.done(self, result) if pdfs: printPDFs(pdfs, self.mainwin)
def done(self, result): self.saveEditIfNecessary() self.manager.expansions.sync() if result == KDialog.Accepted: items = self.treeWidget.selectedItems() or self.items() items = [item for item in items if not item.isHidden()] if len(items) == 1: expansion = items[0].text(0) self.manager.doExpand(expansion) self.saveDialogSize(config()) KDialog.done(self, result)
def unpackFinished(self, exitCode, exitStatus): self.progress.setRange(0, 100) self.progress.reset() self.enableButtonOk(True) if exitStatus == QProcess.NormalExit and exitCode == 0: self.status.setText(i18n("Unpacking finished.")) self.info.lilypond.setText(self.lilypond) KDialog.done(self, KDialog.Accepted) else: self.status.setText(i18n("Unpacking failed.")) KMessageBox.error(self, i18n("An error occurred:\n\n%1", str(self.unpackJob.readAllStandardOutput())))
def done(self, result): if result == KDialog.Accepted: # Download (OK) clicked url = self.packageUrl.url() if not url.isEmpty(): self.enableButtonOk(False) # save the install path config().writePathEntry('lilypond install path', self.installDest.url().path()) if url.isLocalFile(): self.unpack(url.path()) else: self.download(url) else: if self.downloadBusy(): self.cancelDownload() elif not self.unpackBusy(): KDialog.done(self, result)
def done(self, r): self.saveSettings() KDialog.done(self, r) if r: self.actors[self.actionChooser.currentIndex()](self)
def done(self, result): if result: self.saveSettings() KDialog.done(self, result)