/tortoisehg/hgqt/license.py

https://bitbucket.org/tortoisehg/hgtk/ · Python · 74 lines · 46 code · 15 blank · 13 comment · 2 complexity · 8c3c8784e4053c7b6a7f071dcbeef649 MD5 · raw file

  1. # license.py - license dialog for TortoiseHg
  2. #
  3. # Copyright 2007 TK Soh <teekaysoh@gmail.com>
  4. # Copyright 2007 Steve Borho <steve@borho.org>
  5. # Copyright 2010 Yuki KODAMA <endflow.net@gmail.com>
  6. # Copyright 2010 Johan Samyn <johan.samyn@gmail.com>
  7. #
  8. # This software may be used and distributed according to the terms of the
  9. # GNU General Public License version 2, incorporated herein by reference.
  10. """
  11. TortoiseHg License dialog - PyQt4 version
  12. """
  13. from PyQt4.QtCore import *
  14. from PyQt4.QtGui import *
  15. from tortoisehg.hgqt.i18n import _
  16. from tortoisehg.hgqt import qtlib
  17. from tortoisehg.util import paths
  18. class LicenseDialog(QDialog):
  19. """Dialog for showing the TortoiseHg license"""
  20. def __init__(self, parent=None):
  21. super(LicenseDialog, self).__init__(parent)
  22. self.setWindowIcon(qtlib.geticon('thg_logo'))
  23. self.setWindowTitle(_('License'))
  24. self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
  25. self.resize(700, 400)
  26. self.lic_txt = QPlainTextEdit()
  27. self.lic_txt.setFont(QFont('Monospace'))
  28. self.lic_txt.setTextInteractionFlags(
  29. Qt.TextSelectableByKeyboard|Qt.TextSelectableByMouse)
  30. try:
  31. lic = open(paths.get_license_path(), 'rb').read()
  32. self.lic_txt.setPlainText(lic)
  33. except (IOError):
  34. pass
  35. self.hspacer = QSpacerItem(40, 20,
  36. QSizePolicy.Expanding, QSizePolicy.Minimum)
  37. self.close_btn = QPushButton(_('&Close'))
  38. self.close_btn.clicked.connect(self.close)
  39. self.hbox = QHBoxLayout()
  40. self.hbox.addItem(self.hspacer)
  41. self.hbox.addWidget(self.close_btn)
  42. self.vbox = QVBoxLayout()
  43. self.vbox.setSpacing(6)
  44. self.vbox.addWidget(self.lic_txt)
  45. self.vbox.addLayout(self.hbox)
  46. self.setLayout(self.vbox)
  47. self._readsettings()
  48. self.setModal(True)
  49. def closeEvent(self, event):
  50. self._writesettings()
  51. super(LicenseDialog, self).closeEvent(event)
  52. def _readsettings(self):
  53. s = QSettings()
  54. self.restoreGeometry(s.value('license/geom').toByteArray())
  55. def _writesettings(self):
  56. s = QSettings()
  57. s.setValue('license/geom', self.saveGeometry())
  58. def run(ui, *args, **opts):
  59. return LicenseDialog()