[Ocfs2-tools-commits] manish commits r963 -
trunk/ocfs2console/ocfs2interface
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Jun 17 21:26:45 CDT 2005
Author: manish
Date: 2005-06-17 21:26:43 -0500 (Fri, 17 Jun 2005)
New Revision: 963
Modified:
trunk/ocfs2console/ocfs2interface/bosa.py
trunk/ocfs2console/ocfs2interface/console.py
trunk/ocfs2console/ocfs2interface/ls.py
Log:
Saner gui for the file browser
Modified: trunk/ocfs2console/ocfs2interface/bosa.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/bosa.py 2005-06-18 00:17:30 UTC (rev 962)
+++ trunk/ocfs2console/ocfs2interface/bosa.py 2005-06-18 02:26:43 UTC (rev 963)
@@ -55,6 +55,7 @@
class InfoLabel(gtk.Label):
def __init__(self, field_type):
gtk.Label.__init__(self)
+ self.set_selectable(True)
self.field_type = field_type
@@ -65,6 +66,20 @@
self.modify_font(INFO_LABEL_FONT)
+ if hasattr(field_type, 'width_chars'):
+ context = self.get_pango_context()
+
+ desc = INFO_LABEL_FONT.copy()
+ desc.set_size(context.get_font_description().get_size())
+
+ metrics = context.get_metrics(desc, context.get_language())
+
+ char_width = metrics.get_approximate_char_width()
+ digit_width = metrics.get_approximate_digit_width()
+ char_pixels = pango.PIXELS(max(char_width, digit_width))
+
+ self.set_size_request(char_pixels * field_type.width_chars, -1)
+
def update(self, dentry, dinode):
field = self.field_type(dentry, dinode)
self.set_text(field.text)
@@ -79,7 +94,9 @@
gtk.VBox.__init__(self, spacing=4)
label = gtk.Label('/')
- set_props(label, xalign=0.0)
+ set_props(label, xalign=0.0,
+ selectable=True,
+ wrap=True)
self.pack_start(label, expand=False)
self.path_label = label
@@ -164,11 +181,21 @@
for column, field in enumerate(fields):
label = gtk.Label(field.label)
- set_props(label, xalign=0.0)
- table.attach(label, column, column + 1, 0, 1)
+ if field.right_justify:
+ set_props(label, xalign=1.0)
+ else:
+ set_props(label, xalign=0.0)
+
+ xoptions = yoptions = gtk.FILL
+ xpadding = 2
+
+ table.attach(label, column, column + 1, 0, 1,
+ xoptions, yoptions, xpadding)
+
label = InfoLabel(field)
- table.attach(label, column, column + 1, 1, 2)
+ table.attach(label, column, column + 1, 1, 2,
+ xoptions, yoptions, xpadding)
self.info_labels.append(label)
@@ -314,7 +341,11 @@
self.display_dentry(dentry)
else:
self.display_clear()
+ if iter:
+ iter = store.iter_parent(iter)
+ self.path_label.set_text(self.get_fs_path(store, iter))
+
def display_dentry(self, dentry):
dinode = self.fs.read_cached_inode(dentry.inode)
@@ -335,6 +366,18 @@
else:
return None
+ def get_fs_path(self, store, iter):
+ parts = []
+
+ while iter:
+ dentry = self.get_dentry(store, iter)
+ parts.append(dentry.name)
+ iter = store.iter_parent(iter)
+
+ parts.reverse()
+
+ return '/' + '/'.join(parts)
+
class TreeLevel(gidle.Idle):
def __init__(self, diriter, dentry=None, parent=None):
gidle.Idle.__init__(self)
Modified: trunk/ocfs2console/ocfs2interface/console.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/console.py 2005-06-18 00:17:30 UTC (rev 962)
+++ trunk/ocfs2console/ocfs2interface/console.py 2005-06-18 02:26:43 UTC (rev 963)
@@ -42,8 +42,8 @@
gtk.Window.__init__(self)
set_props(self, title='OCFS2 Console',
- default_width=520,
- default_height=420,
+ default_width=600,
+ default_height=460,
border_width=0)
self.connect('delete_event', self.cleanup)
Modified: trunk/ocfs2console/ocfs2interface/ls.py
===================================================================
--- trunk/ocfs2console/ocfs2interface/ls.py 2005-06-18 00:17:30 UTC (rev 962)
+++ trunk/ocfs2console/ocfs2interface/ls.py 2005-06-18 02:26:43 UTC (rev 963)
@@ -53,6 +53,8 @@
}
class Mode(Field):
+ width_chars = 10
+
def real_get_text(self):
text = ['-'] * 10
@@ -85,8 +87,11 @@
label = '# Links'
dinode_member = 'i_links_count'
right_justify = True
+ width_chars = 5
class ID2Name(Field):
+ width_chars = 8
+
def real_get_text(self):
idnum = getattr(self.dinode, self.dinode_member)
@@ -105,15 +110,17 @@
class Size(Field):
dinode_member = 'i_size'
- right_justify = True
+ width_chars = 15
class AllocSize(Field):
- right_justify = True
+ width_chars = 15
def real_get_text(self):
return str(self.dinode.i_clusters * self.dinode.fs.fs_clustersize)
class Timestamp(Field):
+ width_chars = 12
+
# Ported from GNU coreutils ls
time_formats = ('%b %e %Y', '%b %e %H:%M')
@@ -133,7 +140,7 @@
def real_get_text(self):
return self.dentry.name
-fields = (Mode, Links, Owner, Group, Size, AllocSize, Timestamp, Name)
+fields = (Mode, Links, Owner, Group, Size, AllocSize, Timestamp)
def main():
import sys
More information about the Ocfs2-tools-commits
mailing list