Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

guess: allow multiple selections in match treeview, handle dups cleanly

Changeset df19483bb24b

Parent 4bfdada47d99

by Steve Borho

Changes to one file · Browse files at df19483bb24b Showing diff from parent 4bfdada47d99 Diff from another changeset...

 
97
98
99
 
100
101
102
 
228
229
230
231
232
233
 
 
234
 
 
 
 
 
 
 
235
236
237
 
238
239
240
241
242
243
244
 
97
98
99
100
101
102
103
 
229
230
231
 
 
 
232
233
234
235
236
237
238
239
240
241
242
 
 
243
244
245
 
 
246
247
248
@@ -97,6 +97,7 @@
  matchlbl = QLabel(_('<b>Candidate Matches</b>'))   matchvbox.addWidget(matchlbl)   self.matchlv = QTreeView() + self.matchlv.setSelectionMode(QTreeView.ExtendedSelection)   self.matchlv.setItemsExpandable(False)   self.matchlv.setRootIsDecorated(False)   self.model = MatchModel() @@ -228,17 +229,20 @@
    def acceptMatch(self):   'User pressed "accept match" button' - hglib.invalidaterepo(self.repo) - remdests = [] - for index in self.matchlv.selectedIndexes(): + remdests = {} + for index in self.matchlv.selectionModel().selectedRows():   src, dest, percent = self.matchlv.model().getRow(index) + if dest in remdests: + QMessageBox.warning(self, _('Multiple sources chosen'), + _('You have multiple renames selected for ' + 'destination file:\n%s. Aborting!') % dest) + return + remdests[dest] = src + for dest, src in remdests.iteritems():   if not os.path.exists(self.repo.wjoin(src)): - # Mark missing rename source as removed - self.repo.remove([src]) + self.repo.remove([src]) # !->R   self.repo.copy(src, dest)   shlib.shell_notify([self.repo.wjoin(src), self.repo.wjoin(dest)]) - remdests.append(dest) - for dest in remdests:   self.matchlv.model().remove(dest)   self.matchAccepted.emit()   self.refresh()