[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