From 565ad3bd177cac4ba53990c6421d946c2d937225 Mon Sep 17 00:00:00 2001 From: RyuJongJin <266630912+RyuJongJin@users.noreply.github.com> Date: Sun, 18 Oct 2026 04:22:08 +0900 Subject: [PATCH] =?UTF-8?q?WIP=20960=20=EC=BA=A1=EC=B2=98:=20=ED=83=90?= =?UTF-8?q?=EC=83=89=EA=B8=B0=20=EB=8F=99=EC=98=81=EC=83=81=20=EC=A4=84?= =?UTF-8?q?=EC=9D=98=20"=ED=81=AC=EA=B8=B0=20=C2=B7=20=EB=82=A0=EC=A7=9C"?= =?UTF-8?q?=20=EA=B0=80=20=EB=84=93=EC=9D=80=20=EC=B0=BD=EC=97=90=EC=84=9C?= =?UTF-8?q?=EB=8F=84=20=EC=9E=98=EB=A6=AC=EB=8D=98=20=EA=B2=83=20-=20?= =?UTF-8?q?=EB=8F=99=EC=98=81=EC=83=81=20=EC=A0=95=EB=B3=B4=EC=99=80=20?= =?UTF-8?q?=ED=95=9C=20=EC=A4=84=20=EA=B8=80=EB=A1=9C=20(=EA=B2=80?= =?UTF-8?q?=ED=86=A0=20=EB=8C=80=EA=B8=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 관리자 지시 (10/18, next e8baa84 의 960 폭 캡처에서 찾음): X-plore 모양 트리의 동영상 줄이 "5KB · 2026-10-18 03:…" 로 잘렸다. 크기 · 날짜 글과 동영상 정보 (_MetaText) 가 Flexible 둘이라 폭을 반씩 나눴고, 정보가 비어 있어도 반을 차지했다. → _MetaText 가 앞글 (크기 · 날짜) 과 정보를 한 Text.rich 로 그린다 (넘치면 끝을 줄임). 동영상이 아닌 줄은 그대로. 확인: windows_xplore 캡처 (release\test\shots_trunc\windows_xplore_meta - 960 에서 "5KB · 2026-10-18 04:13" 다 보임) 4 통과, explorer_test 56 통과, analyze 문제 없음. Co-Authored-By: Claude Opus 5.5 --- lib/ui/explorer_page.dart | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/ui/explorer_page.dart b/lib/ui/explorer_page.dart index 637ddad..7504019 100644 --- a/lib/ui/explorer_page.dart +++ b/lib/ui/explorer_page.dart @@ -5120,17 +5120,11 @@ class _ExplorerPageState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Text(name, maxLines: 1, overflow: TextOverflow.ellipsis, style: nameStyle), - Row(children: [ - // 좁은 화면 · 깊은 폴더에서 넘치지 않게 - Flexible( - child: Text('${formatSize(e.size)} · ${_date(e.modified)}', - style: dim, maxLines: 1, overflow: TextOverflow.ellipsis), - ), - if (isVideoFile(e.path)) ...[ - const SizedBox(width: 8), - Flexible(child: _MetaText(c: c, path: e.path)), - ], - ]), + // 좁은 화면 · 깊은 폴더에서 넘치지 않게. 960 캡처 (10/18): 동영상 정보와 한 줄 글로 (둘로 나누면 정보가 비어도 + // 폭의 반을 차지해 넓은 창에서도 날짜가 잘렸다) + isVideoFile(e.path) + ? _MetaText(c: c, path: e.path, lead: '${formatSize(e.size)} · ${_date(e.modified)}', leadStyle: dim) + : Text('${formatSize(e.size)} · ${_date(e.modified)}', style: dim, maxLines: 1, overflow: TextOverflow.ellipsis), ], ) : Column( @@ -5546,13 +5540,22 @@ class _Meta { class _MetaText extends StatelessWidget { final AppController c; final String path; - const _MetaText({required this.c, required this.path}); + + /// 앞에 붙일 글 (크기 · 날짜) - 동영상 정보와 한 줄로 이어 그린다 + final String lead; + final TextStyle? leadStyle; + const _MetaText({required this.c, required this.path, this.lead = '', this.leadStyle}); @override Widget build(BuildContext context) => FutureBuilder( future: _Meta.of(c, path), - builder: (_, s) => Text(s.data ?? '', - maxLines: 1, overflow: TextOverflow.ellipsis, style: const TextStyle(fontSize: 11, color: JjColors.accent)), + builder: (_, s) => Text.rich( + TextSpan(children: [ + if (lead.isNotEmpty) TextSpan(text: lead, style: leadStyle), + if ((s.data ?? '').isNotEmpty) TextSpan(text: '${lead.isEmpty ? '' : ' '}${s.data}', style: const TextStyle(fontSize: 11, color: JjColors.accent)), + ]), + maxLines: 1, + overflow: TextOverflow.ellipsis), ); }