Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.1, 2.1.1, and 2.1.2

stable repowidget: only show push context menu for outgoing changesets

This patch hides the push submenu of the repowidget context menu unless the user
clicks on an outgoing changeset. That is, in order to access the menu the user
must first execute the outgoing command and then right click on one of the
changesets.

The idea is to mirror the "bundle context menu" functionality, simplifying the
changeset context menu, which is already quite crowded.

Changeset 321088de6c36

Parent ab269fff1b3a

by Angel Ezquerra

Changes to one file · Browse files at 321088de6c36 Showing diff from parent ab269fff1b3a Diff from another changeset...

 
70
71
72
 
73
74
75
 
418
419
420
 
421
422
423
 
510
511
512
513
 
514
515
516
 
942
943
944
945
946
947
948
 
949
950
951
 
953
954
955
956
 
957
958
959
 
972
973
974
 
 
 
 
975
976
977
 
1036
1037
1038
1039
1040
 
1041
1042
1043
1044
1045
 
1070
1071
1072
1073
1074
1075
 
 
 
 
 
 
 
 
 
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
 
1145
1146
1147
1148
1149
1150
1151
 
 
 
 
 
 
1152
1153
1154
 
1355
1356
1357
 
 
1358
1359
1360
 
70
71
72
73
74
75
76
 
419
420
421
422
423
424
425
 
512
513
514
 
515
516
517
518
 
944
945
946
 
947
948
 
949
950
951
952
 
954
955
956
 
957
958
959
960
 
973
974
975
976
977
978
979
980
981
982
 
1041
1042
1043
 
 
1044
1045
 
1046
1047
1048
 
1073
1074
1075
 
1076
 
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
 
 
 
 
 
 
 
 
1089
1090
1091
 
1147
1148
1149
 
 
 
 
1150
1151
1152
1153
1154
1155
1156
1157
1158
 
1359
1360
1361
1362
1363
1364
1365
1366
@@ -70,6 +70,7 @@
  self.revsetfilter = False   self.ubranch = u''   self.bundle = None + self.outgoingMode = False   self.revset = []   self.busyIcons = []   self.namedTabs = {} @@ -418,6 +419,7 @@
  @pyqtSlot()   def clearRevisionSet(self):   self.toolbarVisibilityChanged.emit() + self.outgoingMode = False   if not self.revset:   return   self.revset = [] @@ -510,7 +512,7 @@
  self.generateUnappliedPatchMenu()   self.generateMultipleSelectionMenu()   self.generateBundleMenu() - + self.generateOutgoingMenu()   def detectPatches(self, paths):   filepaths = []   for p in paths: @@ -942,10 +944,9 @@
    def pull(self):   self.syncDemand.get().pull() -   def outgoing(self):   self.syncDemand.get().outgoing() - + self.outgoingMode = True   def push(self, confirm=True):   """Call sync push.   @@ -953,7 +954,7 @@
  confirmation. If confirm is True, the prompt might be used.   """   self.syncDemand.get().push(confirm) - + self.outgoingMode = False   ##   ## Repoview context menu   ## @@ -972,6 +973,10 @@
  if len(selection) == 1:   self.bundlemenu.exec_(point)   return + if self.outgoingMode: + if len(selection) == 1: + self.outgoingcmenu.exec_(point) + return     self.menuselection = selection   allunapp = False @@ -1036,10 +1041,8 @@
  self.unappacts[4].setEnabled(unapplied > 1)   self.unappacts[5].setEnabled(len(selection) == 1)   self.unappcmenu.exec_(point) - - def generateSingleMenu(self): + def generateSingleMenu(self, mode=None):   items = [] -   # This menu will never be opened for an unapplied patch, they   # have their own menu.   # @@ -1070,20 +1073,19 @@
  act.enableFunc = func   menu.addAction(act)   items.append(act) -   menu = QMenu(self) - + if mode == 'outgoing': + submenu = menu.addMenu(_('Push')) + entry(submenu, None, isrev, _('Push all'), 'hg-push', + self.pushToRevision) + entry(submenu, None, isrev, _('Push to here'), '', + self.pushToRevision) + entry(submenu, None, isrev, _('Push selected branch'), '', + self.pushBranch) + entry(menu)   entry(menu, None, isrev, _('Update...'), 'hg-update',   self.updateToRevision)   entry(menu) - submenu = menu.addMenu(_('Push')) - entry(submenu, None, isrev, _('Push all'), 'hg-push', - self.pushToRevision) - entry(submenu, None, isrev, _('Push to here'), '', - self.pushToRevision) - entry(submenu, None, isrev, _('Push selected branch'), '', - self.pushBranch) - entry(menu)   entry(menu, None, isctx, _('Visual diff...'), 'visualdiff',   self.visualDiffRevision)   entry(menu, None, isrev, _('Diff to local...'), 'ldiff', @@ -1145,10 +1147,12 @@
    entry(menu, 'rupdate', fixed, _('Remote Update...'), 'hg-update',   self.rupdate) - - self.singlecmenu = menu - self.singlecmenuitems = items - + if mode == 'outgoing': + self.outgoingcmenu = menu + self.outgoingcmenuitems = items + else: + self.singlecmenu = menu + self.singlecmenuitems = items   def generatePairMenu(self):   def dagrange():   revA, revB = self.menuselection @@ -1355,6 +1359,8 @@
  a.setIcon(qtlib.getmenuicon(icon))   menu.addAction(a)   self.bundlemenu = menu + def generateOutgoingMenu(self): + self.generateSingleMenu(mode='outgoing')     def exportRevisions(self, revisions):   if not revisions: