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

repowidget: accept/reject incoming changesets by InfoBar

bundleAccept/bundleReject buttons are moved to ConfirmInfoBar.
ConfirmInfoBar will have 'Filter' check box in future.

Changeset 649ef4a8a0b2

Parent 2ecbd136e053

by Yuya Nishihara

Changes to 2 files · Browse files at 649ef4a8a0b2 Showing diff from parent 2ecbd136e053 Diff from another changeset...

 
750
751
752
 
753
754
755
756
757
758
 
759
760
761
 
806
807
808
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
810
811
 
750
751
752
753
754
755
756
757
758
759
760
761
762
763
 
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
@@ -750,12 +750,14 @@
  # type of InfoBar (the number denotes its priority)   INFO = 1   ERROR = 2 + CONFIRM = 3     infobartype = INFO     _colormap = {   INFO: '#e7f9e0',   ERROR: '#f9d8d8', + CONFIRM: '#fae9b3',   }     def __init__(self, parent=None): @@ -806,6 +808,44 @@
  self._loglabel.linkActivated.connect(self.linkActivated)   self.addRightWidget(self._loglabel)   +class ConfirmInfoBar(InfoBar): + """Show confirmation message with accept/reject buttons""" + accepted = pyqtSignal() + rejected = pyqtSignal() + infobartype = InfoBar.CONFIRM + + def __init__(self, message, parent=None): + super(ConfirmInfoBar, self).__init__(parent) + + self._msglabel = QLabel(message, self, + textInteractionFlags=Qt.TextSelectableByMouse) + self.addWidget(self._msglabel) + + self._buttons = QDialogButtonBox(self) + self._buttons.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) + self.acceptButton = self._buttons.addButton(QDialogButtonBox.Ok) + self.rejectButton = self._buttons.addButton(QDialogButtonBox.Cancel) + self._buttons.accepted.connect(self._accept) + self._buttons.rejected.connect(self._reject) + self.addWidget(self._buttons) + + def closeEvent(self, event): + if self.isVisible(): + self.rejected.emit() + super(ConfirmInfoBar, self).closeEvent(event) + + @pyqtSlot() + def _accept(self): + self.accepted.emit() + self.hide() + self.close() + + @pyqtSlot() + def _reject(self): + self.rejected.emit() + self.hide() + self.close() +  class WidgetGroups(object):   """ Support for bulk-updating properties of Qt widgets """  
 
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 
126
127
128
 
357
358
359
360
361
362
363
364
365
366
367
368
 
371
372
373
 
 
 
 
 
 
 
 
 
 
 
374
375
376
377
378
379
 
105
106
107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
 
109
110
111
112
 
341
342
343
 
 
344
345
 
 
346
347
348
 
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
 
 
366
367
368
@@ -105,24 +105,8 @@
  self._infobarlayout = QVBoxLayout() # placeholder for InfoBar   self.layout().addLayout(self._infobarlayout)   - hbox = QHBoxLayout() - hbox.setContentsMargins(0, 0, 0, 0) - hbox.setSpacing(0) - self.layout().addLayout(hbox) - - self.bundleAccept = b = QPushButton(_('Accept')) - b.setShown(False) - b.setToolTip(_('Pull incoming changesets into your repository')) - b.clicked.connect(self.acceptBundle) - hbox.addWidget(b) - self.bundleReject = b = QPushButton(_('Reject')) - b.setToolTip(_('Reject incoming changesets')) - b.clicked.connect(self.rejectBundle) - b.setShown(False) - hbox.addWidget(b) -   self.filterbar = RepoFilterBar(self.repo, self) - hbox.addWidget(self.filterbar) + self.layout().addWidget(self.filterbar)     self.filterbar.branchChanged.connect(self.setBranch)   self.filterbar.progress.connect(self.progress) @@ -357,12 +341,8 @@
  self.repoview.setRepo(self.repo)   self.revDetailsWidget.setRepo(self.repo)   self.manifestDemand.forward('setRepo', self.repo) - self.bundleAccept.setHidden(False) - self.bundleReject.setHidden(False)   self.filterbar.revsetle.setText('incoming()')   self.filterbar.setEnableFilter(False) - self.filterbar.show() - self.toolbarVisibilityChanged.emit()   self.titleChanged.emit(self.title())   newlen = len(self.repo)   self.revset = range(oldlen, newlen) @@ -371,9 +351,18 @@
  self.repoview.resetBrowseHistory(self.revset)   self._reload_rev = self.revset[0]   + w = self.setInfoBar(qtlib.ConfirmInfoBar, + _('Found incoming changesets')) + assert w + w.acceptButton.setText(_('Accept')) + w.acceptButton.setToolTip(_('Pull incoming changesets into ' + 'your repository')) + w.rejectButton.setText(_('Reject')) + w.rejectButton.setToolTip(_('Reject incoming changesets')) + w.accepted.connect(self.acceptBundle) + w.rejected.connect(self.rejectBundle) +   def clearBundle(self): - self.bundleAccept.setHidden(True) - self.bundleReject.setHidden(True)   self.filterbar.setEnableFilter(True)   self.filterbar.revsetle.setText('')   self.revset = []