Files
FlClash/lib/views/config/advanced.dart
T
chen08209 491fae10f5 feat(views)!: set DNS, NTP, sniffer and TUN key by key
BREAKING CHANGE: DNS and NTP override toggles are removed; picked keys apply to every profile
Changelog: Per-key DNS, NTP, sniffer and TUN settings
2026-10-12 10:34:14 +08:00

54 lines
1.6 KiB
Dart

import 'package:fl_clash/common/common.dart';
import 'package:fl_clash/icons/icons.dart';
import 'package:fl_clash/views/config/dns.dart';
import 'package:fl_clash/views/config/network.dart';
import 'package:fl_clash/views/config/scripts.dart';
import 'package:fl_clash/widgets/list.dart';
import 'package:fl_clash/widgets/scaffold.dart';
import 'package:material_ui/material_ui.dart';
import 'rules.dart';
class AdvancedConfigView extends StatelessWidget {
const AdvancedConfigView({super.key});
@override
Widget build(BuildContext context) {
final appLocalizations = context.appLocalizations;
final items = [
ListItem.open(
title: Text(appLocalizations.network),
leading: const GlyphIcon(AppGlyphs.key),
widget: BaseScaffold(
title: appLocalizations.network,
body: const NetworkListView(),
),
),
ListItem.open(
title: const Text('DNS'),
leading: const GlyphIcon(AppGlyphs.dns),
widget: const DnsView(),
),
ListItem.open(
title: Text(appLocalizations.addedRules),
leading: const GlyphIcon(AppGlyphs.rules),
widget: const AddedRulesView(),
),
ListItem.open(
title: Text(appLocalizations.script),
leading: const GlyphIcon(AppGlyphs.code),
widget: const ScriptsView(),
),
];
return BaseScaffold(
title: appLocalizations.advancedConfig,
body: ListView(
padding: const EdgeInsets.symmetric(
horizontal: 16,
).copyWith(top: context.contentTopPadding, bottom: 16),
children: [generateSectionV3(items: items)],
),
);
}
}