eric7/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py

branch
eric7
changeset 8356
68ec9c3d4de5
parent 8322
b422b4e77d19
child 8358
144a6b854f70
equal deleted inserted replaced
8355:8a7677a63c8d 8356:68ec9c3d4de5
12 12
13 from PyQt6.QtCore import pyqtSlot, QFileInfo, Qt 13 from PyQt6.QtCore import pyqtSlot, QFileInfo, Qt
14 from PyQt6.QtGui import QTextCursor 14 from PyQt6.QtGui import QTextCursor
15 from PyQt6.QtWidgets import QWidget, QDialogButtonBox 15 from PyQt6.QtWidgets import QWidget, QDialogButtonBox
16 16
17 from E5Gui import E5MessageBox, E5FileDialog 17 from E5Gui import EricMessageBox, EricFileDialog
18 from E5Gui.E5Application import e5App 18 from E5Gui.EricApplication import ericApp
19 19
20 from .Ui_GitDiffDialog import Ui_GitDiffDialog 20 from .Ui_GitDiffDialog import Ui_GitDiffDialog
21 21
22 from .GitDiffHighlighter import GitDiffHighlighter 22 from .GitDiffHighlighter import GitDiffHighlighter
23 from .GitDiffGenerator import GitDiffGenerator 23 from .GitDiffGenerator import GitDiffGenerator
51 self.buttonBox.button( 51 self.buttonBox.button(
52 QDialogButtonBox.StandardButton.Close).setDefault(True) 52 QDialogButtonBox.StandardButton.Close).setDefault(True)
53 53
54 try: 54 try:
55 # insert the search widget if it is available 55 # insert the search widget if it is available
56 from E5Gui.E5TextEditSearchWidget import E5TextEditSearchWidget 56 from E5Gui.EricTextEditSearchWidget import EricTextEditSearchWidget
57 self.searchWidget = E5TextEditSearchWidget(self.contentsGroup) 57 self.searchWidget = EricTextEditSearchWidget(self.contentsGroup)
58 self.searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus) 58 self.searchWidget.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
59 self.searchWidget.setObjectName("searchWidget") 59 self.searchWidget.setObjectName("searchWidget")
60 self.contentsGroup.layout().insertWidget(1, self.searchWidget) 60 self.contentsGroup.layout().insertWidget(1, self.searchWidget)
61 self.searchWidget.attachTextEdit(self.contents) 61 self.searchWidget.attachTextEdit(self.contents)
62 62
63 self.searchWidget2 = E5TextEditSearchWidget(self.contentsGroup) 63 self.searchWidget2 = EricTextEditSearchWidget(self.contentsGroup)
64 self.searchWidget2.setFocusPolicy(Qt.FocusPolicy.WheelFocus) 64 self.searchWidget2.setFocusPolicy(Qt.FocusPolicy.WheelFocus)
65 self.searchWidget2.setObjectName("searchWidget2") 65 self.searchWidget2.setObjectName("searchWidget2")
66 self.contentsGroup.layout().addWidget(self.searchWidget2) 66 self.contentsGroup.layout().addWidget(self.searchWidget2)
67 self.searchWidget2.attachTextEdit(self.contents2) 67 self.searchWidget2.attachTextEdit(self.contents2)
68 68
168 self.tr("Difference ({0})").format(msg)) 168 self.tr("Difference ({0})").format(msg))
169 169
170 procStarted = self.__diffGenerator.start( 170 procStarted = self.__diffGenerator.start(
171 fn, versions=versions, diffMode=diffMode, stashName=stashName) 171 fn, versions=versions, diffMode=diffMode, stashName=stashName)
172 if not procStarted: 172 if not procStarted:
173 E5MessageBox.critical( 173 EricMessageBox.critical(
174 self, 174 self,
175 self.tr('Process Generation Error'), 175 self.tr('Process Generation Error'),
176 self.tr( 176 self.tr(
177 'The process {0} could not be started. ' 177 'The process {0} could not be started. '
178 'Ensure, that it is in the search path.' 178 'Ensure, that it is in the search path.'
316 else: 316 else:
317 fname = dname 317 fname = dname
318 else: 318 else:
319 fname = self.vcs.splitPath(self.__filename)[0] 319 fname = self.vcs.splitPath(self.__filename)[0]
320 320
321 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 321 fname, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
322 self, 322 self,
323 self.tr("Save Diff"), 323 self.tr("Save Diff"),
324 fname, 324 fname,
325 self.tr("Patch Files (*.diff)"), 325 self.tr("Patch Files (*.diff)"),
326 None, 326 None,
327 E5FileDialog.DontConfirmOverwrite) 327 EricFileDialog.DontConfirmOverwrite)
328 328
329 if not fname: 329 if not fname:
330 return # user aborted 330 return # user aborted
331 331
332 ext = QFileInfo(fname).suffix() 332 ext = QFileInfo(fname).suffix()
333 if not ext: 333 if not ext:
334 ex = selectedFilter.split("(*")[1].split(")")[0] 334 ex = selectedFilter.split("(*")[1].split(")")[0]
335 if ex: 335 if ex:
336 fname += ex 336 fname += ex
337 if QFileInfo(fname).exists(): 337 if QFileInfo(fname).exists():
338 res = E5MessageBox.yesNo( 338 res = EricMessageBox.yesNo(
339 self, 339 self,
340 self.tr("Save Diff"), 340 self.tr("Save Diff"),
341 self.tr("<p>The patch file <b>{0}</b> already exists." 341 self.tr("<p>The patch file <b>{0}</b> already exists."
342 " Overwrite it?</p>").format(fname), 342 " Overwrite it?</p>").format(fname),
343 icon=E5MessageBox.Warning) 343 icon=EricMessageBox.Warning)
344 if not res: 344 if not res:
345 return 345 return
346 fname = Utilities.toNativeSeparators(fname) 346 fname = Utilities.toNativeSeparators(fname)
347 347
348 eol = e5App().getObject("Project").getEolString() 348 eol = ericApp().getObject("Project").getEolString()
349 try: 349 try:
350 with open(fname, "w", encoding="utf-8", newline="") as f: 350 with open(fname, "w", encoding="utf-8", newline="") as f:
351 f.write(eol.join(self.contents2.toPlainText().splitlines())) 351 f.write(eol.join(self.contents2.toPlainText().splitlines()))
352 f.write(eol) 352 f.write(eol)
353 except OSError as why: 353 except OSError as why:
354 E5MessageBox.critical( 354 EricMessageBox.critical(
355 self, self.tr('Save Diff'), 355 self, self.tr('Save Diff'),
356 self.tr( 356 self.tr(
357 '<p>The patch file <b>{0}</b> could not be saved.' 357 '<p>The patch file <b>{0}</b> could not be saved.'
358 '<br>Reason: {1}</p>') 358 '<br>Reason: {1}</p>')
359 .format(fname, str(why))) 359 .format(fname, str(why)))

eric ide

mercurial