From a3d9ef916e2b6a71c7360c2dd4ff21d02a30da08 Mon Sep 17 00:00:00 2001 From: Sebastien Estienne Date: Thu, 27 Oct 2005 21:50:41 +0000 Subject: * add support for displaying "no service found" git-svn-id: file:///home/lennart/svn/public/service-discovery-applet/trunk@72 3be567f1-68ff-0310-b24a-ad7cc433fd2f --- src/service-discovery-applet.in | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/service-discovery-applet.in b/src/service-discovery-applet.in index e9d1a67..0b86cab 100755 --- a/src/service-discovery-applet.in +++ b/src/service-discovery-applet.in @@ -81,6 +81,8 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): self.service_browsers = {} self.service_menu = gtk.Menu() self.service_menu.connect("hide", self.on_hide_service_menu) + self.add_no_services_menuitem() + self.zc_types = {} self.zc_services = {} self.zc_pretty_name = avahi.ServiceTypeDatabase.ServiceTypeDatabase() @@ -202,6 +204,11 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): except dbus.dbus_bindings.DBusException: pass + # if we found a service, remove "No service found" + if self.zc_types == {}: + for menuitem in self.service_menu.get_children(): + self.service_menu.remove(menuitem) + if self.zc_types.has_key(type) == False: if self.zc_pretty_name.has_key(type): pretty_name = self.zc_pretty_name[type] @@ -243,6 +250,9 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): self.service_menu.remove(self.zc_types[type].get_attach_widget()) del self.zc_types[type] + if self.zc_types == {}: + self.add_no_services_menuitem() + def add_service_type(self, interface, protocol, type, domain): # Are we already browsing this domain for this type? if self.service_browsers.has_key((interface, protocol, type, domain)): @@ -277,6 +287,16 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): if self.zc_types.has_key(type): self.service_menu.remove(self.zc_types[type].get_attach_widget()) del self.zc_types[type] + if len(self.zc_types) == 0: + self.add_no_services_menuitem() + + def add_no_services_menuitem(self): + for menuitem in self.service_menu.get_children(): + self.service_menu.remove(menuitem) + menuitem = gtk.MenuItem(_("No services found")) + menuitem.set_sensitive(False) + self.service_menu.add(menuitem) + menuitem.show_all() ############################################################################### # -- cgit