6 """ |
6 """ |
7 Module implementing a dialog to show the output of the git status command |
7 Module implementing a dialog to show the output of the git status command |
8 process. |
8 process. |
9 """ |
9 """ |
10 |
10 |
11 import contextlib |
|
12 import os |
11 import os |
13 import tempfile |
12 import tempfile |
14 |
13 |
15 from PyQt6.QtCore import QProcess, QSize, Qt, QTimer, pyqtSlot |
14 from PyQt6.QtCore import QProcess, QSize, Qt, QTimer, pyqtSlot |
16 from PyQt6.QtGui import QTextCursor |
15 from PyQt6.QtGui import QTextCursor |
1116 |
1115 |
1117 def __generateDiffs(self): |
1116 def __generateDiffs(self): |
1118 """ |
1117 """ |
1119 Private slot to generate diff outputs for the selected item. |
1118 Private slot to generate diff outputs for the selected item. |
1120 """ |
1119 """ |
|
1120 colors = { |
|
1121 "text": Preferences.getDiffColour("TextColor"), |
|
1122 "added": Preferences.getDiffColour("AddedColor"), |
|
1123 "removed": Preferences.getDiffColour("RemovedColor"), |
|
1124 "replaced": Preferences.getDiffColour("ReplacedColor"), |
|
1125 "context": Preferences.getDiffColour("ContextColor"), |
|
1126 "header": Preferences.getDiffColour("HeaderColor"), |
|
1127 "whitespace": Preferences.getDiffColour("BadWhitespaceColor"), |
|
1128 } |
|
1129 self.lDiffHighlighter.regenerateRules( |
|
1130 colors, Preferences.getEditorOtherFonts("MonospacedFont") |
|
1131 ) |
|
1132 self.rDiffHighlighter.regenerateRules( |
|
1133 colors, Preferences.getEditorOtherFonts("MonospacedFont") |
|
1134 ) |
|
1135 |
1121 self.lDiffEdit.clear() |
1136 self.lDiffEdit.clear() |
1122 self.rDiffEdit.clear() |
1137 self.rDiffEdit.clear() |
1123 with contextlib.suppress(AttributeError): |
|
1124 self.lDiffHighlighter.regenerateRules() |
|
1125 self.rDiffHighlighter.regenerateRules() |
|
1126 |
1138 |
1127 selectedItems = self.statusList.selectedItems() |
1139 selectedItems = self.statusList.selectedItems() |
1128 if len(selectedItems) == 1: |
1140 if len(selectedItems) == 1: |
1129 fn = os.path.join(self.dname, selectedItems[0].text(self.__pathColumn)) |
1141 fn = os.path.join(self.dname, selectedItems[0].text(self.__pathColumn)) |
1130 self.__diffGenerator.start(fn, diffMode="work2stage2repo") |
1142 self.__diffGenerator.start(fn, diffMode="work2stage2repo") |