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

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Sun Mar 20 20:33:52 CST 2005


Author: manish
Date: 2005-03-20 20:33:50 -0600 (Sun, 20 Mar 2005)
New Revision: 711

Modified:
   trunk/ocfs2console/ocfs2interface/about.py
   trunk/ocfs2console/ocfs2interface/console.py
   trunk/ocfs2console/ocfs2interface/menu.py
   trunk/ocfs2console/ocfs2interface/toolbar.py
Log:
Code refactor: made the main window a class


Modified: trunk/ocfs2console/ocfs2interface/about.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/about.py	2005-03-21 01:42:15 UTC (rev 710)
+++ trunk/ocfs2console/ocfs2interface/about.py	2005-03-21 02:33:50 UTC (rev 711)
@@ -17,7 +17,7 @@
 
 import sys
 
-OCFS2TOOL_VERSION = '0.0.2'
+OCFS2TOOL_VERSION = '0.9.0'
 
 def print_version():
     print 'OCFS2Console version %s' % OCFS2TOOL_VERSION
@@ -42,7 +42,7 @@
         print_usage(sys.argv[0])
         sys.exit(1)
         
-def about(pv):
+def about(parent):
     import gtk
 
     from guiutil import set_props
@@ -72,7 +72,7 @@
         #logo = gtk.gdk.pixbuf_new_from_file('logo.png')
 
         dialog = gtk.AboutDialog()
-        dialog.set_transient_for(pv.toplevel)
+        dialog.set_transient_for(parent)
         dialog.set_destroy_with_parent(True)
 
         set_props(dialog, name='OCFS2 Console',
@@ -84,7 +84,7 @@
                           #logo=logo)
 
     else:
-        dialog = gtk.MessageDialog(parent=pv.toplevel,
+        dialog = gtk.MessageDialog(parent=parent,
                                    flags=gtk.DIALOG_DESTROY_WITH_PARENT,
                                    buttons=gtk.BUTTONS_CLOSE)
         dialog.label.set_text(
@@ -97,14 +97,9 @@
     dialog.destroy()
 
 def main():
-    process_info_args()
+    process_args()
+    process_gui_args()
+    about(None)
 
-    class Dummy: pass
-
-    pv = Dummy()
-    pv.toplevel = None
-
-    about(pv)
-
 if __name__ == '__main__':
     main()

Modified: trunk/ocfs2console/ocfs2interface/console.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/console.py	2005-03-21 01:42:15 UTC (rev 710)
+++ trunk/ocfs2console/ocfs2interface/console.py	2005-03-21 02:33:50 UTC (rev 711)
@@ -42,17 +42,12 @@
     ('nodemap', 'Configured Nodes', NodeMap),
 )
 
-def cleanup(*args):
-    gtk.main_quit()
-
 class PartitionView(gtk.TreeView):
-    def __init__(self, toplevel):
+    def __init__(self):
         store = gtk.ListStore(str, str, str)
 
         gtk.TreeView.__init__(self, store)
 
-        self.toplevel = toplevel
-
         self.insert_column_with_attributes(-1, 'Device',
                                            gtk.CellRendererText(),
                                            text=COLUMN_DEVICE)
@@ -88,8 +83,16 @@
             self.mount_button.set_sensitive(True)
             self.unmount_button.set_sensitive(False)
 
-        update_notebook(self, device)
+        self.update_notebook(device)
 
+    def update_notebook(self, device):
+        for tag, d, info in notebook_items:
+            frame = getattr(self, tag + '_frame')
+            frame.child.destroy()
+
+            frame.add(info(device).widget)
+            frame.show_all()
+
     def select_device(self, device):
         for row in self.get_model():
             if row[COLUMN_DEVICE] == device:
@@ -138,155 +141,150 @@
             self.sel.select_iter(iter)
             self.selected = True
 
-def mount(pv):
-    device, mountpoint = pv.get_sel_values()
+class Console(gtk.Window):
+    def __init__(self):
+        gtk.Window.__init__(self)
 
-    mountpoint = query_text(pv.toplevel, 'Mountpoint')
-    if not mountpoint:
-        return
+        set_props(self, title='OCFS2 Console',
+                        default_width=520,
+                        default_height=420,
+                        border_width=0)
+        self.connect('delete_event', self.cleanup)
 
-    command = ('mount', '-t', 'ocfs2', device, mountpoint)
+        pv = PartitionView()
 
-    p = Process(command, 'Mount', 'Mounting...', pv.toplevel, spin_now=False)
-    success, output, killed = p.reap()
+        vbox = gtk.VBox()
+        self.add(vbox)
 
-    if not success:
-        if killed:
-            error_box(pv.toplevel,
-                      'mount died unexpectedly! Your system is probably in '
-                      'an inconsistent state. You should reboot at the '
-                      'earliest opportunity')
-        else:
-            error_box(pv.toplevel, '%s: Could not mount %s' % (output, device))
+        self.menu = Menu(self)
 
-    pv.refresh_partitions()
+        menubar = self.menu.get_widget(pv)
+        vbox.pack_start(menubar, expand=False, fill=False)
 
-def unmount(pv):
-    device, mountpoint = pv.get_sel_values()
+        self.toolbar = Toolbar(self)
 
-    command = ('umount', mountpoint)
+        tb, buttons, pv.filter_entry = self.toolbar.get_widgets(pv)
+        vbox.pack_start(tb, expand=False, fill=False)
 
-    p = Process(command, 'Unmount', 'Unmounting...', pv.toplevel,
-                spin_now=False)
-    success, output, killed = p.reap()
+        for k, v in buttons.iteritems():
+            setattr(pv, k + '_button', v)
 
-    if success:
-        pv.refresh_partitions()
-    else:
-        if killed:
-            error_box(pv.toplevel,
-                      'umount died unexpectedly! Your system is probably in '
-                      'an inconsistent state. You should reboot at the '
-                      'earliest opportunity')
-        else:
-            error_box(pv.toplevel,
-                      '%s: Could not unmount %s mounted on %s' %
-                      (output, device, mountpoint))
+        pv.filter_entry.connect('activate', self.filter_update, pv)
 
-def refresh(pv):
-    pv.refresh_partitions()
+        vpaned = gtk.VPaned()
+        vpaned.set_border_width(4)
+        vbox.pack_start(vpaned, expand=True, fill=True)
 
-    if len(pv.get_model()) == 0:
-        update_notebook(pv, None)
+        scrl_win = gtk.ScrolledWindow()
+        set_props(scrl_win, hscrollbar_policy=gtk.POLICY_AUTOMATIC,
+                            vscrollbar_policy=gtk.POLICY_AUTOMATIC)
+        scrl_win.add(pv)
+        vpaned.pack1(scrl_win)
 
-def update_notebook(pv, device):
-    for tag, d, info in notebook_items:
-        frame = getattr(pv, tag + '_frame')
-        frame.child.destroy()
+        notebook = gtk.Notebook()
+        notebook.set_tab_pos(gtk.POS_TOP)
+        vpaned.pack2(notebook)
 
-        frame.add(info(device).widget)
-        frame.show_all()
+        for tag, desc, info in notebook_items:
+            frame = gtk.Frame()
+            set_props(frame, shadow=gtk.SHADOW_NONE,
+                             border_width=0)
 
-def format(pv):
-    format_partition(pv.toplevel, pv.get_device())
-    pv.refresh_partitions()
+            tag = tag + '_frame'
+            setattr(pv, tag, frame)
 
-def relabel(pv):
-    tune_label(pv.toplevel, pv.get_device())
-    pv.refresh_partitions()
+            frame.add(info().widget)
+            frame.show_all()
 
-def node_num(pv):
-    tune_nodes(pv.toplevel, pv.get_device())
-    pv.refresh_partitions()
+            notebook.add_with_properties(frame, 'tab_label', desc)
 
-def check(pv):
-    fsck_volume(pv.toplevel, pv.get_device(), check=True)
+        pv.refresh_partitions()
+        pv.grab_focus()
 
-def repair(pv):
-    fsck_volume(pv.toplevel, pv.get_device(), check=False)
+        self.show_all()
 
-def clconfig(pv):
-    cluster_configurator(pv.toplevel)
+    def cleanup(self, *args):
+        gtk.main_quit()
 
-def filter_update(entry, pv):
-    refresh(pv)
+    def about(self, pv):
+        about(self)
 
-def create_window():
-    window = gtk.Window()
-    set_props(window, title='OCFS2 Console',
-                      default_width=520,
-                      default_height=420,
-                      border_width=0)
-    window.connect('delete_event', cleanup)
+    def mount(self, pv):
+        device, mountpoint = pv.get_sel_values()
 
-    pv = PartitionView(window)
+        mountpoint = query_text(self, 'Mountpoint')
+        if not mountpoint:
+            return
 
-    vbox = gtk.VBox()
-    window.add(vbox)
+        command = ('mount', '-t', 'ocfs2', device, mountpoint)
 
-    symbols = globals()
+        p = Process(command, 'Mount', 'Mounting...', self, spin_now=False)
+        success, output, killed = p.reap()
 
-    menu = Menu(**symbols)
+        if not success:
+            if killed:
+                error_box(self, 'mount died unexpectedly! Your system is '
+                                'probably in an inconsistent state. You '
+                                'should reboot at the earliest opportunity')
+            else:
+                error_box(self, '%s: Could not mount %s' % (output, device))
 
-    menubar = menu.get_widget(window, pv)
-    vbox.pack_start(menubar, expand=False, fill=False)
+        pv.refresh_partitions()
 
-    toolbar = Toolbar(**symbols)
+    def unmount(pv):
+        device, mountpoint = pv.get_sel_values()
 
-    tb, buttons, pv.filter_entry = toolbar.get_widgets(pv)
-    vbox.pack_start(tb, expand=False, fill=False)
+        command = ('umount', mountpoint)
 
-    for k, v in buttons.iteritems():
-        setattr(pv, k + '_button', v)
+        p = Process(command, 'Unmount', 'Unmounting...', self, spin_now=False)
+        success, output, killed = p.reap()
 
-    pv.filter_entry.connect('activate', filter_update, pv)
+        if success:
+            pv.refresh_partitions()
+        else:
+            if killed:
+                error_box(self, 'umount died unexpectedly! Your system is '
+                                'probably in an inconsistent state. You '
+                                'should reboot at the earliest opportunity')
+            else:
+                error_box(self, '%s: Could not unmount %s mounted on %s' %
+                                (output, device, mountpoint))
 
-    vpaned = gtk.VPaned()
-    vpaned.set_border_width(4)
-    vbox.pack_start(vpaned, expand=True, fill=True)
+    def refresh(self, pv):
+        pv.refresh_partitions()
 
-    scrl_win = gtk.ScrolledWindow()
-    set_props(scrl_win, hscrollbar_policy=gtk.POLICY_AUTOMATIC,
-                        vscrollbar_policy=gtk.POLICY_AUTOMATIC)
-    scrl_win.add(pv)
-    vpaned.pack1(scrl_win)
+        if len(pv.get_model()) == 0:
+            pv.update_notebook(None)
 
-    notebook = gtk.Notebook()
-    notebook.set_tab_pos(gtk.POS_TOP)
-    vpaned.pack2(notebook)
+    def format(self, pv):
+        format_partition(self, pv.get_device())
+        pv.refresh_partitions()
 
-    for tag, desc, info in notebook_items:
-        frame = gtk.Frame()
-        set_props(frame, shadow=gtk.SHADOW_NONE,
-                         border_width=0)
+    def relabel(self, pv):
+        tune_label(self, pv.get_device())
+        pv.refresh_partitions()
 
-        tag = tag + '_frame'
-        setattr(pv, tag, frame)
+    def node_num(self, pv):
+        tune_nodes(self, pv.get_device())
+        pv.refresh_partitions()
 
-        frame.add(info().widget)
-        frame.show_all()
+    def check(self, pv):
+        fsck_volume(self, pv.get_device(), check=True)
+        pv.refresh_partitions()
 
-        notebook.add_with_properties(frame, 'tab_label', desc)
+    def repair(self, pv):
+        fsck_volume(self, pv.get_device(), check=False)
+        pv.refresh_partitions()
 
-    pv.refresh_partitions()
-    pv.grab_focus()
-   
+    def clconfig(self, pv):
+        cluster_configurator(self)
 
-    window.show_all()
+    def filter_update(self, entry, pv):
+        refresh(pv)
 
 def main():
     process_gui_args()
-    create_window()
+    console = Console()
     gtk.main()
 
 if __name__ == '__main__':

Modified: trunk/ocfs2console/ocfs2interface/menu.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/menu.py	2005-03-21 01:42:15 UTC (rev 710)
+++ trunk/ocfs2console/ocfs2interface/menu.py	2005-03-21 02:33:50 UTC (rev 711)
@@ -63,7 +63,9 @@
 menu_data = file_menu_data + task_menu_data + help_menu_data
 
 class Menu:
-    def __init__(self, **callbacks):
+    def __init__(self, window):
+        self.window = window
+
         self.items = []
 
         for i in menu_data:
@@ -71,7 +73,7 @@
 
             if i[2]:
                 def make_cb():
-                    callback = callbacks[i[2]]
+                    callback = getattr(window, i[2])
 
                     def cb(d, a, w):
                         callback(d)
@@ -82,35 +84,32 @@
 
             self.items.append(tuple(item))
 
-    def get_widget(self, window, data=None):
+    def get_widget(self, data=None):
         accel_group = gtk.AccelGroup()
-        window.add_accel_group(accel_group)
+        self.window.add_accel_group(accel_group)
 
-        item_factory = gtk.ItemFactory(gtk.MenuBar, '<main>', accel_group)
-        item_factory.create_items(self.items, data)
+        self.item_factory = gtk.ItemFactory(gtk.MenuBar, '<main>', accel_group)
+        self.item_factory.create_items(self.items, data)
 
-        window.item_factory = item_factory
+        return self.item_factory.get_widget('<main>')
 
-        return item_factory.get_widget('<main>')
-
 def main():
     def dummy(*args):
         gtk.main_quit()
 
-    cb = {}
+    window = gtk.Window()
+    window.connect('delete_event', dummy)
+
     for i in menu_data:
         if i[2]:
-            cb[i[2]] = dummy
+            setattr(window, i[2], dummy)
 
-    menubar = Menu(**cb)
+    menubar = Menu(window)
 
-    window = gtk.Window()
-    window.connect('delete_event', dummy)
-
     vbox = gtk.VBox()
     window.add(vbox)
 
-    vbox.add(menubar.get_widget(window))
+    vbox.add(menubar.get_widget())
 
     window.show_all()
 

Modified: trunk/ocfs2console/ocfs2interface/toolbar.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/toolbar.py	2005-03-21 01:42:15 UTC (rev 710)
+++ trunk/ocfs2console/ocfs2interface/toolbar.py	2005-03-21 02:33:50 UTC (rev 711)
@@ -24,8 +24,8 @@
 )
 
 class Toolbar:
-    def __init__(self, **callbacks):
-        self.callbacks = callbacks
+    def __init__(self, window):
+        self.window = window
 
     def get_widgets(self, data=None):
         toolbar = gtk.Toolbar()
@@ -33,7 +33,7 @@
 
         for i in toolbar_data:
             def make_cb():
-                callback = self.callbacks[i[2]]
+                callback = getattr(self.window, i[2])
 
                 def cb(w, d=None):
                     callback(d)
@@ -67,15 +67,14 @@
     def dummy(*args):
         gtk.main_quit()
 
-    cb = {}
-    for i in toolbar_data:
-        cb[i[2]] = dummy
-
-    toolbar = Toolbar(**cb)
-
     window = gtk.Window()
     window.connect('delete_event', dummy)
 
+    for i in toolbar_data:
+        setattr(window, i[2], dummy)
+
+    toolbar = Toolbar(window)
+
     vbox = gtk.VBox()
     window.add(vbox)
 



More information about the Ocfs2-tools-commits mailing list