Resorted settings, toggle's text can change value
This commit is contained in:
parent
2e1f8c1935
commit
ec55ccde3e
|
@ -222,6 +222,46 @@
|
|||
"description": "Text displayed when behavior settings are not updated for older chats",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowModelTags": "Model-Tags anzeigen",
|
||||
"@settingsShowModelTags": {
|
||||
"description": "Text displayed as description for show model tags toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsResetOnModelChange": "Zurücksetzen bei Modelländerung",
|
||||
"@settingsResetOnModelChange": {
|
||||
"description": "Text displayed as description for reset on model change toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGenerateTitles": "Titel generieren",
|
||||
"@settingsGenerateTitles": {
|
||||
"description": "Text displayed as description for generate titles toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsEnableEditing": "Nachrichtenbearbeitung aktivieren",
|
||||
"@settingsEnableEditing": {
|
||||
"description": "Text displayed as description for enable editing toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsAskBeforeDelete": "Vor Löschung des Chats fragen",
|
||||
"@settingsAskBeforeDelete": {
|
||||
"description": "Text displayed as description for ask before deletion toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowTips": "Tipps in der Seitenleiste anzeigen",
|
||||
"@settingsShowTips": {
|
||||
"description": "Text displayed as description for show tips toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeStream": "Stream",
|
||||
"@settingsRequestTypeStream": {
|
||||
"description": "Text displayed as description for stream request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeRequest": "Request",
|
||||
"@settingsRequestTypeRequest": {
|
||||
"description": "Text displayed as description for request request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsBrightnessSystem": "System",
|
||||
"@settingsBrightnessSystem": {
|
||||
"description": "Text displayed as description for system brightness option",
|
||||
|
@ -257,46 +297,6 @@
|
|||
"description": "Text displayed for cancel button, should be capitalized",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGenerateTitles": "Titel generieren",
|
||||
"@settingsGenerateTitles": {
|
||||
"description": "Text displayed as description for generate titles toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsAskBeforeDelete": "Vor Löschung des Chats fragen",
|
||||
"@settingsAskBeforeDelete": {
|
||||
"description": "Text displayed as description for ask before deletion toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsResetOnModelChange": "Zurücksetzen bei Modelländerung",
|
||||
"@settingsResetOnModelChange": {
|
||||
"description": "Text displayed as description for reset on model change toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsEnableEditing": "Nachrichtenbearbeitung aktivieren",
|
||||
"@settingsEnableEditing": {
|
||||
"description": "Text displayed as description for enable editing toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowTips": "Tipps in der Seitenleiste anzeigen",
|
||||
"@settingsShowTips": {
|
||||
"description": "Text displayed as description for show tips toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowModelTags": "Model-Tags anzeigen",
|
||||
"@settingsShowModelTags": {
|
||||
"description": "Text displayed as description for show model tags toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeStream": "Stream",
|
||||
"@settingsRequestTypeStream": {
|
||||
"description": "Text displayed as description for stream request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeRequest": "Request",
|
||||
"@settingsRequestTypeRequest": {
|
||||
"description": "Text displayed as description for request request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsExportChats": "Chats exportieren",
|
||||
"@settingsExportChats": {
|
||||
"description": "Text displayed as description for export chats button",
|
||||
|
@ -342,6 +342,11 @@
|
|||
"description": "Warning displayed for export and import options",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsCheckForUpdates": "Beim Öffnen nach Updates suchen",
|
||||
"@settingsCheckForUpdates": {
|
||||
"description": "Text displayed as description for check for updates toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsUpdateCheck": "Nach Updates suchen",
|
||||
"@settingsUpdateCheck": {
|
||||
"description": "Text displayed as description for check for updates button",
|
||||
|
@ -403,11 +408,6 @@
|
|||
"description": "Text displayed for cancel button, should be capitalized",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsCheckForUpdates": "Nach Updates suchen",
|
||||
"@settingsCheckForUpdates": {
|
||||
"description": "Text displayed as description for check for updates toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGithub": "GitHub",
|
||||
"@settingsGithub": {
|
||||
"description": "Text displayed as description for GitHub button",
|
||||
|
@ -422,5 +422,16 @@
|
|||
"@settingsMainDeveloper": {
|
||||
"description": "Text displayed as description for main developer button",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsVersion": "Ollama App v{version}",
|
||||
"@settingsVersion": {
|
||||
"description": "Text displayed as description for version",
|
||||
"context": "Visible in the settings view",
|
||||
"placeholders": {
|
||||
"version": {
|
||||
"type": "String",
|
||||
"description": "Version number of the app"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -222,6 +222,46 @@
|
|||
"description": "Text displayed when behavior settings are not updated for older chats",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowModelTags": "Show model tags",
|
||||
"@settingsShowModelTags": {
|
||||
"description": "Text displayed as description for show model tags toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsResetOnModelChange": "Reset on model change",
|
||||
"@settingsResetOnModelChange": {
|
||||
"description": "Text displayed as description for reset on model change toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGenerateTitles": "Generate titles",
|
||||
"@settingsGenerateTitles": {
|
||||
"description": "Text displayed as description for generate titles toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsEnableEditing": "Enable editing of messages",
|
||||
"@settingsEnableEditing": {
|
||||
"description": "Text displayed as description for enable editing toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsAskBeforeDelete": "Ask before chat deletion",
|
||||
"@settingsAskBeforeDelete": {
|
||||
"description": "Text displayed as description for ask before deletion toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowTips": "Show tips in sidebar",
|
||||
"@settingsShowTips": {
|
||||
"description": "Text displayed as description for show tips toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeStream": "Stream",
|
||||
"@settingsRequestTypeStream": {
|
||||
"description": "Text displayed as description for stream request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeRequest": "Request",
|
||||
"@settingsRequestTypeRequest": {
|
||||
"description": "Text displayed as description for request request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsBrightnessSystem": "System",
|
||||
"@settingsBrightnessSystem": {
|
||||
"description": "Text displayed as description for system brightness option",
|
||||
|
@ -257,46 +297,6 @@
|
|||
"description": "Text displayed for cancel button, should be capitalized",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGenerateTitles": "Generate titles",
|
||||
"@settingsGenerateTitles": {
|
||||
"description": "Text displayed as description for generate titles toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsAskBeforeDelete": "Ask before chat deletion",
|
||||
"@settingsAskBeforeDelete": {
|
||||
"description": "Text displayed as description for ask before deletion toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsResetOnModelChange": "Reset on model change",
|
||||
"@settingsResetOnModelChange": {
|
||||
"description": "Text displayed as description for reset on model change toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsEnableEditing": "Enable editing of messages",
|
||||
"@settingsEnableEditing": {
|
||||
"description": "Text displayed as description for enable editing toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowTips": "Show tips in sidebar",
|
||||
"@settingsShowTips": {
|
||||
"description": "Text displayed as description for show tips toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsShowModelTags": "Show model tags",
|
||||
"@settingsShowModelTags": {
|
||||
"description": "Text displayed as description for show model tags toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeStream": "Stream",
|
||||
"@settingsRequestTypeStream": {
|
||||
"description": "Text displayed as description for stream request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsRequestTypeRequest": "Request",
|
||||
"@settingsRequestTypeRequest": {
|
||||
"description": "Text displayed as description for request request type. Do not translate if not required!",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsExportChats": "Export chats",
|
||||
"@settingsExportChats": {
|
||||
"description": "Text displayed as description for export chats button",
|
||||
|
@ -342,6 +342,11 @@
|
|||
"description": "Warning displayed for export and import options",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsCheckForUpdates": "Check for updates on open",
|
||||
"@settingsCheckForUpdates": {
|
||||
"description": "Text displayed as description for check for updates toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsUpdateCheck": "Check for updates",
|
||||
"@settingsUpdateCheck": {
|
||||
"description": "Text displayed as description for check for updates button",
|
||||
|
@ -403,11 +408,6 @@
|
|||
"description": "Text displayed for cancel button, should be capitalized",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsCheckForUpdates": "Check for updates",
|
||||
"@settingsCheckForUpdates": {
|
||||
"description": "Text displayed as description for check for updates toggle",
|
||||
"context": "Visible in the settings view"
|
||||
},
|
||||
"settingsGithub": "GitHub",
|
||||
"@settingsGithub": {
|
||||
"description": "Text displayed as description for GitHub button",
|
||||
|
|
|
@ -21,8 +21,15 @@ Widget toggle(BuildContext context, String text, bool value,
|
|||
Function(bool value) onChanged) {
|
||||
var space = ""; // Invisible character: U+2063
|
||||
var spacePlus = " $space";
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 4, bottom: 4),
|
||||
return InkWell(
|
||||
splashFactory: NoSplash.splashFactory,
|
||||
highlightColor: Colors.transparent,
|
||||
hoverColor: Colors.transparent,
|
||||
onTap: () {
|
||||
onChanged(!value);
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(top: 8, bottom: 8),
|
||||
child: Stack(children: [
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(left: 16, right: 16, top: 12),
|
||||
|
@ -48,9 +55,11 @@ Widget toggle(BuildContext context, String text, bool value,
|
|||
? (theme ?? ThemeData()).colorScheme.surface
|
||||
: (themeDark ?? ThemeData.dark()).colorScheme.surface,
|
||||
child: SizedBox(
|
||||
height: 40, child: Switch(value: value, onChanged: onChanged)))
|
||||
height: 40,
|
||||
child: Switch(value: value, onChanged: onChanged)))
|
||||
]),
|
||||
]),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -66,6 +75,17 @@ Widget title(String text, {double top = 16, double bottom = 16}) {
|
|||
]));
|
||||
}
|
||||
|
||||
Widget titleDivider({double top = 16, double bottom = 16}) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(left: 8, right: 8, top: top, bottom: bottom),
|
||||
child: const Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(child: Divider()),
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
Widget button(String text, IconData icon, void Function()? onPressed,
|
||||
{Color? color}) {
|
||||
return InkWell(
|
||||
|
@ -346,10 +366,7 @@ class _ScreenSettingsState extends State<ScreenSettings> {
|
|||
"monospace"))
|
||||
],
|
||||
)))),
|
||||
const Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 8, right: 8, top: 16, bottom: 4),
|
||||
child: Divider()),
|
||||
titleDivider(bottom: 4),
|
||||
button(
|
||||
AppLocalizations.of(context)!
|
||||
.settingsTitleBehavior,
|
||||
|
|
|
@ -89,6 +89,18 @@ class _ScreenSettingsAboutState extends State<ScreenSettingsAbout> {
|
|||
.settingsVersion(currentVersion ?? "0.0.1"),
|
||||
Icons.verified_rounded,
|
||||
null),
|
||||
(updateStatus == "notAvailable")
|
||||
? const SizedBox.shrink()
|
||||
: toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!
|
||||
.settingsCheckForUpdates,
|
||||
(prefs!.getBool("checkUpdateOnSettingsOpen") ??
|
||||
false), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("checkUpdateOnSettingsOpen", value);
|
||||
setState(() {});
|
||||
}),
|
||||
(updateStatus == "notAvailable")
|
||||
? const SizedBox.shrink()
|
||||
: button(
|
||||
|
@ -132,18 +144,7 @@ class _ScreenSettingsAboutState extends State<ScreenSettingsAbout> {
|
|||
return;
|
||||
}
|
||||
}),
|
||||
(updateStatus == "notAvailable")
|
||||
? const SizedBox.shrink()
|
||||
: toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!
|
||||
.settingsCheckForUpdates,
|
||||
(prefs!.getBool("checkUpdateOnSettingsOpen") ??
|
||||
false), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("checkUpdateOnSettingsOpen", value);
|
||||
setState(() {});
|
||||
}),
|
||||
titleDivider(),
|
||||
button(AppLocalizations.of(context)!.settingsGithub,
|
||||
SimpleIcons.github, () {
|
||||
HapticFeedback.selectionClick();
|
||||
|
|
|
@ -72,7 +72,7 @@ class _ScreenSettingsExportState extends State<ScreenSettingsExport> {
|
|||
child: Column(children: [
|
||||
Expanded(
|
||||
child: ListView(children: [
|
||||
const SizedBox(height: 16),
|
||||
// const SizedBox(height: 16),
|
||||
button(AppLocalizations.of(context)!.settingsExportChats,
|
||||
Icons.upload_rounded, () async {
|
||||
HapticFeedback.selectionClick();
|
||||
|
|
|
@ -71,6 +71,82 @@ class _ScreenSettingsInterfaceState extends State<ScreenSettingsInterface> {
|
|||
child: Column(children: [
|
||||
Expanded(
|
||||
child: ListView(children: [
|
||||
// const SizedBox(height: 16),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsShowModelTags,
|
||||
(prefs!.getBool("modelTags") ?? false), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("modelTags", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!
|
||||
.settingsResetOnModelChange,
|
||||
(prefs!.getBool("resetOnModelSelect") ?? true),
|
||||
(value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("resetOnModelSelect", value);
|
||||
setState(() {});
|
||||
}),
|
||||
titleDivider(),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsGenerateTitles,
|
||||
(prefs!.getBool("generateTitles") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("generateTitles", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsEnableEditing,
|
||||
(prefs!.getBool("enableEditing") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("enableEditing", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsAskBeforeDelete,
|
||||
(prefs!.getBool("askBeforeDeletion") ?? false),
|
||||
(value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("askBeforeDeletion", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsShowTips,
|
||||
(prefs!.getBool("tips") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("tips", value);
|
||||
setState(() {});
|
||||
}),
|
||||
titleDivider(bottom: 20),
|
||||
SegmentedButton(
|
||||
segments: [
|
||||
ButtonSegment(
|
||||
value: "stream",
|
||||
label: Text(AppLocalizations.of(context)!
|
||||
.settingsRequestTypeStream),
|
||||
icon: const Icon(Icons.stream_rounded)),
|
||||
ButtonSegment(
|
||||
value: "request",
|
||||
label: Text(AppLocalizations.of(context)!
|
||||
.settingsRequestTypeRequest),
|
||||
icon: const Icon(Icons.send_rounded))
|
||||
],
|
||||
selected: {
|
||||
prefs!.getString("requestType") ?? "stream"
|
||||
},
|
||||
onSelectionChanged: (p0) {
|
||||
HapticFeedback.selectionClick();
|
||||
setState(() {
|
||||
prefs!.setString("requestType", p0.elementAt(0));
|
||||
});
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
SegmentedButton(
|
||||
segments: [
|
||||
|
@ -151,81 +227,6 @@ class _ScreenSettingsInterfaceState extends State<ScreenSettingsInterface> {
|
|||
});
|
||||
});
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsGenerateTitles,
|
||||
(prefs!.getBool("generateTitles") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("generateTitles", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsAskBeforeDelete,
|
||||
(prefs!.getBool("askBeforeDeletion") ?? false),
|
||||
(value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("askBeforeDeletion", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!
|
||||
.settingsResetOnModelChange,
|
||||
(prefs!.getBool("resetOnModelSelect") ?? true),
|
||||
(value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("resetOnModelSelect", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsEnableEditing,
|
||||
(prefs!.getBool("enableEditing") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("enableEditing", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsShowTips,
|
||||
(prefs!.getBool("tips") ?? true), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("tips", value);
|
||||
setState(() {});
|
||||
}),
|
||||
toggle(
|
||||
context,
|
||||
AppLocalizations.of(context)!.settingsShowModelTags,
|
||||
(prefs!.getBool("modelTags") ?? false), (value) {
|
||||
HapticFeedback.selectionClick();
|
||||
prefs!.setBool("modelTags", value);
|
||||
setState(() {});
|
||||
}),
|
||||
const SizedBox(height: 16),
|
||||
SegmentedButton(
|
||||
segments: [
|
||||
ButtonSegment(
|
||||
value: "stream",
|
||||
label: Text(AppLocalizations.of(context)!
|
||||
.settingsRequestTypeStream),
|
||||
icon: const Icon(Icons.stream_rounded)),
|
||||
ButtonSegment(
|
||||
value: "request",
|
||||
label: Text(AppLocalizations.of(context)!
|
||||
.settingsRequestTypeRequest),
|
||||
icon: const Icon(Icons.send_rounded))
|
||||
],
|
||||
selected: {
|
||||
prefs!.getString("requestType") ?? "stream"
|
||||
},
|
||||
onSelectionChanged: (p0) {
|
||||
HapticFeedback.selectionClick();
|
||||
setState(() {
|
||||
prefs!.setString("requestType", p0.elementAt(0));
|
||||
});
|
||||
})
|
||||
]),
|
||||
),
|
||||
const SizedBox(height: 16)
|
||||
|
|
Loading…
Reference in New Issue