summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2005-10-04 22:40:25 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2005-10-04 22:40:25 +0000
commit62173f2e3cd486569b16a0ebe1cff52fa95807b7 (patch)
treea06c7ae1f858ad3c2e844d0a2fdcbf976e7785fc
parentb43e6b19808b4fb0ea7fc7ecf7670888c094cf15 (diff)
* 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
-rw-r--r--schemas/service-discovery-applet.schemas42
-rwxr-xr-xsrc/service-discovery-applet.in28
-rwxr-xr-xsrc/service-discovery-config.in2
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 @@
</locale>
</schema>
<schema>
- <key>/schemas/apps/service-discovery-applet/services/_ssh._tcp</key>
- <applyto>/apps/service-discovery-applet/services/_ssh._tcp</applyto>
+ <key>/schemas/apps/service-discovery-applet/options/show_local_services</key>
+ <applyto>/apps/service-discovery-applet/options/show_local_services</applyto>
<owner>service-discovery-applet</owner>
<type>bool</type>
- <default>TRUE</default>
- <locale name="C">
- <short></short>
- <long></long>
- </locale>
- </schema>
- <schema>
- <key>/schemas/apps/service-discovery-applet/services/_ftp._tcp</key>
- <applyto>/apps/service-discovery-applet/services/_ftp._tcp</applyto>
- <owner>service-discovery-applet</owner>
- <type>bool</type>
- <default>TRUE</default>
+ <default>FALSE</default>
<locale name="C">
- <short></short>
- <long></long>
- </locale>
- </schema>
- <schema>
- <key>/schemas/apps/service-discovery-applet/services/_https._tcp</key>
- <applyto>/apps/service-discovery-applet/services/_https._tcp</applyto>
- <owner>service-discovery-applet</owner>
- <type>bool</type>
- <default>TRUE</default>
- <locale name="C">
- <short></short>
- <long></long>
+ <short>Browse for your own services.</short>
+ <long>
+ </long>
</locale>
</schema>
<schema>
- <key>/schemas/apps/service-discovery-applet/services/_http._tcp</key>
- <applyto>/apps/service-discovery-applet/services/_http._tcp</applyto>
+ <key>/schemas/apps/service-discovery-applet/options/first_run</key>
+ <applyto>/apps/service-discovery-applet/options/first_run</applyto>
<owner>service-discovery-applet</owner>
<type>bool</type>
<default>TRUE</default>
<locale name="C">
- <short></short>
- <long></long>
+ <short>First time you start the app?</short>
+ <long>
+ </long>
</locale>
</schema>
</schemalist>
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