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()
Beispiel #2
0
	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()
Beispiel #3
0
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)
Beispiel #4
0
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)