/tortoisehg/hgqt/qdelete.py

https://bitbucket.org/tortoisehg/hgtk/ · Python · 61 lines · 43 code · 12 blank · 6 comment · 1 complexity · 1a311e3c3259fb0c645eb9ba7c2e257e MD5 · raw file

  1. # qdelete.py - QDelete dialog for TortoiseHg
  2. #
  3. # Copyright 2010 Steve Borho <steve@borho.org>
  4. #
  5. # This software may be used and distributed according to the terms of the
  6. # GNU General Public License version 2, incorporated herein by reference.
  7. import os
  8. from PyQt4.QtCore import *
  9. from PyQt4.QtGui import *
  10. from tortoisehg.util import hglib
  11. from tortoisehg.hgqt.i18n import _
  12. from tortoisehg.hgqt import cmdui
  13. class QDeleteDialog(QDialog):
  14. output = pyqtSignal(QString, QString)
  15. makeLogVisible = pyqtSignal(bool)
  16. def __init__(self, repo, patches, parent):
  17. super(QDeleteDialog, self).__init__(parent)
  18. self.setWindowTitle(_('Patch remove - %s') % repo.displayname)
  19. f = self.windowFlags()
  20. self.setWindowFlags(f & ~Qt.WindowContextHelpButtonHint)
  21. self.repo = repo
  22. self.patches = patches
  23. self.setLayout(QVBoxLayout())
  24. lbl = QLabel(_('<b>Remove patches from queue?<ul><li>%s</ul></b>') %
  25. '<li>'.join(patches))
  26. self.layout().addWidget(lbl)
  27. self.keepchk = QCheckBox(_('Keep patch files'))
  28. self.keepchk.setChecked(True)
  29. self.layout().addWidget(self.keepchk)
  30. self.cmd = cmdui.Runner()
  31. self.cmd.output.connect(self.output)
  32. self.cmd.makeLogVisible.connect(self.makeLogVisible)
  33. BB = QDialogButtonBox
  34. bbox = QDialogButtonBox(BB.Ok|BB.Cancel)
  35. bbox.accepted.connect(self.accept)
  36. bbox.rejected.connect(self.reject)
  37. self.layout().addWidget(bbox)
  38. self.bbox = bbox
  39. def accept(self):
  40. def finished(ret):
  41. self.repo.decrementBusyCount()
  42. self.reject()
  43. cmdline = ['qdelete', '--repository', self.repo.root]
  44. if self.keepchk.isChecked():
  45. cmdline += ['--keep']
  46. cmdline += self.patches
  47. self.repo.incrementBusyCount()
  48. self.cmd.commandFinished.connect(finished)
  49. self.cmd.run(cmdline)