- Timestamp:
- 01/23/09 14:47:47 (3 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 modified
-
ChangeLog (modified) (1 diff)
-
main.py (modified) (2 diffs)
-
misc/utils.py (added)
-
plugins/info/info/__init__.py (modified) (3 diffs)
-
plugins/info/info/info.glade (modified) (1 diff)
-
plugins/zfs/zfs/__init__.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r20 r21 1 2009-01-23 Pedro Gracia,,, <lasarux@gmail.com> 2 3 * main.py: 4 * misc/utils.py: 5 * plugins/info/info/__init__.py: 6 * plugins/info/info/info.glade: 7 * plugins/zfs/zfs/__init__.py: 8 * misc/utils.py (added): 9 Treeview class now in utils.py 10 Info tab uses a treeview to output data 11 1 12 2009-01-23 Pedro Gracia <lasarux@gmail.com> 2 13 -
trunk/main.py
r20 r21 14 14 from misc.SimpleGladeApp import bindtextdomain 15 15 from misc.pexpect import pexpect, pxssh 16 from misc.utils import Treeview 16 17 import config 17 18 … … 25 26 app_name = "simplepanels" 26 27 app_version = "0.0.1" 27 28 class Treeview:29 def __init__(self, type, columns, data, treeview, headers=True):30 # type: 'tree' or 'list'31 # columns: hidden|visible, 'int'|'str'|'pix', name32 # data: pairs -> parent|None, (columns_data)33 # treeview: treeview object34 COLUMNS = []35 self.store = treeview.get_model()36 if self.store:37 self.store.clear()38 for i in treeview.get_columns():39 treeview.remove_column(i)40 41 # creating store and columns42 for index, column in enumerate(columns):43 if column[1] == 'int':44 COLUMNS.append('int')45 renderer = gtk.CellRendererText()46 if column[0] == 'visible':47 column = gtk.TreeViewColumn(column[2], renderer, text=index)48 treeview.append_column(column)49 elif column[1] == 'str':50 COLUMNS.append('str')51 renderer = gtk.CellRendererText()52 if column[0] == 'visible':53 column = gtk.TreeViewColumn(column[2], renderer, text=index)54 treeview.append_column(column)55 elif column[1] == 'bool':56 COLUMNS.append('str')57 renderer = gtk.CellRendererToggle()58 if column[0] == 'visible':59 column = gtk.TreeViewColumn(column[2], renderer, active=index)60 treeview.append_column(column)61 elif column[1] == 'pix':62 COLUMNS.append('gtk.gdk.Pixbuf')63 renderer = gtk.CellRendererPixbuf()64 if column[0] == 'visible':65 column = gtk.TreeViewColumn(column[2], renderer, pixbuf=index)66 treeview.append_column(column)67 68 if type == 'tree':69 self.store = eval('gtk.TreeStore(%s)'%', '.join(COLUMNS))70 else:71 self.store = eval('gtk.ListStore(%s)'%', '.join(COLUMNS))72 treeview.set_model(self.store)73 treeview.show()74 treeview.set_headers_visible(headers)75 76 # feeding store with data: {parent: (childrens, )}77 rows = []78 if type == 'tree': #treeview79 for header in data.keys():80 row_data = (None, header, None)81 parent = self.store.append(None, row_data)82 #rows.append(parent) #add parent83 for child in data[header]:84 self.store.append(parent, child)85 else: #listview86 for row in data:87 self.store.append(row)88 89 treeview.set_headers_visible(headers)90 28 91 29 class MainWnd(SimpleGladeApp): -
trunk/plugins/info/info/__init__.py
r20 r21 3 3 from misc.SimpleGladeApp import bindtextdomain 4 4 from misc.pexpect import pexpect, pxssh 5 from misc.utils import Treeview 5 6 import simplepanels 6 7 … … 29 30 30 31 def send_command(self, command, os): 31 textbuffer = self.info_tview.get_buffer()32 textbuffer.set_text("Remoting...")32 #textbuffer = self.info_tview.get_buffer() 33 #textbuffer.set_text("Remoting...") 33 34 rcommand = self.main.config.get_command(command, os) 34 35 … … 36 37 s.sendline(rcommand) 37 38 s.prompt() 38 result = s.before 39 textbuffer.set_text(result) 39 result = s.before.split("\n")[2:] # get the first line off (command) 40 41 #textbuffer.set_text(result) 42 43 columns = [('visible', 'str', 'Filesystem'), 44 ('visible', 'str', 'Size'), 45 ('visible', 'str', 'Used'), 46 ('visible', 'str', 'Availd'), 47 ('visible', 'str', 'Use%'), 48 ('visible', 'str', 'Mounted on'), 49 ] 50 data = [] 51 rows = [] 52 for i in result: 53 for j in i.split(): 54 rows.append(j) 55 if len(rows) == len(columns): 56 data.append(rows) 57 rows = [] 58 59 self.t = Treeview("list", columns, data, self.list_treeview) -
trunk/plugins/info/info/info.glade
r3 r21 1 <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->2 <!DOCTYPE glade-interface SYSTEM " http://glade.gnome.org/glade-2.0.dtd">3 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> 3 <!--*- mode: xml -*--> 4 4 <glade-interface> 5 6 <widget class="GtkWindow" id="info_wnd"> 7 <property name="title" translatable="yes">window1</property> 8 <property name="type">GTK_WINDOW_TOPLEVEL</property> 9 <property name="window_position">GTK_WIN_POS_NONE</property> 10 <property name="modal">False</property> 11 <property name="default_width">300</property> 12 <property name="default_height">300</property> 13 <property name="resizable">True</property> 14 <property name="destroy_with_parent">False</property> 15 <property name="decorated">True</property> 16 <property name="skip_taskbar_hint">False</property> 17 <property name="skip_pager_hint">False</property> 18 <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> 19 <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> 20 <property name="focus_on_map">True</property> 21 <property name="urgency_hint">False</property> 22 23 <child> 24 <widget class="GtkVBox" id="root"> 25 <property name="border_width">4</property> 26 <property name="visible">True</property> 27 <property name="homogeneous">False</property> 28 <property name="spacing">4</property> 29 30 <child> 31 <widget class="GtkHBox" id="hbox1"> 32 <property name="visible">True</property> 33 <property name="homogeneous">False</property> 34 <property name="spacing">4</property> 35 36 <child> 37 <widget class="GtkLabel" id="label1"> 38 <property name="visible">True</property> 39 <property name="label" translatable="yes">Choose</property> 40 <property name="use_underline">False</property> 41 <property name="use_markup">False</property> 42 <property name="justify">GTK_JUSTIFY_LEFT</property> 43 <property name="wrap">False</property> 44 <property name="selectable">False</property> 45 <property name="xalign">0.5</property> 46 <property name="yalign">0.5</property> 47 <property name="xpad">0</property> 48 <property name="ypad">0</property> 49 <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 50 <property name="width_chars">-1</property> 51 <property name="single_line_mode">False</property> 52 <property name="angle">0</property> 53 </widget> 54 <packing> 55 <property name="padding">0</property> 56 <property name="expand">False</property> 57 <property name="fill">False</property> 58 </packing> 59 </child> 60 61 <child> 62 <widget class="GtkComboBoxEntry" id="info_combo"> 63 <property name="visible">True</property> 64 <property name="items" translatable="yes">uname 5 <widget class="GtkWindow" id="info_wnd"> 6 <property name="title" translatable="yes">window1</property> 7 <property name="default_width">300</property> 8 <property name="default_height">300</property> 9 <child> 10 <widget class="GtkVBox" id="root"> 11 <property name="visible">True</property> 12 <property name="border_width">4</property> 13 <property name="spacing">4</property> 14 <child> 15 <widget class="GtkHBox" id="hbox1"> 16 <property name="visible">True</property> 17 <property name="spacing">4</property> 18 <child> 19 <widget class="GtkLabel" id="label1"> 20 <property name="visible">True</property> 21 <property name="label" translatable="yes">Choose</property> 22 </widget> 23 <packing> 24 <property name="expand">False</property> 25 <property name="fill">False</property> 26 </packing> 27 </child> 28 <child> 29 <widget class="GtkComboBoxEntry" id="info_combo"> 30 <property name="visible">True</property> 31 <property name="items" translatable="yes">uname 65 32 ps 66 33 mount 67 34 df</property> 68 <property name="add_tearoffs">False</property> 69 <property name="has_frame">True</property> 70 <property name="focus_on_click">True</property> 71 <signal name="changed" handler="on_info_combo_changed" last_modification_time="Sat, 03 May 2008 20:44:46 GMT"/> 72 </widget> 73 <packing> 74 <property name="padding">0</property> 75 <property name="expand">True</property> 76 <property name="fill">True</property> 77 </packing> 78 </child> 79 </widget> 80 <packing> 81 <property name="padding">0</property> 82 <property name="expand">False</property> 83 <property name="fill">False</property> 84 </packing> 85 </child> 86 87 <child> 88 <widget class="GtkScrolledWindow" id="scrolledwindow1"> 89 <property name="visible">True</property> 90 <property name="can_focus">True</property> 91 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> 92 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> 93 <property name="shadow_type">GTK_SHADOW_IN</property> 94 <property name="window_placement">GTK_CORNER_TOP_LEFT</property> 95 96 <child> 97 <widget class="GtkTextView" id="info_tview"> 98 <property name="width_request">300</property> 99 <property name="height_request">300</property> 100 <property name="visible">True</property> 101 <property name="can_focus">True</property> 102 <property name="editable">True</property> 103 <property name="overwrite">False</property> 104 <property name="accepts_tab">True</property> 105 <property name="justification">GTK_JUSTIFY_LEFT</property> 106 <property name="wrap_mode">GTK_WRAP_NONE</property> 107 <property name="cursor_visible">True</property> 108 <property name="pixels_above_lines">0</property> 109 <property name="pixels_below_lines">0</property> 110 <property name="pixels_inside_wrap">0</property> 111 <property name="left_margin">0</property> 112 <property name="right_margin">0</property> 113 <property name="indent">0</property> 114 <property name="text" translatable="yes"></property> 115 </widget> 116 </child> 117 </widget> 118 <packing> 119 <property name="padding">0</property> 120 <property name="expand">False</property> 121 <property name="fill">False</property> 122 </packing> 123 </child> 124 </widget> 125 </child> 126 </widget> 127 35 <signal name="changed" handler="on_info_combo_changed"/> 36 <child internal-child="entry"> 37 <widget class="GtkEntry" id="comboboxentry-entry1"> 38 </widget> 39 </child> 40 </widget> 41 <packing> 42 <property name="position">1</property> 43 </packing> 44 </child> 45 </widget> 46 <packing> 47 <property name="expand">False</property> 48 <property name="fill">False</property> 49 </packing> 50 </child> 51 <child> 52 <widget class="GtkScrolledWindow" id="scrolledwindow1"> 53 <property name="visible">True</property> 54 <property name="can_focus">True</property> 55 <property name="hscrollbar_policy">GTK_POLICY_NEVER</property> 56 <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> 57 <property name="shadow_type">GTK_SHADOW_IN</property> 58 <child> 59 <widget class="GtkTreeView" id="list_treeview"> 60 <property name="visible">True</property> 61 <property name="can_focus">True</property> 62 <property name="headers_clickable">True</property> 63 <property name="rules_hint">True</property> 64 </widget> 65 </child> 66 </widget> 67 <packing> 68 <property name="position">1</property> 69 </packing> 70 </child> 71 </widget> 72 </child> 73 </widget> 128 74 </glade-interface> -
trunk/plugins/zfs/zfs/__init__.py
r19 r21 2 2 from misc.SimpleGladeApp import SimpleGladeApp 3 3 from misc.SimpleGladeApp import bindtextdomain 4 from misc. pexpect import pexpect, pxssh4 from misc.utils import Treeview 5 5 import simplepanels 6 6 import gtk … … 17 17 18 18 19 class Treeview:20 """TODO: remove this fast!!!!"""21 def __init__(self, type, columns, data, treeview, headers=True):22 # type: 'tree' or 'list'23 # columns: hidden|visible, 'int'|'str'|'pix', name24 # data: pairs -> parent|None, (columns_data)25 # treeview: treeview object26 COLUMNS = []27 self.store = treeview.get_model()28 if self.store:29 self.store.clear()30 for i in treeview.get_columns():31 treeview.remove_column(i)32 19 33 # creating store and columns34 for index, column in enumerate(columns):35 if column[1] == 'int':36 COLUMNS.append('int')37 renderer = gtk.CellRendererText()38 if column[0] == 'visible':39 column = gtk.TreeViewColumn(column[2], renderer, text=index)40 treeview.append_column(column)41 elif column[1] == 'str':42 COLUMNS.append('str')43 renderer = gtk.CellRendererText()44 if column[0] == 'visible':45 column = gtk.TreeViewColumn(column[2], renderer, text=index)46 treeview.append_column(column)47 elif column[1] == 'bool':48 COLUMNS.append('str')49 renderer = gtk.CellRendererToggle()50 if column[0] == 'visible':51 column = gtk.TreeViewColumn(column[2], renderer, active=index)52 treeview.append_column(column)53 elif column[1] == 'pix':54 COLUMNS.append('gtk.gdk.Pixbuf')55 renderer = gtk.CellRendererPixbuf()56 if column[0] == 'visible':57 column = gtk.TreeViewColumn(column[2], renderer, pixbuf=index)58 treeview.append_column(column)59 60 if type == 'tree':61 self.store = eval('gtk.TreeStore(%s)'%', '.join(COLUMNS))62 else:63 self.store = eval('gtk.ListStore(%s)'%', '.join(COLUMNS))64 treeview.set_model(self.store)65 treeview.set_headers_visible(headers)66 treeview.show()67 68 # feeding store with data: {parent: (childrens, )}69 rows = []70 if type == 'tree': #treeview71 for header in data.keys():72 row_data = (None, header, None)73 parent = self.store.append(None, row_data)74 #rows.append(parent) #add parent75 for child in data[header]:76 self.store.append(parent, child)77 else: #listview78 for row in data:79 self.store.append(row)80 81 treeview.set_headers_visible(headers)82 20 83 21 class ZFSPlugin(object, SimpleGladeApp):
