mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-13 18:58:53 +01:00
Better looking lanuage selection dialog
This commit is contained in:
parent
a7099d635d
commit
c8d452795c
2 changed files with 13 additions and 7 deletions
|
@ -6,11 +6,13 @@ class FancyOptionPickerItem {
|
|||
required this.label,
|
||||
this.isSelected = false,
|
||||
this.onSelect,
|
||||
this.dense = false,
|
||||
});
|
||||
|
||||
String label;
|
||||
bool isSelected;
|
||||
VoidCallback? onSelect;
|
||||
bool dense;
|
||||
}
|
||||
|
||||
/// A fancy looking dialog to pick an option
|
||||
|
@ -41,6 +43,7 @@ class FancyOptionPicker extends StatelessWidget {
|
|||
: null,
|
||||
),
|
||||
onTap: e.isSelected ? null : e.onSelect,
|
||||
dense: e.dense,
|
||||
),
|
||||
))
|
||||
.toList(),
|
||||
|
|
|
@ -12,6 +12,7 @@ import 'package:nc_photos/metadata_task_manager.dart';
|
|||
import 'package:nc_photos/pref.dart';
|
||||
import 'package:nc_photos/snack_bar_manager.dart';
|
||||
import 'package:nc_photos/theme.dart';
|
||||
import 'package:nc_photos/widget/fancy_option_picker.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class SettingsArguments {
|
||||
|
@ -140,19 +141,21 @@ class _SettingsState extends State<Settings> {
|
|||
}
|
||||
|
||||
void _onLanguageTap(BuildContext context) {
|
||||
final selected =
|
||||
Pref.inst().getLanguageOr(language_util.supportedLanguages[0]!.langId);
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => SimpleDialog(
|
||||
children: language_util.supportedLanguages.values
|
||||
.map<Widget>((lang) => SimpleDialogOption(
|
||||
onPressed: () {
|
||||
builder: (context) => FancyOptionPicker(
|
||||
items: language_util.supportedLanguages.values
|
||||
.map((lang) => FancyOptionPickerItem(
|
||||
label: lang.nativeName,
|
||||
isSelected: lang.langId == selected,
|
||||
onSelect: () {
|
||||
_log.info(
|
||||
"[_onLanguageTap] Set language: ${lang.nativeName}");
|
||||
Navigator.of(context).pop(lang.langId);
|
||||
},
|
||||
child: ListTile(
|
||||
title: Text(lang.nativeName),
|
||||
),
|
||||
dense: true,
|
||||
))
|
||||
.toList(),
|
||||
),
|
||||
|
|
Loading…
Reference in a new issue