Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.1, 1.1.1, and 1.1.2

thgpbranch: Implement pnew

Changeset 6e284288810b

Parent 49d69fd64f7e

by Peer Sommerlund

Changes to 2 files · Browse files at 6e284288810b Showing diff from parent 49d69fd64f7e Diff from another changeset...

 
1545
1546
1547
 
1548
1549
1550
 
1545
1546
1547
1548
1549
1550
1551
@@ -1545,6 +1545,7 @@
  # create PBranchWidget   self.pbranchwidget = thgpbranch.PBranchWidget(   self.repo, self.stbar, accelgroup, self.tooltips) + self.pbranchwidget.connect('repo-invalidated', self.repo_invalidated)     def wrapframe(widget):   frame = gtk.Frame()
 
12
13
14
15
 
16
17
18
 
45
46
47
 
 
 
 
 
 
48
49
50
 
306
307
308
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
311
312
313
314
315
316
 
 
 
 
 
317
318
319
 
518
519
520
521
 
522
523
524
525
526
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
13
14
 
15
16
17
18
 
45
46
47
48
49
50
51
52
53
54
55
56
 
312
313
314
 
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
 
336
337
338
339
340
341
342
343
 
542
543
544
 
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
 
@@ -12,7 +12,7 @@
   from tortoisehg.util.i18n import _   -from tortoisehg.hgtk import gtklib +from tortoisehg.hgtk import gtklib, dialog  from tortoisehg.hgtk.logview import graphcell    # Patch Branch model enumeration @@ -45,6 +45,12 @@
  gobject.PARAM_READWRITE)   }   + __gsignals__ = { + 'repo-invalidated': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ()), + } +   def __init__(self, repo, statusbar, accelgroup=None, tooltips=None):   gtk.VBox.__init__(self)   @@ -306,14 +312,32 @@
  for dep in graph.pendingrebases(patch_name):   status.append(_('needs update of diff base to tip of %s\n') % dep)   return status - + + def pnew_ui(self): + """ + Create new patch. + Propmt user for new patch name. Patch is created + on current branch. + """ + parent = None + title = _('New Patch Name') + new_name = dialog.entry_dialog(parent, title) + if not new_name: + return False + self.pnew(new_name) + return True +   def pnew(self, patch_name):   """   [pbranch] Execute 'pnew' command.     :param patch_name: Name of new patch-branch   """ - assert False + if self.pbranch is None: + return False + self.pbranch.cmdnew(self.repo.ui, self.repo, patch_name) + self.emit('repo-invalidated') + return True     def pmerge(self):   """ @@ -518,9 +542,26 @@
  pass     def pnew_clicked(self, toolbutton): - pass + self.pnew_ui()     def reapply_clicked(self, toolbutton):   pass     ### context menu signal handlers ### + + def pnew_activated(self, menuitem, row): + """Insert new patch after this row""" + if self.cur_patch() == row[M_NAME]: + self.pnew_ui() + return + # pnew from patch different than current + assert False + if self.wdir_modified(): + # Ask user if current changes should be discarded + # Abort if user does not agree + pass + # remember prev branch + # Update to row[M_NAME] + # pnew_ui + # if aborted, update back to prev branch + pass \ No newline at end of file