Close the remaining gaps on Project and Cowork against the wireframes
Re-read both drawings element by element rather than by eye. Five things were
still wrong.
Cowork headed itself "Cowork" — the screen's own name, which the rail already
shows — where the drawing puts the THREAD's title. The title now follows the
conversation, falling back to the screen name for a chat that has none yet;
ChatPanel notifies on load, on reset and when a title is first derived from the
opening turn.
Its files panel read "Tệp đầu ra"; every section heading in the drawings is
caps, so it matches the rail and Monitoring now.
Project kept its three-line explanation above the panes on every visit. The
drawing heads a populated screen with the title alone and gives the text to the
EMPTY state instead, which is where it is actually needed — so it shows only
when there is no project yet.
The workspace path sat as grey caption text where the drawing shows a field. A
read-only line edit looks like one and lets the path be selected and copied.
And Lưu project sat directly under the folder row; the drawing floats it at the
foot of the panel, so a stretch went in above it.
Checked against the control inventory, not just the picture: "Nén" and "Thư mục
Local…" are marked giữ nguyên tại chỗ, so they stay in the status strip even
though the drawing's status line is text only.
New check_cowork_screen; check_project_screen gains the three points. Both
mutation-tested — pinning the title back to tr("cowork.title") and making the
hint unconditional each fail.
23/23 checkers pass. The Qt teardown segfault is still around: check_no_hscroll
took it 1 run in 3, after printing its verdict.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
300c10711e
commit
7d9a4e2378
+14
-1
@@ -81,8 +81,21 @@ class CoworkTab(ChatPanel):
|
||||
# succeeds (see _cleanup_turn) — never intermediate files or a folder name.
|
||||
on_language_changed(self._retranslate)
|
||||
|
||||
def refresh_title(self) -> None:
|
||||
"""Head the screen with the thread you are in, as the drawing does.
|
||||
|
||||
It said "Cowork" on every conversation — the screen's own name, which
|
||||
the rail already shows. The thread's title is the thing that changes and
|
||||
the thing that tells you where you are; a thread with no title yet (a
|
||||
new chat, before its first turn) falls back to the screen name.
|
||||
"""
|
||||
lbl = getattr(self, "_title_lbl", None)
|
||||
if lbl is None:
|
||||
return # ChatPanel.__init__ sets self.title before we exist
|
||||
lbl.setText(getattr(self, "title", "") or tr("cowork.title"))
|
||||
|
||||
def _retranslate(self) -> None:
|
||||
self._title_lbl.setText(tr("cowork.title"))
|
||||
self.refresh_title()
|
||||
self.skills_btn.setText(tr("cowork.skills_btn"))
|
||||
self.skills_btn.setToolTip(tr("cowork.skills_tooltip"))
|
||||
self._new_btn.setText(tr("cowork.new_chat"))
|
||||
|
||||
Reference in New Issue
Block a user