Changeset 6afe5bf217f4…
Parent 581dccdce09f…
by
Changes to 2 files · Browse files at 6afe5bf217f4 Showing diff from parent 581dccdce09f Diff from another changeset...
@@ -10,6 +10,7 @@ import tempfile
from PyQt4 import QtCore, QtGui
+from PyQt4 import Qsci
from mercurial import extensions
from tortoisehg.util import hglib
@@ -17,6 +18,8 @@from tortoisehg.hgqt import icon as geticon
from hgext.color import _styles
+qsci = Qsci.QsciScintilla
+
tmproot = None
def gettempdir():
global tmproot
@@ -202,3 +205,40 @@
def is_collapsed(self):
return not self.is_expanded()
+
+def fileEditor(filename):
+ 'Open a simple modal file editing dialog'
+ dialog = QtGui.QDialog()
+ vbox = QtGui.QVBoxLayout()
+ dialog.setLayout(vbox)
+ editor = qsci()
+ editor.setBraceMatching(qsci.SloppyBraceMatch)
+ vbox.addWidget(editor)
+ BB = QtGui.QDialogButtonBox
+ bb = QtGui.QDialogButtonBox(BB.Save|BB.Cancel)
+ dialog.connect(bb, QtCore.SIGNAL('accepted()'),
+ dialog, QtCore.SLOT('accept()'))
+ dialog.connect(bb, QtCore.SIGNAL('rejected()'),
+ dialog, QtCore.SLOT('reject()'))
+ vbox.addWidget(bb)
+ lexer = Qsci.QsciLexerProperties()
+ editor.setLexer(lexer)
+ s = QtCore.QSettings()
+ ret = QtGui.QDialog.Rejected
+ try:
+ contents = open(filename, 'rb').read()
+ dialog.setWindowTitle(filename)
+ geomname = 'editor-geom'
+ editor.setText(contents)
+ editor.setModified(False)
+ dialog.restoreGeometry(s.value(geomname).toByteArray())
+ ret = dialog.exec_()
+ if ret == QtGui.QDialog.Accepted:
+ f = util.atomictempfile(filename, 'w', createmode=None)
+ f.write(editor.text())
+ f.rename()
+ s.setValue(geomname, dialog.saveGeometry())
+ except EnvironmentError, e:
+ qtlib.WarningMsgBox(_('Unable to read/write config file'),
+ hglib.tounicode(e), parent=dialog)
+ return ret
|
@@ -16,12 +16,9 @@ from tortoisehg.util import hglib, settings, paths
from tortoisehg.hgqt import qtlib
-from PyQt4 import Qsci
from PyQt4.QtCore import *
from PyQt4.QtGui import *
-qsci = Qsci.QsciScintilla
-
# Technical Debt
# stacked widget or pages need to be scrollable
# add extensions page after THG 1.1 is released
@@ -535,37 +532,8 @@ self.applyChanges()
elif ret == 2:
return
-
- dialog = QDialog()
- vbox = QVBoxLayout()
- dialog.setLayout(vbox)
- editor = qsci()
- editor.setBraceMatching(qsci.SloppyBraceMatch)
- vbox.addWidget(editor)
- BB = QDialogButtonBox
- bb = QDialogButtonBox(BB.Save|BB.Cancel)
- self.connect(bb, SIGNAL("accepted()"), dialog, SLOT('accept()'))
- self.connect(bb, SIGNAL("rejected()"), dialog, SLOT('reject()'))
- vbox.addWidget(bb)
- lexer = Qsci.QsciLexerProperties()
- editor.setLexer(lexer)
- s = self.settings
- try:
- contents = open(self.fn, 'rb').read()
- dialog.setWindowTitle(self.fn)
- geomname = 'settings/editor-geom'
- editor.setText(contents)
- editor.setModified(False)
- dialog.restoreGeometry(s.value(geomname).toByteArray())
- if dialog.exec_() == QDialog.Accepted:
- f = util.atomictempfile(self.fn, 'w', createmode=None)
- f.write(editor.text())
- f.rename()
- self.refresh()
- s.setValue(geomname, dialog.saveGeometry())
- except EnvironmentError, e:
- qtlib.WarningMsgBox(_('Unable to read/write config file'),
- hglib.tounicode(e), parent=self)
+ if qtlib.fileEditor(self.fn) == QDialog.Accepted:
+ self.refresh()
def refresh(self, *args):
# determine target config file
|
Loading...