From 62173f2e3cd486569b16a0ebe1cff52fa95807b7 Mon Sep 17 00:00:00 2001 From: Sebastien Estienne Date: Tue, 4 Oct 2005 22:40:25 +0000 Subject: * remove default services from schema * fix a small bug in config with gconf * add a first_run setup git-svn-id: file:///home/lennart/svn/public/service-discovery-applet/trunk@35 3be567f1-68ff-0310-b24a-ad7cc433fd2f --- schemas/service-discovery-applet.schemas | 42 +++++++++----------------------- src/service-discovery-applet.in | 28 ++++++++++++++------- src/service-discovery-config.in | 2 ++ 3 files changed, 32 insertions(+), 40 deletions(-) diff --git a/schemas/service-discovery-applet.schemas b/schemas/service-discovery-applet.schemas index f6afac6..2ceaefa 100644 --- a/schemas/service-discovery-applet.schemas +++ b/schemas/service-discovery-applet.schemas @@ -14,47 +14,27 @@ - /schemas/apps/service-discovery-applet/services/_ssh._tcp - /apps/service-discovery-applet/services/_ssh._tcp + /schemas/apps/service-discovery-applet/options/show_local_services + /apps/service-discovery-applet/options/show_local_services service-discovery-applet bool - TRUE - - - - - - - /schemas/apps/service-discovery-applet/services/_ftp._tcp - /apps/service-discovery-applet/services/_ftp._tcp - service-discovery-applet - bool - TRUE + FALSE - - - - - - /schemas/apps/service-discovery-applet/services/_https._tcp - /apps/service-discovery-applet/services/_https._tcp - service-discovery-applet - bool - TRUE - - - + Browse for your own services. + + - /schemas/apps/service-discovery-applet/services/_http._tcp - /apps/service-discovery-applet/services/_http._tcp + /schemas/apps/service-discovery-applet/options/first_run + /apps/service-discovery-applet/options/first_run service-discovery-applet bool TRUE - - + First time you start the app? + + diff --git a/src/service-discovery-applet.in b/src/service-discovery-applet.in index 4331f73..ad6420d 100755 --- a/src/service-discovery-applet.in +++ b/src/service-discovery-applet.in @@ -52,6 +52,16 @@ except ImportError, e: #from gettext import gettext as _ +# default browsing value +first_run_services = { + "_http._tcp" : True, + "_https._tcp" : False, + "_ssh._tcp" : True, + "_sftp-ssh._tcp" : False, + "_ftp._tcp" : True, + } + + class ServiceDiscoveryApplet(gnomeapplet.Applet): def __init__(self, applet, iid): self.__gobject_init__() @@ -79,6 +89,14 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): self.gc_client.notify_add (self.gc_services, self.gc_services_cb) self.gc_client.notify_add (self.gc_options, self.gc_options_cb) + + # init first run browsing services + if self.gc_client.get_bool ("%s/%s" % (self.gc_options,"first_run")): + self.gc_client.set_bool("%s/%s" % (self.gc_options, "first_run"), False) + for service_type, enabled in first_run_services.iteritems(): + self.gc_client.set_bool("%s/%s" % (self.gc_services, service_type), enabled) + + self.eb = gtk.EventBox() self.eb.set_events(gtk.gdk.POINTER_MOTION_MASK) self.eb.connect("button-press-event", self.on_button_press) @@ -193,22 +211,14 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): def remove_service(self, interface, protocol, name, type, domain): print "Service '%s' of type '%s' in domain '%s' on %s.%i disappeared." % (name, type, domain, self.siocgifname(interface), protocol) - try: - if self.show_local_services == False: - # FIXME avahi bug? - if self.server.IsServiceLocal( interface, protocol, name, type, domain) == True: - return - except dbus.dbus_bindings.DBusException: - pass - if self.zc_services.has_key((interface, protocol, name, type, domain)): self.zc_types[type].remove(self.zc_services[(interface, protocol, name, type, domain)]) + self.display_service_notification(False, name, type) if self.zc_types[type].get_children() == []: self.service_menu.remove(self.zc_types[type].get_attach_widget()) del self.zc_types[type] - self.display_service_notification(False, name, type) def display_service_notification(self, new, name, type): # FIXME handle this in avahi.ServiceTypeDatabase diff --git a/src/service-discovery-config.in b/src/service-discovery-config.in index 12588fd..b0aa57f 100755 --- a/src/service-discovery-config.in +++ b/src/service-discovery-config.in @@ -121,6 +121,7 @@ class Config_window(SimpleGladeApp): old_service_type = model.get_value(iter, column) old_service_enabled= model.get_value(iter, COLUMN_ENABLED) self.gc_client.unset("%s/%s" % (gc_services, old_service_type)) + self.gc_client.suggest_sync() model.set(iter, column, service_type) self.gc_client.set_bool("%s/%s" % (gc_services, service_type), old_service_enabled) @@ -142,6 +143,7 @@ class Config_window(SimpleGladeApp): path = model.get_path(iter)[0] service_type = model.get_value(iter,COLUMN_SERVICE) self.gc_client.unset("%s/%s" % (gc_services, service_type)) + self.gc_client.suggest_sync() model.remove(iter) #FIXME remove entry from gconf -- cgit