모델이 티어에 따라 2~17GB 를 차지하는데 %APPDATA% 에 박혀 있어서 C 드라이브가 좁은 사람은 손쓸 방법이 없었다. 처음 켤 때 한 번 묻고, 그 선택을 기억하고, 설정에서 바꿀 수 있게 한다. 닭과 달걀 문제가 하나 있다 — "어디에 둘지" 는 사용자가 정하는데 그 선택 자체는 고정된 곳에 적어둬야 다음 실행에 찾을 수 있다. 그래서 OS 표준 폴더에는 위치를 가리키는 쪽지(location.json) 한 장만 두고, 내용물은 전부 고른 폴더에 둔다. - storage.py 신설: 쪽지 읽기/쓰기, 경로 검증, 여유 공간, 데이터 이동 - config.py 의 CONFIG_PATH 를 config_path() 로 바꾼다. import 시점 상수라 위치를 바꿔도 옛 경로를 계속 가리켰다 - 위치가 정해지기 전에는 파일 로그를 열지 않는다. 열면 고르지도 않은 기본 폴더가 만들어지고 거기에 로그가 남는다 - 이전 버전 사용자에게는 묻지 않는다. 기본 위치에 쓰던 흔적이 있으면 그대로 쓴다 — 같은 자리를 다시 고르는 헛수고를 시킬 이유가 없다 - 고른 디스크가 빠져도 죽지 않고 기본 위치로 물러난다 - 위치를 바꿀 때 받아둔 모델을 옮길지 물어본다. 수 GB 라 창이 얼어붙지 않도록 별도 스레드에서 옮긴다 - windows_smoke 에 이 화면 렌더링 점검을 추가하고, 스크린샷을 호스트로 회수한다. 경로 표기와 디스크 조회는 OS 마다 다르게 도는 부분이다
This commit is contained in:
@@ -159,6 +159,39 @@ def run_source_checks() -> None:
|
||||
win.close()
|
||||
return "스크린샷 2장 저장 (artifacts/)"
|
||||
|
||||
@check("저장 위치 선택 화면")
|
||||
def _data_location():
|
||||
"""첫 실행 때 뜨는 위치 선택 화면이 실제 Windows 에서 제대로 그려지는지.
|
||||
|
||||
경로 표기(`C:\\...`)와 디스크 여유 공간 조회는 OS 마다 다르게 도는
|
||||
부분이라 리눅스에서 통과해도 여기서 깨질 수 있다.
|
||||
"""
|
||||
from livesub.storage import data_dir, default_data_dir, free_space, human_size
|
||||
from livesub.ui.data_location import DataLocationDialog
|
||||
from livesub.ui.theme import stylesheet
|
||||
|
||||
app = _qt_app()
|
||||
ARTIFACTS.mkdir(exist_ok=True)
|
||||
shots = 0
|
||||
for name, start, first in (
|
||||
("windows-first-run.png", default_data_dir(), True),
|
||||
("windows-change-location.png", data_dir(), False),
|
||||
):
|
||||
dialog = DataLocationDialog(start, first_run=first)
|
||||
try:
|
||||
dialog.setStyleSheet(stylesheet("dark"))
|
||||
dialog.resize(560, dialog.sizeHint().height())
|
||||
dialog.show()
|
||||
app.processEvents()
|
||||
if not dialog.ok_button.isEnabled():
|
||||
raise RuntimeError(f"{start} 를 못 쓴다고 판정됨: {dialog.status.text()}")
|
||||
dialog.grab().save(str(ARTIFACTS / name))
|
||||
shots += 1
|
||||
finally:
|
||||
dialog.close()
|
||||
dialog.deleteLater()
|
||||
return f"{default_data_dir()} · 여유 {human_size(free_space(default_data_dir()))} · 스크린샷 {shots}장"
|
||||
|
||||
|
||||
# --- 전 파이프라인 점검 -----------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user