From a1a59f225feacad2fe4b904552bbf9ba7a9742b7 Mon Sep 17 00:00:00 2001 From: JHubi1 Date: Wed, 29 May 2024 11:40:24 +0200 Subject: [PATCH] Added ability to dismiss settings setHost dialog --- lib/l10n/app_en.arb | 5 +++++ lib/main.dart | 2 +- lib/worker_setter.dart | 16 ++++++++++++---- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index ba89656..6fc224b 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -60,6 +60,11 @@ "description": "Text displayed for save host button, should be capitalized", "context": "Visible in the host dialog" }, + "hostDialogCancel": "Cancel", + "@hostDialogCancel": { + "description": "Text displayed for cancel button, should be capitalized", + "context": "Visible in the host dialog" + }, "noSelectedModel": "", "@noSelectedModel": { "description": "Text displayed when no model is selected", diff --git a/lib/main.dart b/lib/main.dart index f29d5b5..0bd11f6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -503,7 +503,7 @@ class _MainAppState extends State { HapticFeedback.selectionClick(); Navigator.of(context).pop(); if (!chatAllowed) return; - setHost(context); + setHost(context, false); setState(() {}); } }, diff --git a/lib/worker_setter.dart b/lib/worker_setter.dart index 4038a9e..df104b4 100644 --- a/lib/worker_setter.dart +++ b/lib/worker_setter.dart @@ -8,7 +8,7 @@ import 'package:http/http.dart' as http; import 'package:dartx/dartx.dart'; import 'package:ollama_dart/ollama_dart.dart' as llama; -void setHost(BuildContext context) { +void setHost(BuildContext context, [bool force = true]) { bool loading = false; bool invalidHost = false; bool invalidUrl = false; @@ -16,10 +16,10 @@ void setHost(BuildContext context) { TextEditingController(text: prefs?.getString("host") ?? ""); showDialog( context: context, - barrierDismissible: false, + barrierDismissible: !force, builder: (context) => StatefulBuilder( builder: (context, setState) => PopScope( - canPop: false, + canPop: !force, child: AlertDialog( title: Text(AppLocalizations.of(context)!.hostDialogTitle), content: loading @@ -108,7 +108,15 @@ void setHost(BuildContext context) { } }, child: - Text(AppLocalizations.of(context)!.hostDialogSave)) + Text(AppLocalizations.of(context)!.hostDialogSave)), + !force + ? TextButton( + onPressed: () { + Navigator.of(context).pop(); + }, + child: Text( + AppLocalizations.of(context)!.hostDialogCancel)) + : const SizedBox.shrink() ])))); }