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

status: connect override button

Changeset cf3330df817e

Parent d1c651c88898

by Steve Borho

Changes to one file · Browse files at cf3330df817e Showing diff from parent d1c651c88898 Diff from another changeset...

 
17
18
19
20
 
21
22
23
 
58
59
60
 
61
62
63
 
144
145
146
147
 
 
 
 
 
 
148
149
150
151
152
 
216
217
218
219
 
 
 
 
 
 
 
 
 
220
221
 
222
223
224
225
226
 
 
 
 
 
 
 
 
 
 
 
227
228
229
230
231
 
 
 
 
 
 
 
 
 
 
 
 
232
233
234
235
 
236
237
238
 
17
18
19
 
20
21
22
23
 
58
59
60
61
62
63
64
 
145
146
147
 
148
149
150
151
152
153
154
 
155
156
157
 
221
222
223
 
224
225
226
227
228
229
230
231
232
233
234
235
236
237
 
 
 
238
239
240
241
242
243
244
245
246
247
248
249
250
 
 
 
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
 
266
267
268
269
@@ -17,7 +17,7 @@
 from PyQt4.QtGui import QWidget, QVBoxLayout, QSplitter, QTreeView, QLineEdit  from PyQt4.QtGui import QTextEdit, QFont, QColor, QDrag  from PyQt4.QtGui import QFrame, QHBoxLayout, QLabel, QPushButton, QMenu -from PyQt4.QtGui import QIcon, QPixmap +from PyQt4.QtGui import QIcon, QPixmap, QToolButton    # This widget can be used as the basis of the commit tool or any other  # working copy browser. @@ -58,6 +58,7 @@
  self.opts.update(opts)   self.pats = pats   self.ms = {} + self.curRow = None     # determine the user configured status colors   # (in the future, we could support full rich-text tags) @@ -144,9 +145,13 @@
  self.fnamelabel = QLabel()   hbox.addWidget(self.fnamelabel)   hbox.addStretch() - self.override = QPushButton(_('Show Contents')) + + self.override = QToolButton() + self.override.setText(_('Show Contents')) + self.override.setCheckable(True) + self.override.setVisible(False) + self.override.toggled.connect(self.refreshDiff)   hbox.addWidget(self.override) - self.override.setVisible(False)     self.te = QTextEdit()   self.te.document().setDefaultStyleSheet(qtlib.thgstylesheet) @@ -216,23 +221,49 @@
    def rowSelected(self, index):   'Connected to treeview "clicked" signal' - path, status, mst, upath = index.model().getRow(index) + self.curRow = None + self.override.setChecked(False) + self.curRow = index.model().getRow(index) + self.refreshDiff() + + def refreshDiff(self): + if self.curRow is None: + return + path, status, mst, upath = self.curRow   wfile = util.pconvert(path)   self.fnamelabel.setText(statusMessage(status, mst, upath)) + showanyway = self.override.isChecked()     if status in '?IC': - diff = _('<em>No displayable differences</em>') - self.te.setHtml(diff) - self.override.setVisible(True) + if showanyway: + diff = open(self.repo.wjoin(wfile), 'r').read() + if '\0' in diff: + diff = _('<b>Contents are binary, not previewable</b>') + self.te.setHtml(diff) + else: + self.te.setText(diff) + else: + diff = _('<b>Not displayed</b>') + self.te.setHtml(diff) + self.override.setVisible(True)   return   elif status in '!': - diff = _('<em>No displayable differences</em>') - self.te.setHtml(diff) - self.override.setVisible(True) + if showanyway: + ctx = self.repo['.'] + diff = ctx.filectx(wfile).data() + if '\0' in diff: + diff = _('<b>Contents are binary, not previewable</b>') + self.te.setHtml(diff) + else: + self.te.setText(diff) + else: + diff = _('<b>Not displayed</b>') + self.te.setHtml(diff) + self.override.setVisible(True)   return     warnings = chunkselect.check_max_diff(self.wctx, wfile) - if warnings: + if warnings and not showanyway:   text = '<b>Diffs not displayed: %s</b>' % warnings[1]   self.te.setHtml(text)   self.override.setVisible(True)