Changeset 73b5d51800e7…
Parent 530b5c7f41fb…
by
Changes to 2 files · Browse files at 73b5d51800e7 Showing diff from parent 530b5c7f41fb Diff from another changeset...
@@ -21,6 +21,7 @@
# Technical Debt for CommitWidget
# qrefresh support
+# refresh parent changeset descriptions after refresh
# threaded / wrapped commit (need a CmdRunner equivalent)
# qtlib decode failure dialog (ask for retry locale, suggest HGENCODING)
# Need a unicode-to-UTF8 function
@@ -46,10 +47,8 @@ self.stwidget = status.StatusWidget(pats, opts, root, self)
self.connect(self.stwidget, SIGNAL('errorMessage'),
lambda m: self.emit(SIGNAL('errorMessage'), m))
- self.connect(self.stwidget, SIGNAL('loadBegin'),
- lambda: self.emit(SIGNAL('loadBegin')))
- self.connect(self.stwidget, SIGNAL('loadComplete'),
- lambda: self.emit(SIGNAL('loadComplete')))
+ self.stwidget.loadBegin.connect(lambda: self.loadBegin.emit())
+ self.stwidget.loadComplete.connect(lambda: self.loadComplete.emit())
self.msghistory = []
SP = QSizePolicy
@@ -171,9 +170,9 @@ def canUndo(self):
'Returns undo description or None if not valid'
repo = self.stwidget.repo
- if os.path.exists(self.repo.sjoin('undo')):
+ if os.path.exists(repo.sjoin('undo')):
try:
- args = self.repo.opener('undo.desc', 'r').read().splitlines()
+ args = repo.opener('undo.desc', 'r').read().splitlines()
if args[1] != 'commit':
return None
return _('Rollback commit to revision %d') % (int(args[0]) - 1)
@@ -405,7 +404,7 @@ QComboBox.showPopup(self)
# Technical Debt for standalone tool
-# add a toolbar for refresh, undo, etc
+# add a toolbar for refresh
# add a statusbar and simple progressbar
class CommitDialog(QDialog):
@@ -426,9 +425,13 @@ layout.addLayout(bbl)
layout.addSpacing(9)
BB = QDialogButtonBox
- bb = QDialogButtonBox(BB.Ok|BB.Cancel)
+ bb = QDialogButtonBox(BB.Ok|BB.Cancel|BB.Discard)
self.connect(bb, SIGNAL("accepted()"), self, SLOT("accept()"))
self.connect(bb, SIGNAL("rejected()"), self, SLOT("reject()"))
+ bb.button(BB.Cancel).setDefault(False)
+ bb.button(BB.Discard).setDefault(False)
+ bb.button(BB.Discard).setText('Undo')
+ bb.button(BB.Discard).clicked.connect(commit.rollback)
bb.button(BB.Ok).setDefault(True)
bb.button(BB.Ok).setText('Commit')
bbl.addWidget(bb, alignment=Qt.AlignRight)
@@ -444,6 +447,17 @@ name = hglib.get_reponame(commit.stwidget.repo)
self.setWindowTitle('%s - commit' % name)
self.commit = commit
+ commit.loadComplete.connect(self.updateUndo)
+
+ def updateUndo(self):
+ BB = QDialogButtonBox
+ undomsg = self.commit.canUndo()
+ if undomsg:
+ self.bb.button(BB.Discard).setEnabled(True)
+ self.bb.button(BB.Discard).setToolTip(undomsg)
+ else:
+ self.bb.button(BB.Discard).setEnabled(False)
+ self.bb.button(BB.Discard).setToolTip('')
def errorMessage(self, msg):
print msg
|
@@ -46,6 +46,8 @@ errorMessage(QString) - for status bar
titleTextChanged(QString) - for window title
'''
+ loadBegin = pyqtSignal()
+ loadComplete = pyqtSignal()
def __init__(self, pats, opts, root=None, parent=None):
QWidget.__init__(self, parent)
@@ -248,7 +250,7 @@ sp = None
self.sp = sp
- self.emit(SIGNAL('loadBegin()'))
+ self.loadBegin.emit()
self.refreshing = StatusThread(self.repo, self.pats, self.opts)
self.connect(self.refreshing, SIGNAL('finished'), self.reloadComplete)
# re-emit error messages from this object
@@ -261,7 +263,7 @@ self.wctx = wctx
self.patchecked = patchecked.copy()
self.updateModel()
- self.emit(SIGNAL('loadComplete()'))
+ self.loadComplete.emit()
self.refreshing.wait()
self.refreshing = None
|
Loading...