def cb_btDownload_clicked(self, *a): """ Disable half of dialog and start downloading syncthing package """ # Determine which syncthing to use suffix, tag = StDownloader.determine_platform() # Report error on unsupported platforms if suffix is None or tag is None: # Disable download button self["btDownload"].set_sensitive(False) # Set message pd = "%s %s" % ( platform.uname()[0], # OS platform.uname()[4]) # architecture self["lblDownloadProgress"].set_markup("%s %s" % ( _("Cannot download Syncthing daemon."), _("This platform (%s) is not supported") % (pd,), )) return # Determine target file & directory self.target = os.path.join( os.path.expanduser(StDownloader.get_target_folder()), "syncthing%s" % (suffix,) ) # Create downloader and connect events sd = StDownloader(self.target, tag) sd.connect("error", self.cb_download_error) sd.connect("version", self.cb_version) sd.connect("download-progress", self.cb_progress) sd.connect("download-finished", self.cb_extract_start) sd.connect("extraction-progress", self.cb_progress) sd.connect("extraction-finished", self.cb_extract_finished) # Display message and start downloading self["lblDownloadProgress"].set_markup(_("Downloading...")) self["btDownload"].set_visible(False) self["pbDownload"].set_visible(True) self["vsyncthing_binary"].set_sensitive(False) self["btBrowse"].set_sensitive(False) self["btSave"].set_sensitive(False) sd.get_version()
class DownloadSTPage(Page): TYPE = Gtk.AssistantPageType.PROGRESS TITLE = _("Download Daemon") def init_page(self): """ Displayed while wizard downloads and extracts daemon """ self.label = WrappedLabel(_("<b>Downloading Syncthing daemon.</b>")) self.version = WrappedLabel(_("Please wait...")) self.pb = Gtk.ProgressBar() self.label.props.margin_bottom = 15 self.target = None self.attach(self.label, 0, 0, 1, 1) self.attach(self.version, 0, 1, 1, 1) self.attach(self.pb, 0, 2, 1, 1) def prepare(self): # Determine which Syncthing to use suffix, tag = StDownloader.determine_platform() # Report error on unsupported platforms if suffix is None or tag is None: pd = "%s %s %s" % ( platform.uname()[0], platform.uname()[2], # OS, version platform.uname()[4]) # architecture self.parent.error(self, _("Cannot download Syncthing daemon."), _("This platform (%s) is not supported") % (pd,), False) return # Determine target file & directory self.target = os.path.join( os.path.expanduser(StDownloader.get_target_folder()), "syncthing%s" % (suffix,) ) # Create downloader and connect events self.sd = StDownloader(self.target, tag) self.sd.connect("error", self.on_download_error) self.sd.connect("version", self.on_version) self.sd.connect("download-progress", self.on_progress) self.sd.connect("download-finished", self.on_extract_start) self.sd.connect("extraction-progress", self.on_progress) self.sd.connect("extraction-finished", self.on_extract_finished) # Start downloading self.sd.get_version() def on_download_error(self, downloader, error, message): """ Called when download fails. This is fatal for now, user can only observe message, cry and quit program. """ message = "%s\n%s" % ( str(error) if not error is None else "", message if not message is None else "" ) self.parent.error(self, _("Failed to download Syncthing daemon package."), message, False) return def on_version(self, dowloader, version): self.version.set_markup("Downloading %s..." % (version, )) dowloader.download() def on_extract_start(self, *a): self.version.set_markup("Extracting...") def on_progress(self, dowloader, progress): self.pb.set_fraction(progress) def on_extract_finished(self, *a): """ Called after extraction is finished """ # Everything done. Praise supernatural entities... self.label.set_markup(_("<b>Download finished.</b>")) self.parent.config["syncthing_binary"] = self.target self.version.set_markup(_("Binary path:") + " " + self.target) self.pb.set_visible(False) self.parent.set_page_complete(self, True)
class DownloadSTPage(Page): TYPE = Gtk.AssistantPageType.PROGRESS TITLE = _("Download Daemon") def init_page(self): """ Displayed while wizard downloads and extracts daemon """ self.label = WrappedLabel(_("<b>Downloading Syncthing daemon.</b>")) self.version = WrappedLabel(_("Please wait...")) self.pb = Gtk.ProgressBar() self.label.props.margin_bottom = 15 self.target = None self.attach(self.label, 0, 0, 1, 1) self.attach(self.version, 0, 1, 1, 1) self.attach(self.pb, 0, 2, 1, 1) def prepare(self): # Determine which Syncthing to use suffix, tag = StDownloader.determine_platform() # Report error on unsupported platforms if suffix is None or tag is None: pd = "%s %s %s" % ( platform.uname()[0], platform.uname()[2], # OS, version platform.uname()[4]) # architecture self.parent.error( self, _("Cannot download Syncthing daemon."), _("This platform (%s) is not supported") % (pd, ), False) return # Determine target file & directory self.target = os.path.join( os.path.expanduser(StDownloader.get_target_folder()), "syncthing%s" % (suffix, )) # Create downloader and connect events self.sd = StDownloader(self.target, tag) self.sd.connect("error", self.on_download_error) self.sd.connect("version", self.on_version) self.sd.connect("download-progress", self.on_progress) self.sd.connect("download-finished", self.on_extract_start) self.sd.connect("extraction-progress", self.on_progress) self.sd.connect("extraction-finished", self.on_extract_finished) # Start downloading self.sd.get_version() def on_download_error(self, downloader, error, message): """ Called when download fails. This is fatal for now, user can only observe message, cry and quit program. """ message = "%s\n%s" % (str(error) if not error is None else "", message if not message is None else "") self.parent.error(self, _("Failed to download Syncthing daemon package."), message, False) return def on_version(self, dowloader, version): self.version.set_markup("Downloading %s..." % (version, )) dowloader.download() def on_extract_start(self, *a): self.version.set_markup("Extracting...") def on_progress(self, dowloader, progress): self.pb.set_fraction(progress) def on_extract_finished(self, *a): """ Called after extraction is finished """ # Everything done. Praise supernatural entities... self.label.set_markup(_("<b>Download finished.</b>")) self.parent.config["syncthing_binary"] = self.target self.version.set_markup(_("Binary path:") + " " + self.target) self.pb.set_visible(False) self.parent.set_page_complete(self, True)
def cb_btDownload_clicked(self, *a): """ Disable half of dialog and start downloading syncthing package """ # Determine which syncthing to use suffix, tag = StDownloader.determine_platform() # Report error on unsupported platforms if suffix is None or tag is None: # Disable download button self["btDownload"].set_sensitive(False) # Set message pd = "%s %s" % ( platform.uname()[0], # OS platform.uname()[4]) # architecture self["lblDownloadProgress"].set_markup("%s %s" % ( _("Cannot download Syncthing daemon."), _("This platform (%s) is not supported") % (pd, ), )) return # Determine target file & directory self.target = os.path.join( os.path.expanduser(StDownloader.get_target_folder()), "syncthing%s" % (suffix, )) # Create downloader and connect events sd = StDownloader(self.target, tag) sd.connect("error", self.cb_download_error) sd.connect("version", self.cb_version) sd.connect("download-progress", self.cb_progress) sd.connect("download-finished", self.cb_extract_start) sd.connect("extraction-progress", self.cb_progress) sd.connect("extraction-finished", self.cb_extract_finished) # Display message and start downloading self["lblDownloadProgress"].set_markup(_("Downloading...")) self["btDownload"].set_visible(False) self["pbDownload"].set_visible(True) self["vsyncthing_binary"].set_sensitive(False) self["btBrowse"].set_sensitive(False) self["btSave"].set_sensitive(False) sd.get_version()