Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/filelisting.py
diff options
context:
space:
mode:
Diffstat (limited to 'filelisting.py')
-rwxr-xr-xfilelisting.py168
1 files changed, 0 insertions, 168 deletions
diff --git a/filelisting.py b/filelisting.py
deleted file mode 100755
index f0a1aa0..0000000
--- a/filelisting.py
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/env python
-
-import os, stat, time
-import pygtk
-pygtk.require('2.0')
-import gtk
-
-folderxpm = [
- "17 16 7 1",
- " c #000000",
- ". c #808000",
- "X c yellow",
- "o c #808080",
- "O c #c0c0c0",
- "+ c white",
- "@ c None",
- "@@@@@@@@@@@@@@@@@",
- "@@@@@@@@@@@@@@@@@",
- "@@+XXXX.@@@@@@@@@",
- "@+OOOOOO.@@@@@@@@",
- "@+OXOXOXOXOXOXO. ",
- "@+XOXOXOXOXOXOX. ",
- "@+OXOXOXOXOXOXO. ",
- "@+XOXOXOXOXOXOX. ",
- "@+OXOXOXOXOXOXO. ",
- "@+XOXOXOXOXOXOX. ",
- "@+OXOXOXOXOXOXO. ",
- "@+XOXOXOXOXOXOX. ",
- "@+OOOOOOOOOOOOO. ",
- "@ ",
- "@@@@@@@@@@@@@@@@@",
- "@@@@@@@@@@@@@@@@@"
- ]
-folderpb = gtk.gdk.pixbuf_new_from_xpm_data(folderxpm)
-
-filexpm = [
- "12 12 3 1",
- " c #000000",
- ". c #ffff04",
- "X c #b2c0dc",
- "X XXX",
- "X ...... XXX",
- "X ...... X",
- "X . ... X",
- "X ........ X",
- "X . .... X",
- "X ........ X",
- "X . .. X",
- "X ........ X",
- "X . .. X",
- "X ........ X",
- "X X"
- ]
-filepb = gtk.gdk.pixbuf_new_from_xpm_data(filexpm)
-
-class FileListingCellDataExample:
- column_names = ['Name', 'Size', 'Mode', 'Last Changed']
-
- def delete_event(self, widget, event, data=None):
- gtk.main_quit()
- return False
-
- def __init__(self, dname = None):
- cell_data_funcs = (None, self.file_size, self.file_mode,
- self.file_last_changed)
-
- # Create a new window
- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
-
- self.window.set_size_request(400, 300)
-
- self.window.connect("delete_event", self.delete_event)
-
- listmodel = self.make_list(dname)
-
- # create the TreeView
- self.treeview = gtk.TreeView()
-
- # create the TreeViewColumns to display the data
- self.tvcolumn = [None] * len(self.column_names)
- cellpb = gtk.CellRendererPixbuf()
- self.tvcolumn[0] = gtk.TreeViewColumn(self.column_names[0], cellpb)
- self.tvcolumn[0].set_cell_data_func(cellpb, self.file_pixbuf)
- cell = gtk.CellRendererText()
- self.tvcolumn[0].pack_start(cell, False)
- self.tvcolumn[0].set_cell_data_func(cell, self.file_name)
- self.treeview.append_column(self.tvcolumn[0])
- for n in range(1, len(self.column_names)):
- cell = gtk.CellRendererText()
- self.tvcolumn[n] = gtk.TreeViewColumn(self.column_names[n], cell)
- if n == 1:
- cell.set_property('xalign', 1.0)
- self.tvcolumn[n].set_cell_data_func(cell, cell_data_funcs[n])
- self.treeview.append_column(self.tvcolumn[n])
-
- self.treeview.connect('row-activated', self.open_file)
- self.scrolledwindow = gtk.ScrolledWindow()
- self.scrolledwindow.add(self.treeview)
- self.window.add(self.scrolledwindow)
- self.treeview.set_model(listmodel)
-
- self.window.show_all()
- return
-
- def make_list(self, dname=None):
- if not dname:
- self.dirname = os.path.expanduser('~')
- else:
- self.dirname = os.path.abspath(dname)
- self.window.set_title(self.dirname)
- files = [f for f in os.listdir(self.dirname) if f[0] <> '.']
- files.sort()
- files = ['..'] + files
- listmodel = gtk.ListStore(object)
- for f in files:
- listmodel.append([f])
- return listmodel
-
- def open_file(self, treeview, path, column):
- model = treeview.get_model()
- iter = model.get_iter(path)
- filename = os.path.join(self.dirname, model.get_value(iter, 0))
- filestat = os.stat(filename)
- if stat.S_ISDIR(filestat.st_mode):
- new_model = self.make_list(filename)
- treeview.set_model(new_model)
- return
-
- def file_pixbuf(self, column, cell, model, iter):
- filename = os.path.join(self.dirname, model.get_value(iter, 0))
- filestat = os.stat(filename)
- if stat.S_ISDIR(filestat.st_mode):
- pb = folderpb
- else:
- pb = filepb
- cell.set_property('pixbuf', pb)
- return
-
- def file_name(self, column, cell, model, iter):
- cell.set_property('text', model.get_value(iter, 0))
- return
-
- def file_size(self, column, cell, model, iter):
- filename = os.path.join(self.dirname, model.get_value(iter, 0))
- filestat = os.stat(filename)
- cell.set_property('text', filestat.st_size)
- return
-
- def file_mode(self, column, cell, model, iter):
- filename = os.path.join(self.dirname, model.get_value(iter, 0))
- filestat = os.stat(filename)
- cell.set_property('text', oct(stat.S_IMODE(filestat.st_mode)))
- return
-
-
- def file_last_changed(self, column, cell, model, iter):
- filename = os.path.join(self.dirname, model.get_value(iter, 0))
- filestat = os.stat(filename)
- cell.set_property('text', time.ctime(filestat.st_mtime))
- return
-
-def main():
- gtk.main()
-
-if __name__ == "__main__":
- flcdexample = FileListingCellDataExample()
- main()
-