def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False
def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix) self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False
def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.timerProgress = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix) QObject.connect(self.timerProgress, SIGNAL("timeout()"),self.slotUpdateprogress) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False
class Widget(QtGui.QWidget, ScreenWidget): title = _('Installing system...') desc = _('Installing takes approximately 20 minutes depending on your hardware...') icon = "iconInstall" help = _(''' <font size="+2">Installation started</font> <font size="+1"> <p> Pardus is now being installed on your hard disk. </p> <p> The duration of this operation depends on the capability and power of your system. Meanwhile, you can enjoy some visual elements showing the distinctive properties of Pardus, your new operating system. </p> <p> Have fun! </p> </font> ''') def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False def shown(self): # Disable mouse handler ctx.mainScreen.dontAskCmbAgain = True ctx.mainScreen.themeShortCut.setEnabled(False) # Thread object global currentObject currentObject = self # start installer thread ctx.debugger.log("PkgInstaller is creating...") self.pkg_installer = PkgInstaller() ctx.debugger.log("Calling PkgInstaller.start...") self.pkg_installer.start() ctx.yali.info.updateAndShow(_("Packages are being installed..")) ctx.mainScreen.disableNext() ctx.mainScreen.disableBack() # start 30 seconds self.timer.start(1000 * 30) def customEvent(self, qevent): # EventPisi if qevent.eventType() == EventPisi: p, event = qevent.data() if event == pisi.ui.installing: self.ui.info.setText(_("Installing: <b>%s</b><br>%s") % (p.name, p.summary)) ctx.debugger.log("Pisi : %s installing" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) elif event == pisi.ui.configuring: self.ui.info.setText(_("Configuring package: <b>%s</b>") % p.name) ctx.debugger.log("Pisi : %s configuring" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) # EventSetProgress elif qevent.eventType() == EventSetProgress: total = qevent.data() self.ui.progress.setMaximum(total) # EventPackageInstallFinished elif qevent.eventType() == EventPackageInstallFinished: self.packageInstallFinished() # EventError elif qevent.eventType() == EventError: err = qevent.data() self.installError(err) # EventRetry elif qevent.eventType() == EventRetry: package = qevent.data() self.timer.stop() ctx.yali.retryAnswer = EjectAndRetryDialog(_("Warning"), _("Package install failed : <b>%s</b>") % package, _("Do you want to retry ?")) self.timer.start(1000 * 30) ctx.yali.waitCondition.wakeAll() # EventAllFinished elif qevent.eventType() == EventAllFinished: self.finished() def slotChangePix(self): slide = self.iter_pics.next() self.ui.pix.setPixmap(slide["pic"]) # FIXME: Don't show slide descriptions for now #self.ui.desc.setText(slide["desc"]) def packageInstallFinished(self): ctx.yali.fillFstab() # Configure Pending... # run baselayout's postinstall first ctx.yali.info.updateAndShow(_("Creating baselayout for your system!")) yali4.postinstall.initbaselayout() # postscripts depend on 03locale... yali4.localeutils.writeLocaleFromCmdline() #Write InitramfsConf yali4.postinstall.writeInitramfsConf() # run dbus in chroot yali4.sysutils.chrootDbus() ctx.yali.info.updateMessage(_("Configuring packages..")) # start configurator thread self.pkg_configurator = PkgConfigurator() self.pkg_configurator.start() def execute(self): # stop slide show self.timer.stop() return True def finished(self): if self.hasErrors: return ctx.yali.info.hide() # trigger next screen. will activate execute() ctx.mainScreen.slotNext() def installError(self, e): import yali4 import yali4.gui.runner self.hasErrors = True err_str = _('''An error during the installation of packages occured. This is possibly a broken Pardus CD or CD-ROM drive. Error: %s ''') % str(e) yali4.gui.runner.showException(yali4.exception_fatal, err_str)
class Widget(QtGui.QWidget, ScreenWidget): title = _('Installing system...') desc = _( 'Installing takes approximately 20 minutes depending on your hardware...' ) icon = "iconInstall" help = _(''' <font size="+2">Installation started</font> <font size="+1"> <p> Pardus is now being installed on your hard disk. </p> <p> The duration of this operation depends on the capability and power of your system. Meanwhile, you can enjoy some visual elements showing the distinctive properties of Pardus, your new operating system. </p> <p> Have fun! </p> </font> ''') def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False def shown(self): # Disable mouse handler ctx.mainScreen.dontAskCmbAgain = True ctx.mainScreen.themeShortCut.setEnabled(False) # Thread object global currentObject currentObject = self # start installer thread ctx.debugger.log("PkgInstaller is creating...") self.pkg_installer = PkgInstaller() ctx.debugger.log("Calling PkgInstaller.start...") self.pkg_installer.start() ctx.yali.info.updateAndShow(_("Packages are being installed..")) ctx.mainScreen.disableNext() ctx.mainScreen.disableBack() # start 30 seconds self.timer.start(1000 * 30) def customEvent(self, qevent): # EventPisi if qevent.eventType() == EventPisi: p, event = qevent.data() if event == pisi.ui.installing: self.ui.info.setText( _("Installing: <b>%s</b><br>%s") % (p.name, p.summary)) ctx.debugger.log("Pisi : %s installing" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) elif event == pisi.ui.configuring: self.ui.info.setText( _("Configuring package: <b>%s</b>") % p.name) ctx.debugger.log("Pisi : %s configuring" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) # EventSetProgress elif qevent.eventType() == EventSetProgress: total = qevent.data() self.ui.progress.setMaximum(total) # EventPackageInstallFinished elif qevent.eventType() == EventPackageInstallFinished: self.packageInstallFinished() # EventError elif qevent.eventType() == EventError: err = qevent.data() self.installError(err) # EventRetry elif qevent.eventType() == EventRetry: package = qevent.data() self.timer.stop() ctx.yali.retryAnswer = EjectAndRetryDialog( _("Warning"), _("Package install failed : <b>%s</b>") % package, _("Do you want to retry ?")) self.timer.start(1000 * 30) ctx.yali.waitCondition.wakeAll() # EventAllFinished elif qevent.eventType() == EventAllFinished: self.finished() def slotChangePix(self): slide = self.iter_pics.next() self.ui.pix.setPixmap(slide["pic"]) self.ui.desc.setText(slide["desc"]) def packageInstallFinished(self): ctx.yali.fillFstab() # Configure Pending... # run baselayout's postinstall first ctx.yali.info.updateAndShow(_("Creating baselayout for your system!")) yali4.postinstall.initbaselayout() # postscripts depend on 03locale... yali4.localeutils.writeLocaleFromCmdline() #Write InitramfsConf yali4.postinstall.writeInitramfsConf() # run dbus in chroot yali4.sysutils.chrootDbus() ctx.yali.info.updateMessage(_("Configuring packages..")) # start configurator thread self.pkg_configurator = PkgConfigurator() self.pkg_configurator.start() def execute(self): # stop slide show self.timer.stop() return True def finished(self): if self.hasErrors: return ctx.yali.info.hide() # trigger next screen. will activate execute() ctx.mainScreen.slotNext() def installError(self, e): import yali4 import yali4.gui.runner self.hasErrors = True err_str = _('''An error during the installation of packages occured. This is possibly a broken Pardus CD or CD-ROM drive. Error: %s ''') % str(e) yali4.gui.runner.showException(yali4.exception_fatal, err_str)
class Widget(QtGui.QWidget, ScreenWidget): title = _('Installing system..') desc = _('Installing approximately 30 minutes depending on hardware..') icon = "iconInstall" help = _(''' <font size="+2">Installation started</font> <font size="+1"> <p> Pardus is now being installed on your hard disk. </p> <p> The duration of this operation depends on the capability and power of your system. Meanwhile, you can enjoy some visual elements showing the distinctive properties of Pardus, your new operating system. </p> <p> Have fun! </p> </font> ''') def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix) self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False def shown(self): # start installer thread ctx.debugger.log("PkgInstaller is creating...") self.pkg_installer = PkgInstaller(self) ctx.debugger.log("Calling PkgInstaller.start...") self.pkg_installer.start() ctx.mainScreen.disableNext() ctx.mainScreen.disableBack() # start 30 seconds self.timer.start(1000 * 30) def customEvent(self, qevent): # EventPisi if qevent.eventType() == EventPisi: p, event = qevent.data() if event == pisi.ui.installing: self.ui.info.setText(_("Installing: %s<br>%s") % (p.name, p.summary)) ctx.debugger.log("customEvent :: %s installed" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) elif event == pisi.ui.configuring: self.ui.info.setText(_("Configuring package: %s") % p.name) ctx.debugger.log("customEvent :: %s configured" % p.name) self.cur += 1 self.ui.progress.setValue(self.cur) # EventSetProgress elif qevent.eventType() == EventSetProgress: total = qevent.data() self.ui.progress.setMaximum(total) # EventPackageInstallFinished elif qevent.eventType() == EventPackageInstallFinished: self.packageInstallFinished() # EventError elif qevent.eventType() == EventError: err = qevent.data() self.installError(err) # EventAllFinished elif qevent.eventType() == EventAllFinished: self.finished() def slotChangePix(self): self.ui.pix.setPixmap(self.iter_pics.next()) def packageInstallFinished(self): yali4.pisiiface.finalize() self.cur = 0 # fill fstab fstab = yali4.fstab.Fstab() for req in ctx.partrequests: req_type = req.requestType() if req_type == request.mountRequestType: p = req.partition() pt = req.partitionType() path = "LABEL=%s" % pt.filesystem.getLabel(p) fs = pt.filesystem._name mountpoint = pt.mountpoint # TODO: consider merging mountoptions in filesystem.py opts = ",".join([pt.filesystem.mountOptions(), pt.mountoptions]) e = yali4.fstab.FstabEntry(path, mountpoint, fs, opts) fstab.insert(e) elif req_type == request.swapFileRequestType: path = "/" + ctx.consts.swap_file_name mountpoint = "none" fs = "swap" opts = "sw" e = yali4.fstab.FstabEntry(path, mountpoint, fs, opts) fstab.insert(e) fstab.close() # Configure Pending... # run baselayout's postinstall first yali4.postinstall.initbaselayout() # postscripts depend on 03locale... yali4.localeutils.write_locale_from_cmdline() # run dbus in chroot yali4.sysutils.chroot_dbus() self.ui.info.setText(_("Configuring packages for your system!")) # start configurator thread self.pkg_configurator = PkgConfigurator(self) self.pkg_configurator.start() def execute(self): # stop slide show self.timer.stop() return True def finished(self): if self.hasErrors: return yali4.pisiiface.finalize() # trigger next screen. will activate execute() ctx.mainScreen.slotNext() def installError(self, e): #self.info.setText(str(e)) import yali4 import yali4.gui.runner self.hasErrors = True err_str = _('''An error during the installation of packages occured. This is possibly a broken Pardus CD or CD-ROM drive. Error: %s ''') % str(e) yali4.gui.runner.showException(yali4.exception_fatal, err_str)
class Widget(QtGui.QWidget, ScreenWidget): title = _('Installing system...') desc = _('Installing takes approximately 20 minutes depending on your hardware...') icon = "iconInstall" help = _(''' <font size="+2">Installation started</font> <font size="+1"> <p> Pardus is now being installed on your hard disk. </p> <p> The duration of this operation depends on the capability and power of your system. Meanwhile, you can enjoy some visual elements showing the distinctive properties of Pardus, your new operating system. </p> <p> Have fun! </p> </font> ''') def __init__(self, *args): QtGui.QWidget.__init__(self,None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.timerProgress = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"),self.slotChangePix) QObject.connect(self.timerProgress, SIGNAL("timeout()"),self.slotUpdateprogress) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False def shown(self): # Disable mouse handler ctx.mainScreen.dontAskCmbAgain = True ctx.mainScreen.themeShortCut.setEnabled(False) # Thread object global currentObject currentObject = self # start installer thread ctx.debugger.log("LiveInstaller is creating...") self.live_installer = LiveInstaller() ctx.debugger.log("Calling LiveInstaller.start...") self.live_installer.start() ctx.yali.info.updateAndShow(_("Copying files...")) ctx.mainScreen.disableNext() ctx.mainScreen.disableBack() # start 30 seconds self.timer.start(1000 * 30) def slotUpdateprogress(self): current_size= int(yali4.sysutils.execWithCapture("du", ["-sc",consts.target_dir]).split()[-2]) ctx.debugger.log("Progress: %d / %d" %(current_size, self.total)) qevent = InstallEvent(QEvent.User, EventCopy) qevent.setData(current_size) objectSender(qevent) if current_size >= self.total: self.timerProgress.stop() def customEvent(self, qevent): # EventCopy if qevent.eventType() == EventCopy: progress = qevent.data() self.ui.progress.setValue(progress) ctx.debugger.log("LiveInstall: Copying files") self.ui.info.setText(_("Copying files...")) # EventSetProgress elif qevent.eventType() == EventSetProgress: total = qevent.data() self.total = total self.ui.progress.setMaximum(total) ctx.debugger.log("Progress reporter is running.") self.timerProgress.start(1000 * 5) # EventPackageInstallFinished elif qevent.eventType() == EventPackageInstallFinished: self.packageInstallFinished() # EventError elif qevent.eventType() == EventError: err = qevent.data() self.installError(err) # EventRetry elif qevent.eventType() == EventRetry: package = qevent.data() self.timer.stop() ctx.yali.retryAnswer = EjectAndRetryDialog(_("Warning"), _("Package install failed : <b>%s</b>") % package, _("Do you want to retry ?")) self.timer.start(1000 * 30) ctx.yali.waitCondition.wakeAll() # EventAllFinished elif qevent.eventType() == EventAllFinished: self.finished() def slotChangePix(self): slide = self.iter_pics.next() self.ui.pix.setPixmap(slide["pic"]) self.ui.desc.setText(slide["desc"]) def packageInstallFinished(self): ctx.yali.fillFstab() # Configure Pending... # run baselayout's postinstall first ctx.yali.info.updateAndShow(_("Creating baselayout for your system!")) yali4.postinstall.initbaselayout() # postscripts depend on 03locale... yali4.localeutils.writeLocaleFromCmdline() #Write InitramfsConf yali4.postinstall.writeInitramfsConf() # run dbus in chroot yali4.sysutils.chrootDbus() #Remove Autologin for default Live user pars pars=yali4.users.User("pars") pars.setAutoLogin(False) #Remove autologin as root for virtual terminals inittablive = os.path.join(consts.target_dir,"etc/inittab") inittab = file(inittablive).read() inittab = inittab.replace("--autologin root ","") f = file(inittablive,"w") f.write(inittab) f.close() ctx.yali.info.updateMessage(_("Configuring packages..")) qevent = InstallEvent(QEvent.User, EventAllFinished) objectSender(qevent) def execute(self): # stop slide show self.timer.stop() return True def finished(self): if self.hasErrors: return ctx.yali.info.hide() # trigger next screen. will activate execute() ctx.mainScreen.slotNext() def installError(self, e): import yali4 import yali4.gui.runner self.hasErrors = True err_str = _('''An error during the installation of packages occured. This is possibly a broken Pardus CD or CD-ROM drive. Error: %s ''') % str(e) yali4.gui.runner.showException(yali4.exception_fatal, err_str)
class Widget(QtGui.QWidget, ScreenWidget): title = _('Installing system...') desc = _( 'Installing takes approximately 20 minutes depending on your hardware...' ) icon = "iconInstall" help = _(''' <font size="+2">Installation started</font> <font size="+1"> <p> Pardus is now being installed on your hard disk. </p> <p> The duration of this operation depends on the capability and power of your system. Meanwhile, you can enjoy some visual elements showing the distinctive properties of Pardus, your new operating system. </p> <p> Have fun! </p> </font> ''') def __init__(self, *args): QtGui.QWidget.__init__(self, None) self.ui = Ui_InstallWidget() self.ui.setupUi(self) self.timer = QTimer(self) self.timerProgress = QTimer(self) QObject.connect(self.timer, SIGNAL("timeout()"), self.slotChangePix) QObject.connect(self.timerProgress, SIGNAL("timeout()"), self.slotUpdateprogress) if ctx.consts.lang == "tr": self.ui.progress.setFormat("%%p") self.iter_pics = iter_slide_pics() # show first pic self.slotChangePix() self.total = 0 self.cur = 0 self.hasErrors = False def shown(self): # Disable mouse handler ctx.mainScreen.dontAskCmbAgain = True ctx.mainScreen.themeShortCut.setEnabled(False) # Thread object global currentObject currentObject = self # start installer thread ctx.debugger.log("LiveInstaller is creating...") self.live_installer = LiveInstaller() ctx.debugger.log("Calling LiveInstaller.start...") self.live_installer.start() ctx.yali.info.updateAndShow(_("Copying files...")) ctx.mainScreen.disableNext() ctx.mainScreen.disableBack() # start 30 seconds self.timer.start(1000 * 30) def slotUpdateprogress(self): current_size = int( yali4.sysutils.execWithCapture( "du", ["-sc", consts.target_dir]).split()[-2]) ctx.debugger.log("Progress: %d / %d" % (current_size, self.total)) qevent = InstallEvent(QEvent.User, EventCopy) qevent.setData(current_size) objectSender(qevent) if current_size >= self.total: self.timerProgress.stop() def customEvent(self, qevent): # EventCopy if qevent.eventType() == EventCopy: progress = qevent.data() self.ui.progress.setValue(progress) ctx.debugger.log("LiveInstall: Copying files") self.ui.info.setText(_("Copying files...")) # EventSetProgress elif qevent.eventType() == EventSetProgress: total = qevent.data() self.total = total self.ui.progress.setMaximum(total) ctx.debugger.log("Progress reporter is running.") self.timerProgress.start(1000 * 5) # EventPackageInstallFinished elif qevent.eventType() == EventPackageInstallFinished: self.packageInstallFinished() # EventError elif qevent.eventType() == EventError: err = qevent.data() self.installError(err) # EventRetry elif qevent.eventType() == EventRetry: package = qevent.data() self.timer.stop() ctx.yali.retryAnswer = EjectAndRetryDialog( _("Warning"), _("Package install failed : <b>%s</b>") % package, _("Do you want to retry ?")) self.timer.start(1000 * 30) ctx.yali.waitCondition.wakeAll() # EventAllFinished elif qevent.eventType() == EventAllFinished: self.finished() def slotChangePix(self): slide = self.iter_pics.next() self.ui.pix.setPixmap(slide["pic"]) self.ui.desc.setText(slide["desc"]) def packageInstallFinished(self): ctx.yali.fillFstab() # Configure Pending... # run baselayout's postinstall first ctx.yali.info.updateAndShow(_("Creating baselayout for your system!")) yali4.postinstall.initbaselayout() # postscripts depend on 03locale... yali4.localeutils.writeLocaleFromCmdline() #Write InitramfsConf yali4.postinstall.writeInitramfsConf() # run dbus in chroot yali4.sysutils.chrootDbus() #Remove Autologin for default Live user pars pars = yali4.users.User("pars") pars.setAutoLogin(False) #Remove autologin as root for virtual terminals inittablive = os.path.join(consts.target_dir, "etc/inittab") inittab = file(inittablive).read() inittab = inittab.replace("--autologin root ", "") f = file(inittablive, "w") f.write(inittab) f.close() ctx.yali.info.updateMessage(_("Configuring packages..")) qevent = InstallEvent(QEvent.User, EventAllFinished) objectSender(qevent) def execute(self): # stop slide show self.timer.stop() return True def finished(self): if self.hasErrors: return ctx.yali.info.hide() # trigger next screen. will activate execute() ctx.mainScreen.slotNext() def installError(self, e): import yali4 import yali4.gui.runner self.hasErrors = True err_str = _('''An error during the installation of packages occured. This is possibly a broken Pardus CD or CD-ROM drive. Error: %s ''') % str(e) yali4.gui.runner.showException(yali4.exception_fatal, err_str)