show Menu when clicking on ListTile, correct german typo, use multiline for snippets

This commit is contained in:
Thomas
2023-05-12 15:29:44 +02:00
parent 2ee0c6f995
commit 62d8285c1a
4 changed files with 52 additions and 20 deletions

View File

@@ -315,7 +315,7 @@ class SDe extends S {
String get noSavedPrivateKey => 'Keine gespeicherten Private Keys';
@override
String get noSavedSnippet => 'Keine gespeicherten snippets.';
String get noSavedSnippet => 'Keine gespeicherten Snippets.';
@override
String get noServerAvailable => 'Kein Server verfügbar.';

View File

@@ -95,7 +95,7 @@
"noInterface": "Kein Interface",
"noResult": "Kein Ergebnis",
"noSavedPrivateKey": "Keine gespeicherten Private Keys",
"noSavedSnippet": "Keine gespeicherten snippets.",
"noSavedSnippet": "Keine gespeicherten Snippets.",
"noServerAvailable": "Kein Server verfügbar.",
"noUpdateAvailable": "Kein Update verfügbar",
"notSelected": "Nicht ausgewählt",

View File

@@ -32,6 +32,12 @@ class SettingPage extends StatefulWidget {
}
class _SettingPageState extends State<SettingPage> {
final themeKey = GlobalKey<PopupMenuButtonState<int>>();
final startPageKey = GlobalKey<PopupMenuButtonState<int>>();
final updateIntervalKey = GlobalKey<PopupMenuButtonState<int>>();
final termThemeKey = GlobalKey<PopupMenuButtonState<int>>();
final maxRetryKey = GlobalKey<PopupMenuButtonState<int>>();
late final SettingStore _setting;
late final ServerProvider _serverProvider;
late MediaQueryData _media;
@@ -186,6 +192,7 @@ class _SettingPageState extends State<SettingPage> {
),
growable: false,
).toList();
return ListTile(
title: Text(
_s.updateServerStatusInterval,
@@ -194,10 +201,14 @@ class _SettingPageState extends State<SettingPage> {
_s.willTakEeffectImmediately,
style: grey,
),
trailing: PopupMenu<int>(
items: items,
onTap: () {
updateIntervalKey.currentState?.showButtonMenu();
},
trailing: PopupMenuButton(
key: updateIntervalKey,
itemBuilder: (BuildContext context) => items,
initialValue: _updateInterval,
onSelected: (val) {
onSelected: (int val) {
setState(() {
_updateInterval = val;
});
@@ -261,14 +272,19 @@ class _SettingPageState extends State<SettingPage> {
),
)
.toList();
return ListTile(
title: Text(
_s.launchPage,
),
trailing: PopupMenu<int>(
items: items,
onTap: () {
startPageKey.currentState?.showButtonMenu();
},
trailing: PopupMenuButton(
key: startPageKey,
itemBuilder: (BuildContext context) => items,
initialValue: _launchPageIdx,
onSelected: (idx) {
onSelected: (int idx) {
setState(() {
_launchPageIdx = idx;
});
@@ -298,10 +314,14 @@ class _SettingPageState extends State<SettingPage> {
title: Text(
_s.termTheme,
),
trailing: PopupMenu<int>(
items: items,
onTap: () {
termThemeKey.currentState?.showButtonMenu();
},
trailing: PopupMenuButton(
key: termThemeKey,
itemBuilder: (BuildContext context) => items,
initialValue: _termThemeIdx,
onSelected: (idx) {
onSelected: (int idx) {
setState(() {
_termThemeIdx = idx;
});
@@ -325,15 +345,21 @@ class _SettingPageState extends State<SettingPage> {
).toList();
final help =
_maxRetryCount == 0 ? _s.maxRetryCountEqual0 : _s.canPullRefresh;
return ListTile(
title: Text(
_s.maxRetryCount,
textAlign: TextAlign.start,
),
trailing: PopupMenu<int>(
items: items,
subtitle: Text(help, style: grey),
onTap: () {
maxRetryKey.currentState?.showButtonMenu();
},
trailing: PopupMenuButton(
key: maxRetryKey,
itemBuilder: (BuildContext context) => items,
initialValue: _maxRetryCount,
onSelected: (val) {
onSelected: (int val) {
setState(() {
_maxRetryCount = val;
});
@@ -343,7 +369,6 @@ class _SettingPageState extends State<SettingPage> {
'${_maxRetryCount.toInt()} ${_s.times}',
),
),
subtitle: Text(help, style: grey),
);
}
@@ -357,15 +382,22 @@ class _SettingPageState extends State<SettingPage> {
);
},
).toList();
return ListTile(
title: Text(
_s.themeMode,
),
trailing: PopupMenu<int>(
items: items,
onTap: () {
themeKey.currentState?.showButtonMenu();
},
trailing: PopupMenuButton(
key: themeKey,
itemBuilder: (BuildContext context) => items,
initialValue: _nightMode,
onSelected: (idx) {
_nightMode = idx;
onSelected: (int idx) {
setState(() {
_nightMode = idx;
});
_setting.themeMode.put(_nightMode);
},
child: Text(_buildThemeModeStr(_nightMode)),

View File

@@ -99,7 +99,7 @@ class _SnippetEditPageState extends State<SnippetEditPage>
node: _scriptNode,
minLines: 3,
maxLines: 10,
type: TextInputType.text,
type: TextInputType.multiline,
label: _s.snippet,
icon: Icons.code,
),