davemds pushed a commit to branch master.

http://git.enlightenment.org/apps/espionage.git/commit/?id=eeb4ae57529b8db8f1baaf29a2f8eae2977013f1

commit eeb4ae57529b8db8f1baaf29a2f8eae2977013f1
Author: davemds <d...@gurumeditation.it>
Date:   Sat Nov 2 19:58:47 2013 +0100

    Espionage: improved toolbar with checkbox for options
---
 espionage/espionage.py | 94 ++++++++++++++++++++++++++++++++++----------------
 1 file changed, 64 insertions(+), 30 deletions(-)

diff --git a/espionage/espionage.py b/espionage/espionage.py
index 8c955e4..545d682 100644
--- a/espionage/espionage.py
+++ b/espionage/espionage.py
@@ -25,6 +25,7 @@ from xml.etree import ElementTree
 
 from efl import evas
 from efl import elementary as elm
+from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL
 from efl.elementary.window import StandardWindow
 from efl.elementary.background import Background
 from efl.elementary.box import Box
@@ -38,6 +39,7 @@ from efl.elementary.label import Label
 from efl.elementary.panes import Panes
 from efl.elementary.popup import Popup
 from efl.elementary.separator import Separator
+from efl.elementary.table import Table
 from efl.elementary.genlist import Genlist, GenlistItem, GenlistItemClass
 from efl.dbus_mainloop import DBusEcoreMainLoop
 
@@ -45,7 +47,8 @@ from efl.dbus_mainloop import DBusEcoreMainLoop
 class Options(object):
     """class to contain application options"""
     def __init__(self):
-        self.hide_introspect_stuff = False
+        self.show_introspect_stuff = False
+        self.show_private_stuff = False
         self.pretty_output = True
 
 
@@ -274,10 +277,11 @@ class NamesList(Genlist):
         self.public_group = self.item_append(self.itc_g, "Public Services",
                                flags=elm.ELM_GENLIST_ITEM_GROUP)
         
self.public_group.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
-        
-        self.private_group = self.item_append(self.itc_g, "Private Services",
-                               flags=elm.ELM_GENLIST_ITEM_GROUP)
-        
self.private_group.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
+
+        if options.show_private_stuff:
+            self.private_group = self.item_append(self.itc_g, "Private 
Services",
+                                 flags=elm.ELM_GENLIST_ITEM_GROUP)
+            
self.private_group.select_mode_set(elm.ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY)
 
         # populate the genlist
         self.populate()
@@ -295,7 +299,8 @@ class NamesList(Genlist):
     
     def clear(self):
         self.public_group.subitems_clear()
-        self.private_group.subitems_clear()
+        if options.show_private_stuff:
+            self.private_group.subitems_clear()
 
     def item_selected_cb(self, gl, item):
         name = item.data
@@ -303,13 +308,13 @@ class NamesList(Genlist):
     
     def sort_cb(self, it1, it2):
         return 1 if it1.data.lower() < it2.data.lower() else -1
-        
 
     def service_add(self, name):
         # print("service_add('%s')" % name)
         if name.startswith(":"):
-            self.item_sorted_insert(self.itc, name, self.sort_cb,
-                                    self.private_group, 0, None)
+            if options.show_private_stuff:
+                self.item_sorted_insert(self.itc, name, self.sort_cb,
+                                        self.private_group, 0, None)
         else:
             self.item_sorted_insert(self.itc, name, self.sort_cb,
                                     self.public_group, 0, None)
@@ -364,6 +369,7 @@ class DetailList(Genlist):
     def __init__(self, parent):
         Genlist.__init__(self, parent)
         self._parent = parent
+        self.service_name = None
         self.itc = NodeItemClass()
         self.itc_g = ObjectItemClass()
         self.callback_expand_request_add(self.expand_request_cb)
@@ -371,10 +377,9 @@ class DetailList(Genlist):
         self.callback_contract_request_add(self.contract_request_cb)
         self.callback_contracted_add(self.contracted_cb)
         self.callback_clicked_double_add(self.double_click_cb)
-        
-        
+
     def populate(self, name):
-        print("populate: %s" % name)
+        self.service_name = name
         self.clear()
 
         # objects
@@ -385,7 +390,7 @@ class DetailList(Genlist):
             
             # interfaces
             for iface in obj.interfaces:
-                if options.hide_introspect_stuff and \
+                if not options.show_introspect_stuff and \
                    iface.name.startswith("org.freedesktop.DBus"):
                   continue
                 iface_item = self.item_append(self.itc, iface,
@@ -457,8 +462,8 @@ class MethodRunner(Popup):
             en.scrollable = True
             en.single_line = True
             en.entry = ''
-            en.size_hint_weight = evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND
-            en.size_hint_align = evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL
+            en.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
+            en.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL
             en.show()
             vbox.pack_end(en)
 
@@ -477,8 +482,8 @@ class MethodRunner(Popup):
 
         en = Entry(parent)
         self._return_entry = en
-        en.size_hint_weight = evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND
-        en.size_hint_align = evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL
+        en.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
+        en.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL
         en.editable = False
         en.scrollable = True
         en.disabled = True
@@ -563,42 +568,62 @@ class MethodRunner(Popup):
 ### The main window
 class MyWin(StandardWindow):
     def __init__(self):
-        StandardWindow.__init__(self, "efl-dbus-spy", "EFL DBus Spy - 
Espionage")
+        StandardWindow.__init__(self, "espionage", "EFL DBus Spy - Espionage")
 
         self.autodel_set(True)
         self.callback_delete_request_add(lambda o: elm.exit())
 
         bg = Background(self)
         self.resize_object_add(bg)
-        bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
+        bg.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
         bg.show()
 
         box = Box(self)
         self.resize_object_add(box)
-        box.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
+        box.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
         box.show()
-        
-        flip = FlipSelector(self)
+
+        tb = Table(self)
+        box.pack_end(tb)
+        tb.show()
+
+        lb = Label(self, text="Connect to:", scale=1.3)
+        tb.pack(lb, 0, 0, 1, 2)
+        lb.show()
+
+        flip = FlipSelector(self, scale=1.3)
         flip.item_append("Session Bus", self.flip_selected_cb, session_bus)
         flip.item_append("System Bus", self.flip_selected_cb, system_bus)
-        box.pack_end(flip)
+        tb.pack(flip, 1, 0, 1, 2)
         flip.show()
-        
+
+        chk = Check(self, text="Show private services")
+        chk.size_hint_align = 0.0, 1.0
+        chk.state = options.show_private_stuff
+        chk.callback_changed_add(self.show_private_cb)
+        tb.pack(chk, 2, 0, 1, 1)
+        chk.show()
+
+        chk = Check(self, text="Show DBus introspectables")
+        chk.size_hint_align = 0.0, 0.0
+        chk.state = options.show_introspect_stuff
+        chk.callback_changed_add(self.show_introspectables_cb)
+        tb.pack(chk, 2, 1, 1, 1)
+        chk.show()
+
         panes = Panes(self)
-        panes.size_hint_weight = (evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND)
-        panes.size_hint_align = (evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL)
-        # panes.content_left_size = 0.333
-        # panes.fixed = True
+        panes.size_hint_weight = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND
+        panes.size_hint_align = EVAS_HINT_FILL, EVAS_HINT_FILL
+        panes.content_left_size = 1.0 / 3
         box.pack_end(panes)
+        self.panes = panes
         panes.show()
 
         self.names_list = NamesList(self)
         panes.part_content_set("left", self.names_list)
-        self.names_list.show()
 
         self.detail_list = DetailList(self)
         panes.part_content_set("right", self.detail_list)
-        self.detail_list.show()
 
         self.resize(700, 500)
         self.show()
@@ -611,6 +636,15 @@ class MyWin(StandardWindow):
         self.names_list.clear()
         self.names_list.populate()
 
+    def show_private_cb(self, chk):
+        options.show_private_stuff = chk.state
+        self.names_list.delete()
+        self.names_list = NamesList(self)
+        self.panes.part_content_set("left", self.names_list)
+
+    def show_introspectables_cb(self, chk):
+        options.show_introspect_stuff = chk.state
+        self.detail_list.populate(self.detail_list.service_name)
 
 def main():
     elm.init()

-- 


Reply via email to