1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
import glimmer
import string
import sys
import os
sys.argv=[]
sys.argv.append("null")
from gtk import *
import _gtk
import _gnome
import _gnomeui
from gnome.ui import *
import gnome.config
def populate_dir_listing(path):
import dircache
import string
filelist.set_column_title(0, path)
filelist.clear()
dirlisting = dircache.listdir(path)
dirlisting = dirlisting[:]
dircache.annotate(path, dirlisting)
dotfiles = []
dotfiles = [".", ""]
filelist.append(dotfiles)
dotfiles = ["..", ""]
filelist.append(dotfiles)
num = 0
dlen = len(dirlisting)
filelist.freeze()
while num < dlen:
if string.count(dirlisting[num], "/") > 0:
if showdots.active:
dname = []
dname.append(dirlisting[num])
dname.append("")
filelist.append(dname)
else:
if dirlisting[num][0] != '.':
dname = []
dname.append(dirlisting[num])
dname.append("")
filelist.append(dname)
num = num + 1
num = 0
while num < dlen:
if string.count(dirlisting[num], "/") <= 0:
if showdots.active:
dname = []
dname.append(dirlisting[num])
dname.append("")
filelist.append(dname)
else:
if dirlisting[num][0] != '.':
dname = []
dname.append(dirlisting[num])
dname.append("")
filelist.append(dname)
num = num + 1
del dircache
del string
filelist.thaw()
def select_row_callback(clist, row, col, event, data):
import glimmer
import string
dir = filelist.get_column_title(0)
text = filelist.get_text(row, 0)
if string.count(text, "/") > 0:
dir = dir + text
populate_dir_listing(dir)
elif text == ".":
dir = dir
populate_dir_listing(dir)
elif text == "..":
i = string.rfind(dir, "/")
if i > 1:
dir = dir[0:i]
i = string.rfind(dir, "/")
if i > 1:
dir = dir[0:i+1]
else:
dir = "/"
else:
dir = "/"
populate_dir_listing(dir)
else:
filename = dir + text
glimmer.open_file(filename)
del glimmer
del string
def toggle_file_selector(obj, checkmenuitem, fbox):
if checkmenuitem.active:
glimmer.add_paned_object(fbox._o, "FileSelector", 0)
glimmer.unref_paned_object("FileSelector");
else:
glimmer.ref_paned_object("FileSelector");
glimmer.remove_paned_object("FileSelector")
def close_file_selector(button, citem, fbox):
citem.destroy()
glimmer.remove_paned_object("FileSelector")
def popup_options(button, popupmenu):
popupmenu.popup(None, None, None, 1, 0)
def set_show_hidden_files(obj, checkmenuitem, flist):
gnome.config.set_bool("/glimmer/FileSelector/show_hidden", checkmenuitem.active)
gnome.config.sync()
flist.select_row(0, 0)
showhidden = gnome.config.get_bool("/glimmer/FileSelector/show_hidden=true")
currentdir = os.path.abspath(".")
filebox = GtkVBox(FALSE, 0)
filebox.show()
titleframe = GtkFrame()
filebox.pack_start(titleframe, FALSE, FALSE, 2)
titleframe.show()
buttonbox = GtkHBox(FALSE, 0)
titleframe.add(buttonbox)
buttonbox.show()
optionsbutton = GtkButton()
optionsbutton.set_relief(RELIEF_NONE)
buttonbox.pack_start(optionsbutton, FALSE, FALSE, 2)
optionsbutton.show()
optionsbuttonbox = GtkHBox(FALSE, 0)
optionsbutton.add(optionsbuttonbox)
optionsbuttonbox.pack_start(GtkLabel("File Selector "), FALSE, FALSE, 0)
optionsbuttonbox.pack_start(GtkArrow(ARROW_DOWN), FALSE, FALSE, 0)
optionsbuttonbox.show_all()
optionmenu = GtkMenu()
optionmenu.show()
args = (optionmenu, )
_gtk.gtk_signal_connect(optionsbutton._o, "clicked", popup_options, args)
showdots = GtkCheckMenuItem("Show Hidden Files")
optionmenu.append(showdots)
showdots.set_active(showhidden)
showdots.show()
closebutton = GtkButton()
closebutton.set_relief(RELIEF_NONE)
closebutton.add(GnomeStock("Close"))
closebutton.set_usize(22, 22)
buttonbox.pack_end(closebutton, FALSE, FALSE, 2)
closebutton.show_all()
filewindow = GtkScrolledWindow()
filebox.pack_start(filewindow, TRUE, TRUE, 2)
filewindow.set_usize(130, 500)
filewindow.show()
filelist = GtkCList(1)
filewindow.add(filelist)
filelist.show()
filelist.column_titles_show(1)
filelist.set_column_title(0, currentdir)
glimmer.add_paned_object(filebox._o, "FileSelector", 0)
populate_dir_listing(currentdir)
checkitem = GtkCheckMenuItem("File Selector")
checkitem.set_active(TRUE)
checkitem.show()
glimmer.add_widget_to_menu("_View/Status Bar", checkitem._o)
args = (showdots, filelist, )
_gtk.gtk_signal_connect(showdots._o, "toggled", set_show_hidden_files, args)
args = (checkitem, filebox, )
_gtk.gtk_signal_connect(checkitem._o, "toggled", toggle_file_selector, args)
args = (checkitem, filebox, )
_gtk.gtk_signal_connect(closebutton._o, "clicked", close_file_selector, args)
args = (None, )
_gtk.gtk_signal_connect(filelist._o, "select_row", select_row_callback, args)
|