author | Germán Póo-Caamaño <gpoo@calcifer.org> |
Mon, 21 Jul 2008 11:51:12 -0400 | |
changeset 1182 | cbe418752174 |
parent 1021 | e25af93c1354 |
permissions | -rw-r--r-- |
1021
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
1 |
# |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
2 |
# hgignore.py - TortoiseHg's dialog for editing .hgignore |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
3 |
# |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
4 |
# Copyright (C) 2008 Steve Borho <steve@borho.org> |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
5 |
# |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
6 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
7 |
import os |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
8 |
import gobject |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
9 |
import gtk |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
10 |
import pango |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
11 |
import string |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
12 |
from dialog import * |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
13 |
import hglib |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
14 |
from mercurial import hg, ui |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
15 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
16 |
class HgIgnoreDialog(gtk.Window): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
17 |
""" Edit a reposiory .hgignore file """ |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
18 |
def __init__(self, root=''): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
19 |
""" Initialize the Dialog """ |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
20 |
gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
21 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
22 |
self.root = root |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
23 |
self.set_title('Ignore mask for ' + os.path.basename(root)) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
24 |
self.set_default_size(630, 400) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
25 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
26 |
self.tbar = gtk.Toolbar() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
27 |
self.tips = gtk.Tooltips() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
28 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
29 |
tbuttons = [ |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
30 |
self._toolbutton(gtk.STOCK_REFRESH, |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
31 |
'Refresh', |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
32 |
self._refresh_clicked, |
1182
cbe418752174
hggtk: get rid of close buttons
Germán Póo-Caamaño <gpoo@calcifer.org>
parents:
1021
diff
changeset
|
33 |
tip='Reload hgignore') |
1021
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
34 |
] |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
35 |
for btn in tbuttons: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
36 |
self.tbar.insert(btn, -1) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
37 |
mainvbox = gtk.VBox() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
38 |
self.add(mainvbox) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
39 |
mainvbox.pack_start(self.tbar, False, False, 2) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
40 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
41 |
hbox = gtk.HBox() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
42 |
lbl = gtk.Label('Glob:') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
43 |
lbl.set_property("width-chars", 7) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
44 |
lbl.set_alignment(1.0, 0.5) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
45 |
hbox.pack_start(lbl, False, False, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
46 |
glob_entry = gtk.Entry() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
47 |
hbox.pack_start(glob_entry, True, True, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
48 |
glob_button = gtk.Button('add') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
49 |
hbox.pack_start(glob_button, False, False, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
50 |
glob_button.connect('clicked', self.add_glob, glob_entry) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
51 |
glob_entry.connect('activate', self.add_glob, glob_entry) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
52 |
mainvbox.pack_start(hbox, False, False) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
53 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
54 |
hbox = gtk.HBox() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
55 |
lbl = gtk.Label('Regexp:') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
56 |
lbl.set_property("width-chars", 7) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
57 |
lbl.set_alignment(1.0, 0.5) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
58 |
hbox.pack_start(lbl, False, False, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
59 |
regexp_entry = gtk.Entry() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
60 |
hbox.pack_start(regexp_entry, True, True, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
61 |
regexp_button = gtk.Button('add') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
62 |
hbox.pack_start(regexp_button, False, False, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
63 |
regexp_button.connect('clicked', self.add_regexp, regexp_entry) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
64 |
regexp_entry.connect('activate', self.add_regexp, regexp_entry) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
65 |
mainvbox.pack_start(hbox, False, False) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
66 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
67 |
hbox = gtk.HBox() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
68 |
frame = gtk.Frame('Filters') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
69 |
hbox.pack_start(frame, True, True, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
70 |
pattree = gtk.TreeView() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
71 |
sel = pattree.get_selection() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
72 |
sel.connect("changed", self.pattern_rowchanged) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
73 |
col = gtk.TreeViewColumn('Patterns', gtk.CellRendererText(), text=0) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
74 |
pattree.append_column(col) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
75 |
scrolledwindow = gtk.ScrolledWindow() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
76 |
scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
77 |
scrolledwindow.set_border_width(4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
78 |
scrolledwindow.add(pattree) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
79 |
pattree.set_headers_visible(False) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
80 |
self.pattree = pattree |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
81 |
frame.add(scrolledwindow) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
82 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
83 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
84 |
frame = gtk.Frame('Unknown Files') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
85 |
hbox.pack_start(frame, True, True, 4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
86 |
unknowntree = gtk.TreeView() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
87 |
sel = unknowntree.get_selection() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
88 |
sel.connect("changed", self.unknown_rowchanged) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
89 |
col = gtk.TreeViewColumn('Files', gtk.CellRendererText(), text=0) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
90 |
unknowntree.append_column(col) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
91 |
scrolledwindow = gtk.ScrolledWindow() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
92 |
scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
93 |
scrolledwindow.set_border_width(4) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
94 |
scrolledwindow.add(unknowntree) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
95 |
model = gtk.ListStore(gobject.TYPE_STRING) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
96 |
unknowntree.set_model(model) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
97 |
unknowntree.set_headers_visible(False) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
98 |
frame.add(scrolledwindow) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
99 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
100 |
mainvbox.pack_start(hbox, True, True) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
101 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
102 |
glob_entry.grab_focus() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
103 |
self.connect('map_event', self._on_window_map_event) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
104 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
105 |
def pattern_rowchanged(self, sel): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
106 |
model, iter = sel.get_selected() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
107 |
if not iter: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
108 |
return |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
109 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
110 |
def unknown_rowchanged(self, sel): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
111 |
model, iter = sel.get_selected() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
112 |
if not iter: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
113 |
return |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
114 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
115 |
def add_glob(self, widget, glob_entry): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
116 |
pass |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
117 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
118 |
def add_regexp(self, widget, glob_entry): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
119 |
pass |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
120 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
121 |
def _on_window_map_event(self, event, param): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
122 |
self._refresh_clicked(None) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
123 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
124 |
def _refresh_clicked(self, togglebutton, data=None): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
125 |
try: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
126 |
l = open(os.path.join(self.root, '.hgignore'), 'rb').readlines() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
127 |
if l[0].endswith('\r\n'): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
128 |
self.doseoln = True |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
129 |
except IOError, ValueError: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
130 |
self.doseoln = os.name == 'nt' |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
131 |
l = [] |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
132 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
133 |
model = gtk.ListStore(gobject.TYPE_STRING) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
134 |
l = [string.strip(line) for line in l] |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
135 |
for line in l: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
136 |
model.append([line]) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
137 |
self.pattree.set_model(model) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
138 |
self.ignorelines = l |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
139 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
140 |
def write_ignore_lines(self): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
141 |
if doseoln: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
142 |
out = [line + '\r\n' for line in self.ignorelines] |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
143 |
else: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
144 |
out = [line + '\n' for line in self.ignorelines] |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
145 |
try: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
146 |
f = open(os.path.join(self.root, '.hgignore'), 'wb') |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
147 |
f.writelines(out) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
148 |
f.close() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
149 |
except IOError: |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
150 |
pass |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
151 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
152 |
def _toolbutton(self, stock, label, handler, tip): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
153 |
tbutton = gtk.ToolButton(stock) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
154 |
tbutton.set_label(label) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
155 |
tbutton.set_tooltip(self.tips, tip) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
156 |
tbutton.connect('clicked', handler) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
157 |
return tbutton |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
158 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
159 |
def run(root='', **opts): |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
160 |
dialog = HgIgnoreDialog(root) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
161 |
dialog.show_all() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
162 |
dialog.connect('destroy', gtk.main_quit) |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
163 |
gtk.gdk.threads_init() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
164 |
gtk.gdk.threads_enter() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
165 |
gtk.main() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
166 |
gtk.gdk.threads_leave() |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
167 |
|
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
168 |
if __name__ == "__main__": |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
169 |
opts = {'root' : hglib.rootpath()} |
e25af93c1354
hggtk/hgignore: partial dialog for hgignore
Steve Borho <steve@borho.org>
parents:
diff
changeset
|
170 |
run(**opts) |