Example #1
0
	def __init__(self, app, is_new, id=None):
		EditorDialog.__init__(self, app,
			"device-edit.glade",
			"New Device" if is_new else "Edit Device"
			)
		self.id = id
		self.is_new = is_new
Example #2
0
	def set_value(self, key, value):
		if key == "Versioning":
			# Create structure if needed
			self.create_dicts(self.values, ("Versioning", "Type"))
			self.values["Versioning"]["Type"] = value
		elif key == "KeepVersions":
			# Create structure if needed
			self.create_dicts(self.values, ("Versioning", "Params", "keep"))
			self.values["Versioning"]["Params"]["keep"] = str(int(value))
		elif key == "MaxAge":
			# Create structure if needed
			self.create_dicts(self.values, ("Versioning", "Params", "maxAge"))
			self.values["Versioning"]["Params"]["maxAge"] = str(int(value) * 86400) # days to seconds
		elif key == "VersionsPath":
			# Create structure if needed
			self.create_dicts(self.values, ("Versioning", "Params", "versionsPath"))
			self.values["Versioning"]["Params"]["versionsPath"] = value
		elif key == "INotify":
			l = self.app.config["use_inotify"]
			if value:
				if not self.id in l:
					l.append(self.id)
			else:
				while self.id in l:
					l.remove(self.id)
			self.app.config["use_inotify"] = l
		else:
			EditorDialog.set_value(self, key, value)
Example #3
0
 def __init__(self, app, is_new, id=None, path=None):
     EditorDialog.__init__(
         self, app, "folder-edit.glade",
         "New Shared Folder" if is_new else "Edit Shared Folder")
     self.id = id
     self.path = path
     self.is_new = is_new
Example #4
0
	def __init__(self, app, is_new, id=None):
		EditorDialog.__init__(self, app,
			"folder-edit.glade",
			"New Shared Folder" if is_new else "Edit Shared Folder"
			)
		self.id = id
		self.is_new = is_new
Example #5
0
 def set_value(self, key, value):
     if key == "Versioning":
         # Create structure if needed
         self.create_dicts(self.values, ("Versioning", "Type"))
         self.values["Versioning"]["Type"] = value
     elif key == "KeepVersions":
         # Create structure if needed
         self.create_dicts(self.values, ("Versioning", "Params", "keep"))
         self.values["Versioning"]["Params"]["keep"] = str(int(value))
     elif key == "MaxAge":
         # Create structure if needed
         self.create_dicts(self.values, ("Versioning", "Params", "maxAge"))
         self.values["Versioning"]["Params"]["maxAge"] = str(
             int(value) * 86400)  # days to seconds
     elif key == "VersionsPath":
         # Create structure if needed
         self.create_dicts(self.values,
                           ("Versioning", "Params", "versionsPath"))
         self.values["Versioning"]["Params"]["versionsPath"] = value
     elif key == "INotify":
         l = self.app.config["use_inotify"]
         if value:
             if not self.id in l:
                 l.append(self.id)
         else:
             while self.id in l:
                 l.remove(self.id)
         self.app.config["use_inotify"] = l
     else:
         EditorDialog.set_value(self, key, value)
Example #6
0
 def store_value(self, key, w):
     if key == "vFolders":  # And this one is special too
         # Generate dict of { folder_id : bool } where bool is True if
         # folder should be shared with this device
         folders = {}
         for b in self["vFolders"].get_children():
             folders[b.get_tooltip_text()] = b.get_active()
         # Go over all Folders/<folder>/Devices/<device> keys in config
         # and set them as needed
         nid = self.get_value("DeviceID")
         for r in self.config["Folders"]:
             rid = r["ID"]
             found = False
             for n in r["Devices"]:
                 if n["DeviceID"] == nid:
                     if not rid in folders or not folders[rid]:
                         # Remove this /<device> key (unshare folder with device)
                         r["Devices"].remove(n)
                         break
                     found = True
             if (not found) and (rid in folders) and folders[rid]:
                 # Add new /<device> key (share folder with device)
                 r["Devices"].append({
                     "Addresses": None,
                     "DeviceID": nid,
                     "Name": "",
                     "CertName": "",
                     "Compression": False
                 })
     else:
         EditorDialog.store_value(self, key, w)
Example #7
0
	def store_value(self, key, w):
		if key == "vFolders":	# And this one is special too
			# Generate dict of { folder_id : bool } where bool is True if
			# folder should be shared with this device
			folders = {}
			for b in self["vFolders"].get_children():
				folders[b.get_tooltip_text()] = b.get_active()
			# Go over all Folders/<folder>/Devices/<device> keys in config
			# and set them as needed
			nid = self.get_value("DeviceID")
			for r in self.config["Folders"]:
				rid = r["ID"]
				found = False
				for n in r["Devices"]:
					if n["DeviceID"] == nid:
						if not rid in folders or not folders[rid]:
							# Remove this /<device> key (unshare folder with device)
							r["Devices"].remove(n)
							break
						found = True
				if (not found) and (rid in folders) and folders[rid]:
					# Add new /<device> key (share folder with device)
					r["Devices"].append({
					   "Addresses" : None,
					   "DeviceID" : nid,
					   "Name" : "",
					   "CertName" : "",
					   "Compression" : False
						})
		else:
			EditorDialog.store_value(self, key, w)
Example #8
0
	def set_value(self, key, value):
		if key == "autostart":
			set_run_on_startup(value, "Syncthing-GTK", get_executable(),
				"/usr/share/syncthing-gtk/icons/st-logo-128.png",
				"GUI for Syncthing")
		elif key in ("daemon_priority", "daemon_iopriority"):
			return EditorDialog.set_value(self, key, int(value))
		else:
			return EditorDialog.set_value(self, key, value)
	def set_value(self, key, value):
		if key == "autostart":
			set_run_on_startup(value, "Syncthing-GTK", get_executable(),
				"/usr/share/syncthing-gtk/icons/st-logo-128.png",
				"GUI for Syncthing")
		elif key == "daemon_priority":
			return EditorDialog.set_value(self, key, int(value))
		else:
			return EditorDialog.set_value(self, key, value)
Example #10
0
	def __init__(self, app):
		EditorDialog.__init__(self, app, "find-daemon.glade",
			_("Can't invoke the daemon"))
		self.app = app
		exe = "syncthing.exe" if IS_WINDOWS else _("Syncthing binary")
		self["lblMessage"].set_markup("%s\n%s" % (
			_("Syncthing daemon binary cannot be found."),
			_("If you have Syncthing installed, please, set path to "
			  "%s bellow or click on <b>Download</b> "
			  "button to download latest Syncthing package.") % (exe,)
		))
Example #11
0
	def __init__(self, app):
		EditorDialog.__init__(self, app, "find-daemon.glade",
			_("Can't invoke the daemon"))
		self.app = app
		exe = "syncthing.exe" if IS_WINDOWS else _("Syncthing binary")
		self["lblMessage"].set_markup("%s\n%s" % (
			_("Syncthing daemon binary cannot be found."),
			_("If you have Syncthing installed, please, set path to "
			  "%s bellow or click on <b>Download</b> "
			  "button to download latest Syncthing package.") % (exe,)
		))
Example #12
0
 def store_value(self, key, w):
     if key == "vDevices":  # Still very special case
         devices = [{
             "Addresses": None,
             "DeviceID": b.get_tooltip_text(),
             "Name": "",
             "CertName": "",
             "Compression": False
         } for b in self["vDevices"].get_children() if b.get_active()]
         self.set_value("Devices", devices)
     else:
         EditorDialog.store_value(self, key, w)
Example #13
0
	def display_value(self, key, w):
		if key == "vDevices":
			# Very special case
			nids = [ n["DeviceID"] for n in self.get_value("Devices") ]
			for device in self.app.devices.values():
				if device["id"] != self.app.daemon.get_my_id():
					b = Gtk.CheckButton(device.get_title(), False)
					b.set_tooltip_text(device["id"])
					self["vDevices"].pack_end(b, False, False, 0)
					b.set_active(device["id"] in nids)
			self["vDevices"].show_all()
		else:
			EditorDialog.display_value(self, key, w)
Example #14
0
 def display_value(self, key, w):
     if key == "vDevices":
         # Very special case
         nids = [n["DeviceID"] for n in self.get_value("Devices")]
         for device in self.app.devices.values():
             if device["id"] != self.app.daemon.get_my_id():
                 b = Gtk.CheckButton(device.get_title(), False)
                 b.set_tooltip_text(device["id"])
                 self["vDevices"].pack_end(b, False, False, 0)
                 b.set_active(device["id"] in nids)
         self["vDevices"].show_all()
     else:
         EditorDialog.display_value(self, key, w)
Example #15
0
	def store_value(self, key, w):
		if key == "vDevices":	# Still very special case
			devices = [ {
					   "Addresses" : None,
					   "DeviceID" : b.get_tooltip_text(),
					   "Name" : "",
					   "CertName" : "",
					   "Compression" : False
						}
						for b in self["vDevices"].get_children()
						if b.get_active()
					]
			self.set_value("Devices", devices)
		else:
			EditorDialog.store_value(self, key, w)
Example #16
0
	def get_value(self, key):
		if key == "ListenAddress":
			return ",".join([ x.strip() for x in self.values[key]])
		elif key == "MaxSendKbpsEnabled":
			return (self.values["MaxSendKbps"] != 0)
		else:
			return EditorDialog.get_value(self, key)
Example #17
0
	def set_value(self, key, value):
		if key == "ListenAddress":
			self.values[key] = [ x.strip() for x in value.split(",") ]
		elif key == "GlobalAnnServers":
			self.values[key] = [ x.strip() for x in value.split(",") ]
			if "GlobalAnnServer" in self.values:
				# For Syncthing < 0.9.10
				if len(self.values[key]) > 0:
					self.values["GlobalAnnServer"] = self.values[key][0]
				else:
					self.values["GlobalAnnServer"] = ""
		elif key == "URAccepted":
			self.values[key] = 1 if value else -1
		elif key == "MaxSendKbpsEnabled":
			if value:
				if self.values["MaxSendKbps"] <= 0:
					self.values["MaxSendKbps"] = 1
					self.find_widget_by_id("vMaxSendKbps").get_adjustment().set_value(self.values["MaxSendKbps"])
			else:
				self.values["MaxSendKbps"] = 0
				print "MaxSendKbpsEnabled : MaxSendKbps zeroed"
				self.find_widget_by_id("vMaxSendKbps").get_adjustment().set_value(self.values["MaxSendKbps"])
		elif key == "MaxRecvKbpsEnabled":
			if value:
				if self.values["MaxRecvKbps"] <= 0:
					self.values["MaxRecvKbps"] = 1
					self.find_widget_by_id("vMaxRecvKbps").get_adjustment().set_value(self.values["MaxRecvKbps"])
			else:
				self.values["MaxRecvKbps"] = 0
				self.find_widget_by_id("vMaxRecvKbps").get_adjustment().set_value(self.values["MaxRecvKbps"])
		else:
			return EditorDialog.set_value(self, key, value)
Example #18
0
	def store_value(self, key, w):
		if key == "vautostart_daemon":
			if   self["rbOnStartWait"].get_active() : self.set_value(key[1:], 0)
			elif self["rbOnStartRun"].get_active() : self.set_value(key[1:], 1)
			else: return self.set_value(key[1:], 2)	# vOnStartAsk
		elif key == "vautokill_daemon":
			if self["rbOnExitTerminate"].get_active() : return self.set_value(key[1:], 1)
			elif self["rbOnExitLeave"].get_active() : return self.set_value(key[1:], 0)
			else: return self.set_value(key[1:], 2)	# vOnExitAsk
		elif key == "vst_autoupdate":
			# Reset updatecheck timer when autoupdate is turned on
			if self["vst_autoupdate"].get_active():
				self.values["last_updatecheck"] = LONG_AGO
			return EditorDialog.store_value(self, key, w)
		else:
			return EditorDialog.store_value(self, key, w)
	def store_value(self, key, w):
		if key == "vautostart_daemon":
			if   self["rbOnStartWait"].get_active() : self.set_value(key[1:], 0)
			elif self["rbOnStartRun"].get_active() : self.set_value(key[1:], 1)
			else: return self.set_value(key[1:], 2)	# vOnStartAsk
		elif key == "vautokill_daemon":
			if self["rbOnExitTerminate"].get_active() : return self.set_value(key[1:], 1)
			elif self["rbOnExitLeave"].get_active() : return self.set_value(key[1:], 0)
			else: return self.set_value(key[1:], 2)	# vOnExitAsk
		elif key == "vst_autoupdate":
			# Reset updatecheck timer when autoupdate is turned on
			if self["vst_autoupdate"].get_active():
				self.values["last_updatecheck"] = LONG_AGO
			return EditorDialog.store_value(self, key, w)
		else:
			return EditorDialog.store_value(self, key, w)
Example #20
0
	def display_value(self, key, w):
		if key == "vFolders":
			# Even more special case
			rids = [ ]
			# Get list of folders that share this device
			for r in self.config["Folders"]:
				for n in r["Devices"]:
					if n["DeviceID"] == self.id:
						rids.append(r["ID"])
			# Create CheckButtons
			for folder in reversed(sorted(self.app.folders.values(), key=lambda x : x["id"])):
				b = Gtk.CheckButton(folder["path"], False)
				b.set_tooltip_text(folder["id"])
				self["vFolders"].pack_end(b, False, False, 0)
				b.set_active(folder["id"] in rids)
			self["vFolders"].show_all()
		else:
			EditorDialog.display_value(self, key, w)
Example #21
0
 def display_value(self, key, w):
     if key == "vFolders":
         # Even more special case
         rids = []
         # Get list of folders that share this device
         for r in self.config["Folders"]:
             for n in r["Devices"]:
                 if n["DeviceID"] == self.id:
                     rids.append(r["ID"])
         # Create CheckButtons
         for folder in reversed(
                 sorted(self.app.folders.values(), key=lambda x: x["id"])):
             b = Gtk.CheckButton(folder["path"], False)
             b.set_tooltip_text(folder["id"])
             self["vFolders"].pack_end(b, False, False, 0)
             b.set_active(folder["id"] in rids)
         self["vFolders"].show_all()
     else:
         EditorDialog.display_value(self, key, w)
Example #22
0
 def __init__(self, app):
     EditorDialog.__init__(self, app, "find-daemon.glade",
                           _("Can't invoke the daemon"))
     self.app = app
     exe = "syncthing.exe" if IS_WINDOWS else _("Syncthing binary")
     self["lblMessage"].set_markup(
         "%s\n%s" %
         (_("Syncthing daemon binary cannot be found."),
          _("If you have Syncthing installed, please, set path to "
            "%s below or click on <b>Download</b> "
            "button to download latest Syncthing package.") % (exe, )))
     if IS_XP or StDownloader is None:
         # Downloading is not offered on XP (github will not talk to it)
         # or if StDownloader module is not packaged
         self["lblMessage"].set_markup(
             "%s\n%s" %
             (_("Syncthing daemon binary cannot be found."),
              _("If you have Syncthing installed, please, set path to "
                "%s below") % (exe, )))
         self.hide_download_button()
Example #23
0
	def store_value(self, key, w):
		if key == "vautostart_daemon":
			if   self["rbOnStartWait"].get_active() : self.set_value(key[1:], 0)
			elif self["rbOnStartRun"].get_active() : self.set_value(key[1:], 1)
			else: return self.set_value(key[1:], 2)	# vOnStartAsk
		elif key == "vautokill_daemon":
			if self["rbOnExitTerminate"].get_active() : return self.set_value(key[1:], 1)
			elif self["rbOnExitLeave"].get_active() : return self.set_value(key[1:], 0)
			else: return self.set_value(key[1:], 2)	# vOnExitAsk
		else:
			return EditorDialog.store_value(self, key, w)
Example #24
0
	def __init__(self, app):
		EditorDialog.__init__(self, app, "find-daemon.glade",
			_("Can't invoke the daemon"))
		self.app = app
		exe = "syncthing.exe" if IS_WINDOWS else _("Syncthing binary")
		self["lblMessage"].set_markup("%s\n%s" % (
			_("Syncthing daemon binary cannot be found."),
			_("If you have Syncthing installed, please, set path to "
			  "%s bellow or click on <b>Download</b> "
			  "button to download latest Syncthing package.") % (exe,)
		))
		if IS_XP or StDownloader is None:
			# Downloading is not offered on XP (github will not talk to it)
			# or if StDownloader module is not packaged
			self["lblMessage"].set_markup("%s\n%s" % (
				_("Syncthing daemon binary cannot be found."),
				_("If you have Syncthing installed, please, set path to "
				  "%s bellow") % (exe,)
			))
			self.hide_download_button()
 def display_value(self, key, w):
     if key == "vautostart_daemon":
         value = self.get_value(key[1:])
         if value == 0: self["rbOnStartWait"].set_active(True)
         elif value == 1: self["rbOnStartRun"].set_active(True)
         else: self["rbOnStartAsk"].set_active(True)
     elif key == "vautokill_daemon":
         value = self.get_value(key[1:])
         if value == 1: self["rbOnExitTerminate"].set_active(True)
         elif value == 0: self["rbOnExitLeave"].set_active(True)
         else: self["rbOnExitAsk"].set_active(True)
     else:
         return EditorDialog.display_value(self, key, w)
	def display_value(self, key, w):
		if key == "vautostart_daemon":
			value = self.get_value(key[1:])
			if   value == 0: self["rbOnStartWait"].set_active(True)
			elif value == 1: self["rbOnStartRun"].set_active(True)
			else: self["rbOnStartAsk"].set_active(True)
		elif key == "vautokill_daemon":
			value = self.get_value(key[1:])
			if   value == 1: self["rbOnExitTerminate"].set_active(True)
			elif value == 0: self["rbOnExitLeave"].set_active(True)
			else: self["rbOnExitAsk"].set_active(True)
		else:
			return EditorDialog.display_value(self, key, w)
Example #27
0
	def get_value(self, key):
		if key == "KeepVersions":
			return self.get_burried_value("Versioning/Params/keep", self.values, 0, int)
		elif key == "MaxAge":
			return self.get_burried_value("Versioning/Params/maxAge", self.values, 0, int) / 86400 # seconds to days
		elif key == "VersionsPath":
			return self.get_burried_value("Versioning/Params/versionsPath", self.values, "")
		elif key == "Versioning":
			return self.get_burried_value("Versioning/Type", self.values, "")
		elif key == "INotify":
			return self.id in self.app.config["use_inotify"]
		else:
			return EditorDialog.get_value(self, key)
Example #28
0
	def set_value(self, key, value):
		if key == "ListenAddress":
			self.values[key] = [ x.strip() for x in value.split(",") ]
		elif key == "URAccepted":
			self.values[key] = 1 if value else 0
		elif key == "MaxSendKbpsEnabled":
			if value:
				if self.values["MaxSendKbps"] <= 0:
					self.values["MaxSendKbps"] = 1
			else:
				self.values["MaxSendKbps"] = 0
			self.find_widget_by_id("vMaxSendKbps").get_adjustment().set_value(self.values["MaxSendKbps"])
		else:
			return EditorDialog.set_value(self, key, value)
Example #29
0
	def get_value(self, key):
		if key == "ListenAddress":
			return ", ".join([ x.strip() for x in self.values[key]])
		elif key == "GlobalAnnServers":
			if "GlobalAnnServer" in self.values:
				# For Syncthing < 0.9.10
				return self.values["GlobalAnnServer"]
			return ", ".join([ x.strip() for x in self.values["GlobalAnnServers"]])
		elif key == "URAccepted":
			return (self.values["URAccepted"] == 1)
		elif key == "MaxSendKbpsEnabled":
			return (self.values["MaxSendKbps"] != 0)
		elif key == "MaxRecvKbpsEnabled":
			return (self.values["MaxRecvKbps"] != 0)
		else:
			return EditorDialog.get_value(self, key)
Example #30
0
 def get_value(self, key):
     if key == "KeepVersions":
         return self.get_burried_value("Versioning/Params/keep",
                                       self.values, 0, int)
     elif key == "MaxAge":
         return self.get_burried_value("Versioning/Params/maxAge",
                                       self.values, 0,
                                       int) / 86400  # seconds to days
     elif key == "VersionsPath":
         return self.get_burried_value("Versioning/Params/versionsPath",
                                       self.values, "")
     elif key == "Versioning":
         return self.get_burried_value("Versioning/Type", self.values, "")
     elif key == "INotify":
         return self.id in self.app.config["use_inotify"]
     else:
         return EditorDialog.get_value(self, key)
Example #31
0
 def get_value(self, key):
     if key == "ListenAddress":
         return ", ".join([x.strip() for x in self.values[key]])
     elif key == "GlobalAnnServers":
         if "GlobalAnnServer" in self.values:
             # For Syncthing < 0.9.10
             return self.values["GlobalAnnServer"]
         return ", ".join(
             [x.strip() for x in self.values["GlobalAnnServers"]])
     elif key == "URAccepted":
         return (self.values["URAccepted"] == 1)
     elif key == "MaxSendKbpsEnabled":
         return (self.values["MaxSendKbps"] != 0)
     elif key == "MaxRecvKbpsEnabled":
         return (self.values["MaxRecvKbps"] != 0)
     else:
         return EditorDialog.get_value(self, key)
Example #32
0
 def set_value(self, key, value):
     if key == "ListenAddress":
         self.values[key] = [x.strip() for x in value.split(",")]
     elif key == "GlobalAnnServers":
         self.values[key] = [x.strip() for x in value.split(",")]
         if "GlobalAnnServer" in self.values:
             # For Syncthing < 0.9.10
             if len(self.values[key]) > 0:
                 self.values["GlobalAnnServer"] = self.values[key][0]
             else:
                 self.values["GlobalAnnServer"] = ""
     elif key == "URAccepted":
         self.values[key] = 1 if value else -1
     elif key == "MaxSendKbpsEnabled":
         if value:
             if self.values["MaxSendKbps"] <= 0:
                 self.values["MaxSendKbps"] = 1
                 self.find_widget_by_id(
                     "vMaxSendKbps").get_adjustment().set_value(
                         self.values["MaxSendKbps"])
         else:
             self.values["MaxSendKbps"] = 0
             self.find_widget_by_id(
                 "vMaxSendKbps").get_adjustment().set_value(
                     self.values["MaxSendKbps"])
     elif key == "MaxRecvKbpsEnabled":
         if value:
             if self.values["MaxRecvKbps"] <= 0:
                 self.values["MaxRecvKbps"] = 1
                 self.find_widget_by_id(
                     "vMaxRecvKbps").get_adjustment().set_value(
                         self.values["MaxRecvKbps"])
         else:
             self.values["MaxRecvKbps"] = 0
             self.find_widget_by_id(
                 "vMaxRecvKbps").get_adjustment().set_value(
                     self.values["MaxRecvKbps"])
     else:
         return EditorDialog.set_value(self, key, value)
Example #33
0
 def __init__(self, app, is_new, id=None):
     EditorDialog.__init__(self, app, "device-edit.glade",
                           "New Device" if is_new else "Edit Device")
     self.id = id
     self.is_new = is_new
 def get_value(self, key):
     if key == "autostart":
         return is_ran_on_startup("Syncthing-GTK")
     else:
         return EditorDialog.get_value(self, key)
Example #35
0
 def get_value(self, key):
     if key == "Addresses":
         return ",".join([x.strip() for x in self.values[key]])
     else:
         return EditorDialog.get_value(self, key)
Example #36
0
 def set_value(self, key, value):
     if key == "Addresses":
         self.values[key] = [x.strip() for x in value.split(",")]
     else:
         return EditorDialog.set_value(self, key, value)
Example #37
0
	def __init__(self, app):
		EditorDialog.__init__(self, app, "daemon-settings.glade",
			"Syncthing Daemon Settings")
	def __init__(self, app):
		EditorDialog.__init__(self, app, "ui-settings.glade",
			_("UI Settings"))
		self.app = app
	def get_value(self, key):
		if key == "autostart":
			return is_ran_on_startup("Syncthing-GTK")
		else:
			return EditorDialog.get_value(self, key)
Example #40
0
	def get_value(self, key):
		if key == "Addresses":
			return ",".join([ x.strip() for x in self.values[key]])
		else:
			return EditorDialog.get_value(self, key)
Example #41
0
	def set_value(self, key, value):
		if key == "Addresses":
			self.values[key] = [ x.strip() for x in value.split(",") ]
		else:
			return EditorDialog.set_value(self, key, value)
 def __init__(self, app):
     EditorDialog.__init__(self, app, "ui-settings.glade", _("UI Settings"))
     self.app = app
Example #43
0
 def __init__(self, app):
     EditorDialog.__init__(self, app, "daemon-settings.glade",
                           "Syncthing Daemon Settings")