new: detail page net sort

This commit is contained in:
lollipopkit
2023-10-31 20:13:57 +08:00
parent b4dbde9a80
commit 040cd6a29f
13 changed files with 69 additions and 6 deletions

View File

@@ -1190,6 +1190,12 @@ abstract class S {
/// **'s'** /// **'s'**
String get second; String get second;
/// No description provided for @sequence.
///
/// In en, this message translates to:
/// **'Sequence'**
String get sequence;
/// No description provided for @server. /// No description provided for @server.
/// ///
/// In en, this message translates to: /// In en, this message translates to:

View File

@@ -576,6 +576,9 @@ class SDe extends S {
@override @override
String get second => 's'; String get second => 's';
@override
String get sequence => 'Sequenz';
@override @override
String get server => 'Server'; String get server => 'Server';

View File

@@ -576,6 +576,9 @@ class SEn extends S {
@override @override
String get second => 's'; String get second => 's';
@override
String get sequence => 'Sequence';
@override @override
String get server => 'Server'; String get server => 'Server';

View File

@@ -576,6 +576,9 @@ class SId extends S {
@override @override
String get second => 'S'; String get second => 'S';
@override
String get sequence => 'Urutan';
@override @override
String get server => 'Server'; String get server => 'Server';

View File

@@ -576,6 +576,9 @@ class SZh extends S {
@override @override
String get second => ''; String get second => '';
@override
String get sequence => '顺序';
@override @override
String get server => '服务器'; String get server => '服务器';
@@ -1347,6 +1350,9 @@ class SZhTw extends SZh {
@override @override
String get second => ''; String get second => '';
@override
String get sequence => '順序';
@override @override
String get server => '服務器'; String get server => '服務器';

View File

@@ -23,6 +23,7 @@ class Defaults {
'overlay', 'overlay',
'run', 'run',
'none', 'none',
'shm',
]; ];
static const sshVirtKeys = [ static const sshVirtKeys = [

View File

@@ -182,6 +182,7 @@
"save": "Speichern", "save": "Speichern",
"saved": "Gerettet", "saved": "Gerettet",
"second": "s", "second": "s",
"sequence": "Sequenz",
"server": "Server", "server": "Server",
"serverDetailOrder": "Reihenfolge der Widgets auf der Detailseite", "serverDetailOrder": "Reihenfolge der Widgets auf der Detailseite",
"serverOrder": "Server-Bestellung", "serverOrder": "Server-Bestellung",

View File

@@ -182,6 +182,7 @@
"save": "Save", "save": "Save",
"saved": "Saved", "saved": "Saved",
"second": "s", "second": "s",
"sequence": "Sequence",
"server": "Server", "server": "Server",
"serverDetailOrder": "Detail page widget order", "serverDetailOrder": "Detail page widget order",
"serverOrder": "Server order", "serverOrder": "Server order",

View File

@@ -182,6 +182,7 @@
"save": "Menyimpan", "save": "Menyimpan",
"saved": "Diselamatkan", "saved": "Diselamatkan",
"second": "S", "second": "S",
"sequence": "Urutan",
"server": "Server", "server": "Server",
"serverDetailOrder": "Detail pesanan widget halaman", "serverDetailOrder": "Detail pesanan widget halaman",
"serverOrder": "Pesanan server", "serverOrder": "Pesanan server",

View File

@@ -182,6 +182,7 @@
"save": "保存", "save": "保存",
"saved": "已保存", "saved": "已保存",
"second": "秒", "second": "秒",
"sequence": "顺序",
"server": "服务器", "server": "服务器",
"serverDetailOrder": "详情页部件顺序", "serverDetailOrder": "详情页部件顺序",
"serverOrder": "服务器顺序", "serverOrder": "服务器顺序",

View File

@@ -182,6 +182,7 @@
"save": "保存", "save": "保存",
"saved": "已保存", "saved": "已保存",
"second": "秒", "second": "秒",
"sequence": "順序",
"server": "服務器", "server": "服務器",
"serverDetailOrder": "詳情頁部件順序", "serverDetailOrder": "詳情頁部件順序",
"serverOrder": "服務器順序", "serverOrder": "服務器順序",

View File

@@ -329,6 +329,11 @@ class _ServerDetailPageState extends State<ServerDetailPage>
Widget _buildDiskItem(Disk disk, ServerStatus ss) { Widget _buildDiskItem(Disk disk, ServerStatus ss) {
final (read, write) = ss.diskIO.getReadSpeed(disk.dev); final (read, write) = ss.diskIO.getReadSpeed(disk.dev);
final text = () {
final use = '${disk.usedPercent}% of ${disk.size}';
if (read == null || write == null) return use;
return '$use\n$read | ↓ $write';
}();
return ListTile( return ListTile(
title: Text( title: Text(
disk.dev, disk.dev,
@@ -337,7 +342,7 @@ class _ServerDetailPageState extends State<ServerDetailPage>
), ),
contentPadding: const EdgeInsets.symmetric(vertical: 3, horizontal: 17), contentPadding: const EdgeInsets.symmetric(vertical: 3, horizontal: 17),
subtitle: Text( subtitle: Text(
'${disk.usedPercent}% of ${disk.size}\n$read | ↓ $write', text,
style: UIs.textSize11, style: UIs.textSize11,
textScaleFactor: _textFactor, textScaleFactor: _textFactor,
), ),
@@ -374,7 +379,27 @@ class _ServerDetailPageState extends State<ServerDetailPage>
build: () { build: () {
return CardX( return CardX(
ExpandTile( ExpandTile(
title: Text(l10n.net), title: Row(
children: [
Text(l10n.net),
UIs.width13,
InkWell(
onTap: () {
_netSortType.value = _netSortType.value.next;
},
child: Row(
children: [
const Icon(Icons.sort, size: 17),
UIs.width7,
Text(
_netSortType.value.name,
style: UIs.textSize11Grey,
),
],
),
)
],
),
leading: const Icon(Icons.device_hub, size: 17), leading: const Icon(Icons.device_hub, size: 17),
initiallyExpanded: children.length <= 7, initiallyExpanded: children.length <= 7,
children: children, children: children,
@@ -458,6 +483,17 @@ enum _NetSortType {
bool get isIn => this == _NetSortType.recv; bool get isIn => this == _NetSortType.recv;
bool get isOut => this == _NetSortType.trans; bool get isOut => this == _NetSortType.trans;
_NetSortType get next {
switch (this) {
case device:
return trans;
case _NetSortType.trans:
return recv;
case recv:
return device;
}
}
int Function(String, String) getSortFunc(NetSpeed ns) { int Function(String, String) getSortFunc(NetSpeed ns) {
switch (this) { switch (this) {
case _NetSortType.device: case _NetSortType.device:

View File

@@ -212,7 +212,7 @@ class _SettingPageState extends State<SettingPage> {
return Column( return Column(
children: [ children: [
_buildMoveOutServerFuncBtns(), _buildMoveOutServerFuncBtns(),
_buildServerOrder(), _buildSequence(),
_buildNetViewType(), _buildNetViewType(),
_buildUpdateInterval(), _buildUpdateInterval(),
_buildMaxRetry(), _buildMaxRetry(),
@@ -934,11 +934,11 @@ class _SettingPageState extends State<SettingPage> {
); );
} }
Widget _buildServerOrder() { Widget _buildSequence() {
return ExpandTile( return ExpandTile(
title: Text(l10n.serverOrder), title: Text(l10n.sequence),
subtitle: Text( subtitle: Text(
'${l10n.serverOrder} / ${l10n.serverDetailOrder}', '${l10n.serverOrder} / ${l10n.serverDetailOrder} ...',
style: UIs.textGrey, style: UIs.textGrey,
), ),
children: [ children: [