opt.
- `TerminalColors` - ssh virtual key auto switch
This commit is contained in:
@@ -12,7 +12,6 @@ import 'package:toolbox/view/widget/input_field.dart';
|
||||
|
||||
import '../../core/utils/misc.dart';
|
||||
import '../../core/utils/platform.dart';
|
||||
import '../../data/model/ssh/terminal_color.dart';
|
||||
import '../../core/update.dart';
|
||||
import '../../core/utils/ui.dart';
|
||||
import '../../data/provider/app.dart';
|
||||
@@ -37,7 +36,6 @@ 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>>();
|
||||
final fontSizeKey = GlobalKey<PopupMenuButtonState<double>>();
|
||||
final localeKey = GlobalKey<PopupMenuButtonState<String>>();
|
||||
@@ -49,7 +47,6 @@ class _SettingPageState extends State<SettingPage> {
|
||||
|
||||
late int _selectedColorValue;
|
||||
late int _launchPageIdx;
|
||||
late int _termThemeIdx;
|
||||
late int _nightMode;
|
||||
late int _maxRetryCount;
|
||||
late int _updateInterval;
|
||||
@@ -72,7 +69,6 @@ class _SettingPageState extends State<SettingPage> {
|
||||
_serverProvider = locator<ServerProvider>();
|
||||
_setting = locator<SettingStore>();
|
||||
_launchPageIdx = _setting.launchPage.fetch()!;
|
||||
_termThemeIdx = _setting.termColorIdx.fetch()!;
|
||||
_nightMode = _setting.themeMode.fetch()!;
|
||||
_updateInterval = _setting.serverStatusUpdateInterval.fetch()!;
|
||||
_maxRetryCount = _setting.maxRetryCount.fetch()!;
|
||||
@@ -149,9 +145,9 @@ class _SettingPageState extends State<SettingPage> {
|
||||
Widget _buildSSH() {
|
||||
return Column(
|
||||
children: [
|
||||
_buildTermTheme(),
|
||||
_buildFont(),
|
||||
_buildTermFontSize(),
|
||||
_buildSSHVirtualKeyAutoOff(),
|
||||
].map((e) => RoundRectCard(e)).toList(),
|
||||
);
|
||||
}
|
||||
@@ -313,40 +309,6 @@ class _SettingPageState extends State<SettingPage> {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildTermTheme() {
|
||||
final items = TerminalColorsPlatform.values
|
||||
.map(
|
||||
(e) => PopupMenuItem<int>(
|
||||
value: e.index,
|
||||
child: Text(e.name),
|
||||
),
|
||||
)
|
||||
.toList();
|
||||
return ListTile(
|
||||
title: Text(
|
||||
_s.theme,
|
||||
),
|
||||
onTap: () {
|
||||
termThemeKey.currentState?.showButtonMenu();
|
||||
},
|
||||
trailing: PopupMenuButton(
|
||||
key: termThemeKey,
|
||||
itemBuilder: (BuildContext context) => items,
|
||||
initialValue: _termThemeIdx,
|
||||
onSelected: (int idx) {
|
||||
setState(() {
|
||||
_termThemeIdx = idx;
|
||||
});
|
||||
_setting.termColorIdx.put(idx);
|
||||
},
|
||||
child: Text(
|
||||
TerminalColorsPlatform.values[_termThemeIdx].name,
|
||||
style: textSize15,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildMaxRetry() {
|
||||
final items = List.generate(
|
||||
10,
|
||||
@@ -636,4 +598,12 @@ class _SettingPageState extends State<SettingPage> {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSSHVirtualKeyAutoOff() {
|
||||
return ListTile(
|
||||
title: Text(_s.sshVirtualKeyAutoOff),
|
||||
subtitle: const Text('Ctrl & Alt', style: grey),
|
||||
trailing: buildSwitch(context, _setting.sshVirtualKeyAutoOff),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:toolbox/core/extension/navigator.dart';
|
||||
import 'package:xterm/xterm.dart' hide TerminalColors;
|
||||
import 'package:xterm/xterm.dart';
|
||||
|
||||
import '../../core/utils/platform.dart';
|
||||
import '../../data/model/ssh/terminal_color.dart';
|
||||
@@ -42,7 +42,6 @@ class _SSHPageState extends State<SSHPage> {
|
||||
final TerminalController _terminalController = TerminalController();
|
||||
final ContextMenuController _menuController = ContextMenuController();
|
||||
late TextStyle _menuTextStyle;
|
||||
late TerminalColors _termColors;
|
||||
late S _s;
|
||||
late TerminalStyle _terminalStyle;
|
||||
late TerminalUITheme _termUITheme;
|
||||
@@ -53,8 +52,6 @@ class _SSHPageState extends State<SSHPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
final termColorIdx = _setting.termColorIdx.fetch()!;
|
||||
_termColors = TerminalColorsPlatform.values[termColorIdx].colors;
|
||||
final fontFamilly = getFileName(_setting.fontPath.fetch());
|
||||
final textStyle = TextStyle(
|
||||
fontFamily: fontFamilly,
|
||||
@@ -72,7 +69,7 @@ class _SSHPageState extends State<SSHPage> {
|
||||
_menuTextStyle = TextStyle(color: contentColor.resolve(context));
|
||||
_s = S.of(context)!;
|
||||
_termUITheme = _isDark ? termDarkTheme : termLightTheme;
|
||||
_terminalTheme = _termUITheme.toTerminalTheme(_termColors);
|
||||
_terminalTheme = _termUITheme.toTerminalTheme(MacOSTerminalColor());
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -164,11 +161,7 @@ class _SSHPageState extends State<SSHPage> {
|
||||
}
|
||||
|
||||
final child = item.icon != null
|
||||
? Icon(
|
||||
item.icon,
|
||||
color: _isDark ? Colors.white : Colors.black,
|
||||
size: 17,
|
||||
)
|
||||
? Icon(item.icon, size: 17)
|
||||
: Text(
|
||||
item.text,
|
||||
style: TextStyle(
|
||||
|
||||
Reference in New Issue
Block a user