summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2005-10-27 21:50:41 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2005-10-27 21:50:41 +0000
commita3d9ef916e2b6a71c7360c2dd4ff21d02a30da08 (patch)
tree0ec4d1945a398181d00c5eb95025843d546c6f84
parenta3dcede67b491fd3238f5b1c7e07502df13dca10 (diff)
* 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
-rwxr-xr-xsrc/service-discovery-applet.in20
1 files changed, 20 insertions, 0 deletions
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()
###############################################################################
#