Update task detail page

This commit is contained in:
2024-05-26 12:15:28 +08:00
parent 2ab5a88807
commit 87a7b4e888
4 changed files with 34 additions and 8 deletions

View File

@@ -6,10 +6,16 @@ class FitText extends StatelessWidget {
required this.texts,
this.style,
this.separator = " ",
this.selectable = false,
this.overflow,
this.maxLines,
});
final List<(String, int)> texts;
final TextStyle? style;
final String separator;
final bool selectable;
final TextOverflow? overflow;
final int? maxLines;
Size _textSize(String text, TextStyle? style) {
final TextPainter textPainter = TextPainter(
@@ -37,10 +43,13 @@ class FitText extends StatelessWidget {
final double maxWidth = constraints.maxWidth;
for (int i = sizes.length - 1; i >= 0; i--) {
if (sizes[i] <= maxWidth) {
return Text(texts[i], style: style);
return selectable
? SelectableText(texts[i], style: style)
: Text(texts[i], style: style, overflow: overflow);
}
}
return Text(texts[0], style: style);
return Text(texts[0],
style: style, overflow: overflow, maxLines: maxLines);
});
}
}

View File

@@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart';
import 'package:intl/intl.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import '../api/task.dart';
import '../components/fit_text.dart';
import '../components/rate.dart';
import '../globals.dart';
import '../main.dart';
@@ -168,8 +169,10 @@ class _TaskPage extends State<TaskPage> {
),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Expanded(
child: Text(i18n.downloadedSize(
"${getFileSize(p.downloadedBytes)}${i18n.comma}${p.downloadedPage}/${p.totalPage}"))),
child: FitText(texts: [
(i18n.downloadedSize(getFileSize(p.downloadedBytes)), 0),
("${p.downloadedPage}/${p.totalPage}", 1)
], overflow: TextOverflow.ellipsis, maxLines: 1)),
Text("${getFileSize((speed * 1000).toInt())}/s"),
]),
]);
@@ -252,7 +255,17 @@ class _TaskPage extends State<TaskPage> {
: avgSpeed
: d.speed;
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
SelectableText("${d.name}(${d.width}x${d.height})"),
FitText(
texts: [
("${d.index}.", 2),
(d.name, 3),
("(${d.width}x${d.height})", 0),
(d.isOriginal ? "(${i18n.originalImg})" : "", 1)
],
selectable: true,
overflow: TextOverflow.ellipsis,
maxLines: 1,
),
LinearPercentIndicator(
animation: true,
animateFromLastPercent: true,
@@ -268,7 +281,9 @@ class _TaskPage extends State<TaskPage> {
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Expanded(
child: Text(
"${getFileSize(d.downloaded)}/${getFileSize(d.total)}")),
"${getFileSize(d.downloaded)}/${getFileSize(d.total)}",
maxLines: 1,
overflow: TextOverflow.ellipsis)),
Text(
"${getFileSize((speed * 1000).toInt())}/s${i18n.comma}${fmtDuration(context, eta)}"),
]),

View File

@@ -193,5 +193,6 @@
"category": "Category",
"uploader": "Uploader",
"dlUseAvgSpeed": "Show average speed in task details.",
"refresh": "Refresh"
"refresh": "Refresh",
"originalImg": "Original image"
}

View File

@@ -193,5 +193,6 @@
"category": "分类",
"uploader": "上传者",
"dlUseAvgSpeed": "在任务详情中显示平均速度。",
"refresh": "刷新"
"refresh": "刷新",
"originalImg": "原图"
}