Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.9, 0.9.1, and 0.9.1.1

guess: cleanup UI codes #1

mainly, this changeset:
-cleanups the order of code blocks
-gives appropriate names to the UI variables
-adds structured comments
-changes local variables to member variables

Changeset 7cb8a3ffc852

Parent 7c2c2e3309f7

by Yuki KODAMA

Changes to one file · Browse files at 7cb8a3ffc852 Showing diff from parent 7c2c2e3309f7 Diff from another changeset...

 
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
171
172
173
174
175
176
 
 
177
178
179
180
181
 
182
183
184
185
 
 
 
186
187
 
188
189
190
 
217
218
219
220
221
222
 
 
 
223
224
225
 
 
226
227
 
228
229
230
231
 
 
 
232
233
234
235
236
237
 
238
239
240
241
 
242
243
244
 
255
256
257
258
 
259
260
261
262
263
264
265
 
 
266
267
268
 
270
271
272
273
 
274
275
276
 
277
278
279
280
281
282
283
 
284
285
286
 
287
288
 
289
290
 
291
292
 
293
294
295
 
301
302
303
304
 
305
306
307
 
308
309
 
310
311
 
312
313
314
 
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
171
172
173
 
174
175
 
 
 
176
177
178
179
 
 
 
180
181
 
 
 
182
183
184
 
 
185
186
187
188
189
 
 
 
 
 
190
191
192
193
194
 
 
 
 
 
 
 
 
195
196
197
198
199
200
 
201
202
203
204
205
 
206
 
 
 
 
 
207
208
209
210
 
 
 
 
 
 
211
212
213
214
215
216
 
217
218
 
 
 
219
220
221
222
 
223
224
225
226
 
253
254
255
 
 
 
256
257
258
259
 
 
260
261
262
 
263
264
 
 
 
265
266
267
268
269
270
271
272
 
273
274
275
276
 
277
278
279
280
 
291
292
293
 
294
295
296
297
298
299
 
 
300
301
302
303
304
 
306
307
308
 
309
310
311
 
312
313
314
315
316
317
318
 
319
320
321
 
322
323
 
324
325
 
326
327
 
328
329
330
331
 
337
338
339
 
340
341
342
 
343
344
 
345
346
 
347
348
349
350
@@ -51,140 +51,176 @@
  self.notify_func = None   reponame = hglib.get_reponame(repo)   self.set_title(_('Detect Copies/Renames in %s') % reponame) - self._settings = settings.Settings('guess') - dims = self._settings.get_value('dims', (800, 600)) + self.settings = settings.Settings('guess') + dims = self.settings.get_value('dims', (800, 600))   self.set_default_size(dims[0], dims[1])   - adjustment = gtk.Adjustment(50, 0, 100, 1) - value = self._settings.get_value('percent', None) - if value: adjustment.set_value(value) - hscale = gtk.HScale(adjustment) + # vbox for dialog main & status bar + mainvbox = gtk.VBox() + self.add(mainvbox) + + # vsplit for top & diff + self.vpaned = gtk.VPaned() + mainvbox.pack_start(self.vpaned, True, True, 2) + pos = self.settings.get_value('vpaned', None) + if pos: self.vpaned.set_position(pos) + + # vbox for top contents + topvbox = gtk.VBox() + self.vpaned.pack1(topvbox, True, False) + + # frame for simularity   frame = gtk.Frame(_('Minimum Simularity Percentage')) - frame.add(hscale) - topvbox = gtk.VBox()   topvbox.pack_start(frame, False, False, 2)   - unkmodel = gtk.ListStore(str, str) - unknowntree = gtk.TreeView(unkmodel) - unknowntree.get_selection().set_mode(gtk.SELECTION_MULTIPLE) + #$ simularity slider + self.adjustment = gtk.Adjustment(50, 0, 100, 1) + value = self.settings.get_value('percent', None) + if value: self.adjustment.set_value(value) + hscale = gtk.HScale(self.adjustment) + frame.add(hscale) + + # horizontal splitter for unknown & candidate + self.hpaned = gtk.HPaned() + topvbox.pack_start(self.hpaned, True, True, 2) + pos = self.settings.get_value('hpaned', None) + if pos: self.hpaned.set_position(pos) + + #$ frame for unknown list + unknownframe = gtk.Frame(_('Unrevisioned Files')) + self.hpaned.pack1(unknownframe, True, True) + + #$$ vbox for unknown list & rename/copy buttons + unkvbox = gtk.VBox() + unknownframe.add(unkvbox) + + #$$$ scroll window for unknown list + scroller = gtk.ScrolledWindow() + unkvbox.pack_start(scroller, True, True, 2) + scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + + #$$$$ unknown list + unkmodel = gtk.ListStore(str, # path + str) # path (utf-8) + self.unktree = gtk.TreeView(unkmodel) + scroller.add(self.unktree) + self.unktree.get_selection().set_mode(gtk.SELECTION_MULTIPLE)   cell = gtk.CellRendererText()   cell.set_property("ellipsize", pango.ELLIPSIZE_START) +   col = gtk.TreeViewColumn('File', cell, text=1) - unknowntree.append_column(col) - unknowntree.set_enable_search(True) - unknowntree.set_headers_visible(False) + self.unktree.append_column(col) + self.unktree.set_enable_search(True) + self.unktree.set_headers_visible(False) + + #$$$ hbox for rename/copy buttons + btnhbox = gtk.HBox() + unkvbox.pack_start(btnhbox, False, False, 2) + + #$$$$ rename/copy buttons in unknown frame + fr = gtk.Button(_('Find Renames')) + fr.set_sensitive(False) + btnhbox.pack_start(fr, False, False, 2) + fc = gtk.Button(_('Find Copies')) + fc.set_sensitive(False) + btnhbox.pack_start(fc, False, False, 2) + + #$ frame for candidate list + candidateframe = gtk.Frame(_('Candidate Matches')) + self.hpaned.pack2(candidateframe, True, True) + + #$$ vbox for candidate list & accept button + canvbox = gtk.VBox() + candidateframe.add(canvbox) + + #$$$ scroll window for candidate list   scroller = gtk.ScrolledWindow() + canvbox.pack_start(scroller, True, True, 2)   scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - scroller.add(unknowntree)   - vbox = gtk.VBox() - vbox.pack_start(scroller, True, True, 2) - fr = gtk.Button(_('Find Renames')) - fc = gtk.Button(_('Find Copies')) - hbox = gtk.HBox() - hbox.pack_start(fr, False, False, 2) - hbox.pack_start(fc, False, False, 2) - vbox.pack_start(hbox, False, False, 2) - fr.set_sensitive(False) - fc.set_sensitive(False) - - unknownframe = gtk.Frame(_('Unrevisioned Files')) - unknownframe.add(vbox) - - # source, dest, percent match, sensitive - cmodel = gtk.ListStore(str, str, str, str, str, bool) - ctree = gtk.TreeView(cmodel) - ctree.set_rules_hint(True) - ctree.set_reorderable(False) - ctree.set_enable_search(False) - ctree.get_selection().set_mode(gtk.SELECTION_MULTIPLE) + #$$$$ candidate list + canmodel = gtk.ListStore(str, # source + str, # source (utf-8) + str, # dest + str, # dest (utf-8) + str, # percent + bool) # sensitive + self.cantree = gtk.TreeView(canmodel) + scroller.add(self.cantree) + self.cantree.set_rules_hint(True) + self.cantree.set_reorderable(False) + self.cantree.set_enable_search(False) + self.cantree.get_selection().set_mode(gtk.SELECTION_MULTIPLE)     cell = gtk.CellRendererText()   cell.set_property('width-chars', 30)   cell.set_property('ellipsize', pango.ELLIPSIZE_START)   col = gtk.TreeViewColumn(_('Source'), cell, text=1, sensitive=5)   col.set_resizable(True) - ctree.append_column(col) + self.cantree.append_column(col)     cell = gtk.CellRendererText()   cell.set_property('width-chars', 30)   cell.set_property('ellipsize', pango.ELLIPSIZE_START)   col = gtk.TreeViewColumn(_('Dest'), cell, text=3, sensitive=5)   col.set_resizable(True) - ctree.append_column(col) + self.cantree.append_column(col)     cell = gtk.CellRendererText()   cell.set_property('width-chars', 5)   cell.set_property('ellipsize', pango.ELLIPSIZE_NONE)   col = gtk.TreeViewColumn('%', cell, text=4, sensitive=5)   col.set_resizable(True) - ctree.append_column(col) + self.cantree.append_column(col)   - scroller = gtk.ScrolledWindow() - scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - scroller.add(ctree) + #$$$ hbox for accept button + btnhbox = gtk.HBox() + canvbox.pack_start(btnhbox, False, False, 2)   - stbar = gtklib.StatusBar() - vbox = gtk.VBox() - vbox.pack_start(scroller, True, True, 2) + #$$$$ accept button in candidate frame   ac = gtk.Button(_('Accept Match')) - hbox = gtk.HBox() - hbox.pack_start(ac, False, False, 2) - vbox.pack_start(hbox, False, False, 2) + btnhbox.pack_start(ac, False, False, 2)   ac.set_sensitive(False)   - candidateframe = gtk.Frame(_('Candidate Matches')) - candidateframe.add(vbox) + # frame for diff + diffframe = gtk.Frame(_('Differences from Source to Dest')) + self.vpaned.pack2(diffframe) + diffframe.set_shadow_type(gtk.SHADOW_ETCHED_IN)   - hpaned = gtk.HPaned() - hpaned.pack1(unknownframe, True, True) - hpaned.pack2(candidateframe, True, True) - pos = self._settings.get_value('hpaned', None) - if pos: hpaned.set_position(pos) + #$ scroll window for diff + scroller = gtk.ScrolledWindow() + diffframe.add(scroller) + scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)   - topvbox.pack_start(hpaned, True, True, 2) - - diffframe = gtk.Frame(_('Differences from Source to Dest')) - diffframe.set_shadow_type(gtk.SHADOW_ETCHED_IN) - scroller = gtk.ScrolledWindow() - scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - diffframe.add(scroller) - + #$$ text view for diff   buf = gtk.TextBuffer()   buf.create_tag('removed', foreground='#900000')   buf.create_tag('added', foreground='#006400')   buf.create_tag('position', foreground='#FF8000')   buf.create_tag('header', foreground='#000090') -   diffview = gtk.TextView(buf) + scroller.add(diffview)   diffview.modify_font(pango.FontDescription('monospace'))   diffview.set_wrap_mode(gtk.WRAP_NONE)   diffview.set_editable(False) - scroller.add(diffview)   - vpaned = gtk.VPaned() - vpaned.pack1(topvbox, True, False) - vpaned.pack2(diffframe) - pos = self._settings.get_value('vpaned', None) - if pos: vpaned.set_position(pos) + # status bar + self.stbar = gtklib.StatusBar() + mainvbox.pack_start(self.stbar, False, False, 2)   - vbox = gtk.VBox() - vbox.pack_start(vpaned, True, True, 2) - vbox.pack_start(stbar, False, False, 2) - self.add(vbox) - - args = (unknowntree, ctree, adjustment, stbar) + # register signal handlers + args = (self.unktree, self.cantree, self.adjustment, self.stbar)   fc.connect('pressed', self.find_copies, *args)   fr.connect('pressed', self.find_renames, *args)   ac.connect('pressed', self.accept_match, *args)   - unknowntree.get_selection().connect('changed', + self.unktree.get_selection().connect('changed',   self.unknown_sel_change, fr, fc) - ctree.connect('row-activated', - self.candidate_row_act, unknowntree, stbar) - ctree.get_selection().connect('changed', self.show_diff, buf, ac) + self.cantree.connect('row-activated', + self.candidate_row_act, self.unktree, self.stbar) + self.cantree.get_selection().connect('changed', self.show_diff, buf, ac)   self.connect('delete-event', self.save_settings, - settings, hpaned, vpaned, adjustment) + self.settings, self.hpaned, self.vpaned, self.adjustment)   gobject.idle_add(self.refresh, unkmodel)     def set_notify_func(self, func): @@ -217,28 +253,28 @@
  return thread.isAlive()     def save_settings(self, w, event, settings, hpaned, vpaned, adjustment): - self._settings.set_value('vpaned', vpaned.get_position()) - self._settings.set_value('hpaned', hpaned.get_position()) - self._settings.set_value('percent', adjustment.get_value()) + self.settings.set_value('vpaned', vpaned.get_position()) + self.settings.set_value('hpaned', hpaned.get_position()) + self.settings.set_value('percent', adjustment.get_value())   rect = self.get_allocation() - self._settings.set_value('dims', (rect.width, rect.height)) - self._settings.write() + self.settings.set_value('dims', (rect.width, rect.height)) + self.settings.write()   - def find_renames(self, widget, unktree, ctree, adj, stbar): + def find_renames(self, widget, unktree, cantree, adj, stbar):   'User pressed "find renames" button' - cmodel = ctree.get_model() - cmodel.clear() - umodel, upaths = unktree.get_selection().get_selected_rows() + canmodel = self.cantree.get_model() + canmodel.clear() + umodel, upaths = self.unktree.get_selection().get_selected_rows()   if not upaths:   return   tgts = [ umodel[p][0] for p in upaths ]   q = Queue.Queue()   thread = thread2.Thread(target=self.search_thread, - args=(self.repo.root, q, tgts, adj)) + args=(self.repo.root, q, tgts, self.adjustment))   thread.start()   stbar.begin()   stbar.set_status_text(_('finding source of ') + ', '.join(tgts)) - gobject.timeout_add(50, self.search_wait, thread, q, cmodel, stbar) + gobject.timeout_add(50, self.search_wait, thread, q, canmodel, stbar)     def search_thread(self, root, q, tgts, adj):   srcs = [] @@ -255,14 +291,14 @@
  if (not good or not util.lexists(target)   or (os.path.isdir(target) and not os.path.islink(target))):   srcs.append(abs) - elif not adj and status == 'n': + elif not self.adjustment and status == 'n':   # looking for copies, so any revisioned file is a   # potential source (yes, this will be expensive)   # Added and removed files are not considered as copy   # sources.   srcs.append(abs) - if adj: - simularity = adj.get_value() / 100.0; + if self.adjustment: + simularity = self.adjustment.get_value() / 100.0;   gen = cmdutil.findrenames   else:   simularity = 1.0 @@ -270,26 +306,26 @@
  for old, new, score in gen(self.repo, tgts, srcs, simularity):   q.put( [old, new, '%d%%' % (score*100)] )   - def search_wait(self, thread, q, cmodel, stbar): + def search_wait(self, thread, q, canmodel, stbar):   while q.qsize():   source, dest, sim = q.get(0) - cmodel.append( [source, hglib.toutf(source), dest, hglib.toutf(dest), sim, True] ) + canmodel.append( [source, hglib.toutf(source), dest, hglib.toutf(dest), sim, True] )   if thread.isAlive():   return True   else:   stbar.end()   return False   - def find_copies(self, widget, unktree, ctree, adj, stbar): + def find_copies(self, widget, unktree, cantree, adj, stbar):   'User pressed "find copies" button'   # call rename function with simularity = 100% - self.find_renames(widget, unktree, ctree, None, stbar) + self.find_renames(widget, self.unktree, self.cantree, None, stbar)   - def accept_match(self, widget, unktree, ctree, adj, stbar): + def accept_match(self, widget, unktree, cantree, adj, stbar):   'User pressed "accept match" button' - cmodel, upaths = ctree.get_selection().get_selected_rows() + canmodel, upaths = self.cantree.get_selection().get_selected_rows()   for path in upaths: - row = cmodel[path] + row = canmodel[path]   src, usrc, dest, udest, percent, sensitive = row   if not sensitive:   continue @@ -301,14 +337,14 @@
  if self.notify_func:   self.notify_func()   # Mark all rows with this target file as non-sensitive - for row in cmodel: + for row in canmodel:   if row[2] == dest:   row[5] = False - self.refresh(unktree.get_model()) + self.refresh(self.unktree.get_model())   - def candidate_row_act(self, ctree, path, column, unktree, stbar): + def candidate_row_act(self, cantree, path, column, unktree, stbar):   'User activated row of candidate list' - self.accept_match(ctree, unktree, ctree, None, stbar) + self.accept_match(self.cantree, self.unktree, self.cantree, None, stbar)     def unknown_sel_change(self, selection, fr, fc):   'User selected a row in the unknown tree'