feat: clear log

This commit is contained in:
cialloo
2024-07-24 22:55:35 +08:00
parent 5ac19aeac6
commit c2230dbac6
4 changed files with 30 additions and 8 deletions

View File

@@ -17,4 +17,9 @@ class EdgeLogger with ChangeNotifier {
logList.add(log); logList.add(log);
notifyListeners(); notifyListeners();
} }
void clearLog() {
logList.clear();
notifyListeners();
}
} }

View File

@@ -23,5 +23,6 @@
"chooseLanguage": "Choose Language", "chooseLanguage": "Choose Language",
"successfullyConnected": "Connected", "successfullyConnected": "Connected",
"macOrIpAlreadyInUse": "MAC or IP address already in use or not released yet by supernode", "macOrIpAlreadyInUse": "MAC or IP address already in use or not released yet by supernode",
"otherReasonFail": "Connect fail" "otherReasonFail": "Connect fail",
"clearLog": "Clear log"
} }

View File

@@ -23,5 +23,6 @@
"chooseLanguage": "选择语言", "chooseLanguage": "选择语言",
"successfullyConnected": "已连接", "successfullyConnected": "已连接",
"macOrIpAlreadyInUse": "MAC或IP地址已被占用或者未被中转服务器释放", "macOrIpAlreadyInUse": "MAC或IP地址已被占用或者未被中转服务器释放",
"otherReasonFail": "连接失败" "otherReasonFail": "连接失败",
"clearLog": "清除日志"
} }

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:winui_n2n/edge_state.dart'; import 'package:winui_n2n/edge_state.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class LoggerPage extends StatelessWidget { class LoggerPage extends StatelessWidget {
const LoggerPage({super.key}); const LoggerPage({super.key});
@@ -9,12 +10,26 @@ class LoggerPage extends StatelessWidget {
return ListenableBuilder( return ListenableBuilder(
listenable: EdgeState.instance.logger, listenable: EdgeState.instance.logger,
builder: (context, child) { builder: (context, child) {
return ListView( return Stack(
children: [
ListView(
children: EdgeState.instance.logger.logList.map<SelectableText>( children: EdgeState.instance.logger.logList.map<SelectableText>(
(e) { (e) {
return SelectableText(e); return SelectableText(e);
}, },
).toList(), ).toList(),
),
Positioned(
right: 10,
bottom: 10,
child: FloatingActionButton(
tooltip: AppLocalizations.of(context)!.clearLog,
onPressed: () {
EdgeState.instance.logger.clearLog();
},
child: const Icon(Icons.clear),
)),
],
); );
}, },
); );