Skip to content

Commit 7e480ba

Browse files
Lukas Geigerclaude
andcommitted
fix(output_panel): append_output() erbt nicht mehr Farbe des Vorgaengertexts (B-003)
insertPlainText() uebernahm das QTextCharFormat des zuletzt eingefuegten Textes (grau nach append_info, rot nach append_error). append_output() setzt nun explizit QTextCharFormat mit #cccccc, damit stdout immer in Standardfarbe erscheint. 2 neue Tests in TestOutputPanelAppendOutputFormat. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9e34662 commit 7e480ba

3 files changed

Lines changed: 34 additions & 3 deletions

File tree

BUGS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ _(Keine offenen Bugs)_
2323
**Datei:** `src/gui/dialogs/new_project_dialog.py``_reset_name_style()`
2424
**Fix:** `name_edit.textChanged` ist nun mit `_reset_name_style()` verbunden, das `setStyleSheet("")` aufruft und so den roten Rahmen beim nächsten Tastendruck löscht.
2525

26+
### B-003: OutputPanel.append_output() erbt Textfarbe vom vorherigen Text
27+
**Status:** Behoben (2026-06-05)
28+
**Datei:** `src/gui/panels/output_panel.py``append_output()`
29+
**Fix:** `append_output()` verwendet nun explizit `QTextCharFormat` mit Farbe `#cccccc`, sodass stdout-Ausgabe immer in der Standardtextfarbe erscheint und nicht die Farbe des vorherigen Texts (grau von info, rot von error) erbt.
30+
2631
---
2732

2833
_Zuletzt aktualisiert: 2026-06-05 (Bug-Sweep Session)_

src/gui/panels/output_panel.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,12 @@ def _on_error(self, error):
184184

185185
def append_output(self, text: str):
186186
"""Fügt normale Ausgabe hinzu"""
187-
self.output.moveCursor(QTextCursor.MoveOperation.End)
188-
self.output.insertPlainText(text)
189-
187+
cursor = self.output.textCursor()
188+
cursor.movePosition(QTextCursor.MoveOperation.End)
189+
fmt = QTextCharFormat()
190+
fmt.setForeground(QColor("#cccccc"))
191+
cursor.insertText(text, fmt)
192+
190193
if self._auto_scroll:
191194
self.output.verticalScrollBar().setValue(
192195
self.output.verticalScrollBar().maximum()

tests/test_core.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,6 +1298,29 @@ def test_reset_name_style_clears_stylesheet(self):
12981298
"_reset_name_style() muss setStyleSheet('') aufrufen")
12991299

13001300

1301+
class TestOutputPanelAppendOutputFormat(unittest.TestCase):
1302+
"""Bug B-003: append_output() muss explizites QTextCharFormat mit Standardfarbe setzen."""
1303+
1304+
def test_append_output_uses_explicit_format(self):
1305+
"""append_output() muss QTextCharFormat verwenden — ohne Fix erbt die Ausgabe
1306+
die Farbe des vorherigen Texts (grau nach info, rot nach error)."""
1307+
import inspect
1308+
from gui.panels.output_panel import OutputPanel
1309+
source = inspect.getsource(OutputPanel.append_output)
1310+
self.assertIn('QTextCharFormat', source,
1311+
"append_output() muss QTextCharFormat verwenden")
1312+
self.assertIn('insertText', source,
1313+
"append_output() muss cursor.insertText(text, fmt) verwenden")
1314+
1315+
def test_append_output_sets_default_color(self):
1316+
"""append_output() muss die Standardtextfarbe #cccccc explizit setzen."""
1317+
import inspect
1318+
from gui.panels.output_panel import OutputPanel
1319+
source = inspect.getsource(OutputPanel.append_output)
1320+
self.assertIn('#cccccc', source,
1321+
"append_output() muss die Standardtextfarbe #cccccc setzen")
1322+
1323+
13011324
if __name__ == "__main__":
13021325
# Verbose Output
13031326
unittest.main(verbosity=2)

0 commit comments

Comments
 (0)