Repository navigation
원형 툴바: 사용 가능한 프리셋을 종류별 탭으로 나누기 (#343) - #463
Conversation
|
@KnifeLemon 님, CI에서 실패한 올려 주신 #464을 확인하였는데 현재 수정 상태의 PR은 중지하고 그리고 10k 스타 축하드립니다!! |
|
@SeoJCalive 님, 네 그렇게 해 주시면 돼요. 축하도 감사합니다! #464는 방금 main에 머지됐어요. main을 합친 뒤 툴바 시험을 맞춰 주시고, 통과하면 Ready로 바꿔 주세요. 참고로 #464에서 도넛 구성이 몇 가지 바뀌었어요.
그래서 편집 탭과 묶음 수 기대값이 달라질 수 있어요. 설정 스키마를 바꾸지 않으신 건 좋아요. 그사이 다른 언어(예: 태국어 #445)가 먼저 들어가면 그 파일의 새 문구 4개는 머지할 때 저희가 채울게요. 그 때문에 기다리실 필요는 없어요. |
…bar palette The preset palette on the toolbar page grew long once every converter showed up in one list. Split it into kind tabs and keep the per-donut judgement so switching donuts stays instant. - Tabs: All / Image (Image, Vector) / Document (Pdf, Document, Spreadsheet, Presentation, Hwp, Text, Ebook, Data) / Video & audio (Video, Audio, Subtitle) / Edit (tools, target *) / 3D & CAD / Map (Geo) / Archive / Font, mapped from format categories in one table. Empty tabs are hidden; the row is hidden when one kind tab would only repeat All. Tabs wrap inside the 230 px column and the arrow keys reach every tab. Groups lead every tab. Switching donuts returns to All (and clears the search, as KnifeLemon#427 does), flipping keeps the tab, nothing is saved. - Search spans every tab and shows only the tabs with results. Presets this donut can't run are revealed dimmed with their reason; drag and double-click add are blocked, right-click edit still opens. PresetAvailability is unchanged. - Cache: judgements are kept per donut for the life of the page and dropped on extension save, reset, engine change and preset edit/add/delete, including saves made from the radial window (LibraryChanged); the page's own saves don't clear other donuts. - Tab names reuse format.category.* where they exist; four new keys (toolbar.tab.all/media/edit/model3d_cad) in all 13 locales. Closes KnifeLemon#343
7d8b923 to
936b5e3
Compare
|
@KnifeLemon 님, #464가 들어간 main(61fd350) 위로 옮기고 툴바 시험을 맞췄습니다.
CI가 통과해서 Ready로 바꿨습니다. |
KnifeLemon
left a comment
There was a problem hiding this comment.
@SeoJCalive 님, 말씀드린 대로 main에 맞춰 주셔서 감사해요. 지금 main(#445 태국어까지)을 합치고 th.json에 탭 이름 4개를 넣은 상태에서 툴바 시험과 언어 시험을 돌려 봤어요. 툴바·언어 관련 시험 126개가 모두 통과했어요.
확인한 것:
- 판정 캐시: 확장자 저장·초기화는 그 도넛만, 엔진 변경과 다른 창의 저장은 전부, 프리셋 편집은 그 프리셋만 다시 판정하고, 화면을 닫으면 캐시와 구독이 정리돼요.
- 검색으로 드러난 흐린 칩은 끌어넣기·더블클릭으로 추가되지 않고, 우클릭 편집만 돼요.
- 열려 있는 PR의 새 도구 프리셋(#439 클립 자르기, #428 PDF 편집, #437 인쇄 스튜디오)은 도구라서 편집 탭으로 가요.
머지할 때 저희가 이 브랜치에 넣을 것:
- th.json의
toolbar.tab.*4개 - 탭 줄
ListBox에AutomationProperties.Name(지금은 화면 낭독기가 이름 없는 목록으로 읽어요) Toolbar_tabs_and_reused_categories_exist_in_every_language의removed목록 빼기(toolbar.tab.document,toolbar.tab.other는 main에 있던 적이 없는 키예요)
다음에 손보시면 좋을 것 하나(이번 머지를 막지는 않아요): Rebuild()와 RefreshVisiblePalette()에 칩 목록을 만드는 코드(이름·형식 표시, 검색 일치)가 두 벌 있어요. 하나로 모으면 나중에 한쪽만 고쳐지는 일을 막을 수 있어요.
본문의 오디오 도넛 예시가 #464 이전 화면이라는 건 댓글로 남겨 주셔서 충분해요. 다음 릴리스에 들어가요. 감사합니다!
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The tab row is read out as "Available presets". The test no longer checks for the two tab keys that were dropped earlier. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
What does this change?
#343(#266 2단계)입니다. #343에서 답해 주신 방향대로, 원형 툴바 화면 오른쪽의 사용 가능한 프리셋 목록을 종류별 탭으로 나눴습니다. #304에서 2단계로 미루신 도넛별 판정 캐시와 검색 시 숨긴 프리셋도 함께 넣었습니다.
탭 묶음: #343에서 제안해 주신 아홉 탭입니다. PDF는 문서, 벡터는 이미지, 자막은 동영상·소리에 두었고, 데이터는 앞서 말씀드린 대로 문서에 두었습니다. 형식 범주 → 탭 대응과 탭 이름 키는
ToolbarPageViewModel.TabDefinitions표 하나에 모았습니다. 탭을 더하거나 옮길 때는 이 표만 고치면 됩니다.toolbar.tab.allformat.category.Imageformat.category.Documenttoolbar.tab.mediatoolbar.tab.edittoolbar.tab.model3d_cadformat.category.Geo(한국어 "지리 정보")format.category.Archive(한국어 "압축 파일")format.category.Font"전체" 탭: 첫 탭입니다.
빈 탭: 숨깁니다. "전체" 말고 묶음 탭이 하나뿐이면 "전체"와 내용이 같아서 탭 줄을 숨기고 "전체"를 보여 줍니다(예: 오디오 도넛은 편집 프리셋만 있어 탭 줄이 없습니다).
좁은 칸: 탭이 230px 칸을 넘으면 줄바꿈합니다. 탭 이름은 잘리지 않고, 방향키(좌우·위아래)로 모든 탭에 갈 수 있습니다. 확장자 없는 도넛(탭 9개)을 영어·한국어·스페인어·러시아어의 밝은·어두운 테마로 확인했습니다.
그룹: 모든 탭 맨 앞에 보입니다.
검색: 모든 탭에서 찾고, 결과가 있는 탭을 보여 줍니다. 이 도넛에서 숨긴 프리셋도 검색어에 걸리면 흐리게 보이고, 도넛과 같은 사유가 툴팁으로 나옵니다. 이 칩은 끌어넣기·더블클릭으로 추가할 수 없고, 우클릭 편집은 됩니다.
탭 상태: 도넛을 바꾸면 "전체"로 돌아가고, 앞·뒷면을 뒤집을 때는 지금 탭을 유지합니다. 설정에는 저장하지 않습니다. 도넛을 바꿀 때 검색어를 지우는 Fix #425, #427: Donut toolbar counts both faces, search boxes clear #434([Bug]: Donut Toolbar Search Missing clear button and search state persists on profile switch #427)의 동작과 검색창 × 버튼은 그대로 두었습니다.
새 그룹·새 프리셋: 목록에 남으면 그 항목이 보이는 탭으로 옮깁니다.
도넛별 판정 캐시: 한 번 판정한 도넛을 다시 고르면 바로 채워집니다. 툴바 화면이 열려 있는 동안만 기억하고, 확장자·초기화·엔진·프리셋이 바뀌면 지금처럼 다시 판정합니다.
판정 코드:
PresetAvailability의 판정 순서는 건드리지 않았습니다(#326과 겹침 최소화).UI 문구: 새 키 4개(
toolbar.tab.all·media·edit·model3d_cad)를 프랑스어·네팔어·번체 중국어까지 13개 언어 모두에 넣었고, 나머지 다섯 탭 이름은 기존format.category.*문구를 씁니다. 프랑스어·네팔어는 각 파일에 이미 있는 용어(CAO, थ्रीडी)에 맞추었습니다.구현 메모
ToolbarPageViewModel.cs(탭·검색·캐시),ToolbarPage.axaml·ToolbarPage.axaml.cs(탭 줄, 위아래 방향키, 추가 막기), 13개 언어 파일.PresetAvailability, 설정 스키마, 패키지는 바꾸지 않았습니다.ListBox에WrapPanel을 써서 칸을 넘으면 다음 줄로 내려갑니다. 좌우키는 ListBox 기본 동작을 쓰고, 위아래키는 윗·아랫줄에서 가장 가까운 탭으로 갑니다.LibraryChanged)은 전부, 프리셋 편집은 그 프리셋만 다시 판정합니다. 화면을 닫으면 캐시와 구독을 모두 정리합니다.ToolbarEditorTests.cs), 실제 화면을 띄우는 시험 9개(ToolbarPaletteViewTests.cs), 렌더 시험 2개(9개 탭·230px·방향키, 검색으로 드러난 흐린 칩), 13개 언어 키 시험 1개를 더했습니다. 주요 단언은 코드를 일부러 되돌리는 변이로 실패하는 것을 확인했습니다.How was it tested?
dotnet format --verify-no-changesdotnet test: Core 462개 통과. App 863개 중 852개 통과, 10개 건너뜀, 1개 실패. 실패한Engines_page_shows_versions_descriptions_and_download_speed는 main에서도 같이 실패합니다(제 Linux에 Ghostscript·LibreOffice가 설치되어 있음).Screenshots (UI changes)
(PR 작성 화면에
.omo/plans/toolbar-palette/step2/shots/의 파일을 끌어 넣으면 링크로 바뀝니다. 이미지 탭 장면은mac-01-image-donut-image-tab.png입니다.)Checklist
src/Filee.App/Assets/i18n/*.jsonfilesTHIRD-PARTY-NOTICES.md(해당 없음)