249 보충: MKV 화면 작업 기록 위에도 "DNS 서버 (…) 에 닿지 않음 · [시스템 DNS 로 바꾸기]"

a4 의 918 기기 확인 (노트 10+): 작업 현황 (MKV 화면 아래 작업 기록) 에는 줄이 없었다 - WorkPanel 은 브라우저의
오른쪽 작업 현황이고, MKV 화면 아래는 작업 기록 (_LogPanel) 이었다. 작업 기록을 열거나 숨겨도 그 위에 보인다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix_mkv
RyuJongJin 2026-10-12 05:49:18 +09:00
parent cdfcf360c4
commit f0fad6c0e4
2 changed files with 27 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import 'package:path/path.dart' as p;
import '../app/settings.dart' show MoveTarget; import '../app/settings.dart' show MoveTarget;
import 'folder_picker.dart'; import 'folder_picker.dart';
import 'network_settings.dart' show DnsFailureLine;
import 'player_page.dart'; import 'player_page.dart';
import 'subtitle_editor_page.dart'; import 'subtitle_editor_page.dart';
import 'subtitle_search_dialog.dart'; import 'subtitle_search_dialog.dart';
@ -100,6 +101,8 @@ class HomePage extends StatelessWidget {
), ),
), ),
const Divider(height: 1), const Divider(height: 1),
// 249: DNS 서버에 닿지 않는 동안 작업 기록 위에 (아래 안내를 놓쳐도 MKV 화면에서 보고 바꿀 수 있게)
Padding(padding: const EdgeInsets.symmetric(horizontal: 12), child: DnsFailureLine(c: c)),
if (c.settings.showLog) if (c.settings.showLog)
SizedBox( SizedBox(
// 화면이 낮은 기기 (휴대폰 가로) 에서 목록 · 자세히 보기를 가리지 않도록 화면 높이에 맞춘다 // 화면이 낮은 기기 (휴대폰 가로) 에서 목록 · 자세히 보기를 가리지 않도록 화면 높이에 맞춘다

View File

@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:jj_mkvmaker/app/app_controller.dart'; import 'package:jj_mkvmaker/app/app_controller.dart';
import 'package:jj_mkvmaker/app/components.dart'; import 'package:jj_mkvmaker/app/components.dart';
import 'package:jj_mkvmaker/app/net_guard.dart';
import 'package:jj_mkvmaker/app/settings.dart'; import 'package:jj_mkvmaker/app/settings.dart';
import 'package:jj_mkvmaker/platform/windows/desktop_storage_service.dart'; import 'package:jj_mkvmaker/platform/windows/desktop_storage_service.dart';
import 'package:jj_mkvmaker/platform/windows/process_media_tool.dart'; import 'package:jj_mkvmaker/platform/windows/process_media_tool.dart';
@ -51,6 +52,29 @@ void main() {
expect(AppComponent.reorder(['future_screen', 'mkv'], ['mkv', 'explorer']), ['future_screen', 'mkv', 'explorer']); expect(AppComponent.reorder(['future_screen', 'mkv'], ['mkv', 'explorer']), ['future_screen', 'mkv', 'explorer']);
}); });
testWidgets('249: DNS 서버에 닿지 않는 동안 MKV 화면의 작업 기록 위에 상태 줄 (기록을 숨겨도)', (tester) async {
tester.view.physicalSize = const Size(1500, 900);
tester.view.devicePixelRatio = 1;
addTearDown(tester.view.reset);
final g = NetGuard.instance;
addTearDown(() => g.failure.value = null);
final c = _plain();
await tester.pumpWidget(MaterialApp(
builder: (context, child) => AppScope(controller: c, child: child!),
home: HomePage(c: c),
));
expect(find.textContaining('에 닿지 않음'), findsNothing);
g.failure.value = DnsFailure('192.0.2.1', 'x', DateTime(2026, 10, 12, 1, 35));
await tester.pump();
expect(find.text('DNS 서버 (192.0.2.1) 에 닿지 않음 (01:35부터)'), findsOneWidget);
await c.updateSettings((s) => s.showLog = !s.showLog);
await tester.pump();
expect(find.text('DNS 서버 (192.0.2.1) 에 닿지 않음 (01:35부터)'), findsOneWidget);
await tester.tap(find.text('시스템 DNS 로 바꾸기'));
await tester.pump();
expect(c.settings.dnsMode, 'system');
});
testWidgets('위쪽 이동 버튼: 설치한 화면만 · 설정을 바꾸면 바로 · 하나뿐이면 그것만', (tester) async { testWidgets('위쪽 이동 버튼: 설치한 화면만 · 설정을 바꾸면 바로 · 하나뿐이면 그것만', (tester) async {
tester.view.physicalSize = const Size(1500, 900); tester.view.physicalSize = const Size(1500, 900);
tester.view.devicePixelRatio = 1; tester.view.devicePixelRatio = 1;