[Ocfs2-tools-commits] manish commits r715 - trunk/ocfs2console/ocfs2interface

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Mon Mar 21 02:14:29 CST 2005


Author: manish
Date: 2005-03-21 02:14:27 -0600 (Mon, 21 Mar 2005)
New Revision: 715

Modified:
   trunk/ocfs2console/ocfs2interface/console.py
   trunk/ocfs2console/ocfs2interface/menu.py
   trunk/ocfs2console/ocfs2interface/partitionview.py
Log:
Menu item sensitivity based on list selection


Modified: trunk/ocfs2console/ocfs2interface/console.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/console.py	2005-03-21 05:32:02 UTC (rev 714)
+++ trunk/ocfs2console/ocfs2interface/console.py	2005-03-21 08:14:27 UTC (rev 715)
@@ -69,9 +69,10 @@
 
         menu = Menu(self)
 
-        menubar, unmounted_items = menu.get_widgets()
+        menubar, sel_items, unmounted_items = menu.get_widgets()
         vbox.pack_start(menubar, expand=False, fill=False)
 
+        self.pv.add_sel_widgets(sel_items)
         self.pv.add_unmount_widgets(unmounted_items)
 
         toolbar = Toolbar(self)

Modified: trunk/ocfs2console/ocfs2interface/menu.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/menu.py	2005-03-21 05:32:02 UTC (rev 714)
+++ trunk/ocfs2console/ocfs2interface/menu.py	2005-03-21 08:14:27 UTC (rev 715)
@@ -19,6 +19,9 @@
 
 from fsck import fsck_ok
 
+UNMOUNTED_ONLY = 42
+NEED_SELECTION = 43
+
 try:
     stock_about = gtk.STOCK_ABOUT
 except AttributeError:
@@ -38,8 +41,10 @@
 
 if fsck_ok:
     task_menu_fsck_data = (
-        ('/Tasks/Chec_k...',       '<control>K', 'check',    'refresh'),
-        ('/Tasks/_Repair...',      '<control>R', 'repair',   'refresh', True),
+        ('/Tasks/Chec_k...',       '<control>K', 'check',    'refresh',
+         NEED_SELECTION),
+        ('/Tasks/_Repair...',      '<control>R', 'repair',   'refresh',
+         UNMOUNTED_ONLY),
         ('/Tasks/---',             None,         None,       0, '<Separator>')
     )
 else:
@@ -52,8 +57,10 @@
 )
 
 task_menu_tail_data = (
-    ('/Tasks/Change _Label...',    None,         'relabel',  'refresh', True),
-    ('/Tasks/Edit _Node Count...', None,         'node_num', 'refresh', True),
+    ('/Tasks/Change _Label...',    None,         'relabel',  'refresh',
+     UNMOUNTED_ONLY),
+    ('/Tasks/Edit _Node Count...', None,         'node_num', 'refresh',
+     UNMOUNTED_ONLY),
     ('/Tasks/---',                 None,         None,       0, '<Separator>'),
     ('/Tasks/_Cluster Config...',  None,         'clconfig')
 )
@@ -76,7 +83,7 @@
 
             path, accel, callback, sub_callback, item_type, extra = data_list
 
-            if item_type is True:
+            if self.is_special(item_type):
                 del item[4:]
 
             if callback:
@@ -108,19 +115,32 @@
         item_factory = gtk.ItemFactory(gtk.MenuBar, '<main>', accel_group)
         item_factory.create_items(self.items)
 
-        menu_bar = item_factory.get_widget('<main>')
+        menubar = item_factory.get_widget('<main>')
 
-        widgets = []
+        self.unmounted_widgets = []
+        self.need_sel_widgets = []
         
         for data in menu_data:
-            if len(data) >= 5 and data[4] is True:
+            if len(data) >= 5 and self.is_special(data[4]):
                 path = data[0].replace('_', '')
-                widgets.append(item_factory.get_item('<main>%s' % path))
+                menuitem = item_factory.get_item('<main>%s' % path)
 
+                widget_list = self.get_special_list(data[4])
+                widget_list.append(menuitem)
+
         self.window.item_factory = item_factory
                   
-        return menu_bar, widgets
+        return menubar, self.need_sel_widgets, self.unmounted_widgets
 
+    def is_special(self, data):
+        return data in (UNMOUNTED_ONLY, NEED_SELECTION)
+
+    def get_special_list(self, data):
+        if data == UNMOUNTED_ONLY:
+            return self.unmounted_widgets
+        elif data == NEED_SELECTION:
+            return self.need_sel_widgets
+
 def main():
     def dummy(*args):
         gtk.main_quit()

Modified: trunk/ocfs2console/ocfs2interface/partitionview.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/partitionview.py	2005-03-21 05:32:02 UTC (rev 714)
+++ trunk/ocfs2console/ocfs2interface/partitionview.py	2005-03-21 08:14:27 UTC (rev 715)
@@ -40,6 +40,8 @@
 
         self.filter_entry = None
 
+        self.sel_widgets = []
+
         self.mount_widgets = []
         self.unmount_widgets = []
 
@@ -61,6 +63,8 @@
     def on_select(self, sel):
         self.selected = True
 
+        self.set_widgets_sensitive(self.sel_widgets, True)
+
         device, mountpoint = self.get_sel_values()
 
         if mountpoint:
@@ -98,6 +102,7 @@
             else:
                 return cmp(d1, d2)
 
+        self.set_widgets_sensitive(self.sel_widgets, False)
         self.set_widgets_sensitive(self.mount_widgets, False)
         self.set_widgets_sensitive(self.unmount_widgets, False)
 
@@ -143,6 +148,9 @@
         except TypeError:
             widget_list.append(widgets)
 
+    def add_sel_widgets(self, widgets):
+        self.add_to_widget_list(self.sel_widgets, widgets)
+
     def add_mount_widgets(self, widgets):
         self.add_to_widget_list(self.mount_widgets, widgets)
 
@@ -154,7 +162,23 @@
             widget.set_sensitive(sensitive)
 
 def main():
-    console = Console()
+    def dummy(*args):
+        gtk.main_quit()
+
+    window = gtk.Window()
+    window.set_size_request(300, 200)
+    window.connect('delete_event', dummy)
+
+    scrl_win = gtk.ScrolledWindow()
+    window.add(scrl_win)
+
+    pv = PartitionView()
+    scrl_win.add(pv)
+
+    window.show_all()
+
+    pv.refresh_partitions()
+
     gtk.main()
 
 if __name__ == '__main__':



More information about the Ocfs2-tools-commits mailing list