mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
Option in settings to disable SFTP folders-first
This commit is contained in:
@@ -1342,6 +1342,12 @@ abstract class S {
|
|||||||
/// **'Use `rm -r` to delete a folder in SFTP.'**
|
/// **'Use `rm -r` to delete a folder in SFTP.'**
|
||||||
String get sftpRmrDirSummary;
|
String get sftpRmrDirSummary;
|
||||||
|
|
||||||
|
/// No description provided for @sftpShowFoldersFirst.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'Disply folders first'**
|
||||||
|
String get sftpShowFoldersFirst;
|
||||||
|
|
||||||
/// No description provided for @sftpSSHConnected.
|
/// No description provided for @sftpSSHConnected.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
|
|||||||
@@ -651,6 +651,9 @@ class SDe extends S {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => 'Verwenden Sie \"rm -r\", um das Verzeichnis in SFTP zu löschen.';
|
String get sftpRmrDirSummary => 'Verwenden Sie \"rm -r\", um das Verzeichnis in SFTP zu löschen.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => 'Ordner zuerst anzeigen';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'SFTP Verbunden';
|
String get sftpSSHConnected => 'SFTP Verbunden';
|
||||||
|
|
||||||
|
|||||||
@@ -651,6 +651,9 @@ class SEn extends S {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => 'Use `rm -r` to delete a folder in SFTP.';
|
String get sftpRmrDirSummary => 'Use `rm -r` to delete a folder in SFTP.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => 'Disply folders first';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'SFTP Connected';
|
String get sftpSSHConnected => 'SFTP Connected';
|
||||||
|
|
||||||
|
|||||||
@@ -651,6 +651,9 @@ class SFr extends S {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => 'Utilisez `rm -r` pour supprimer un dossier dans SFTP.';
|
String get sftpRmrDirSummary => 'Utilisez `rm -r` pour supprimer un dossier dans SFTP.';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => 'Dossiers d\'abord lors du tri';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'SFTP connecté';
|
String get sftpSSHConnected => 'SFTP connecté';
|
||||||
|
|
||||||
|
|||||||
@@ -651,6 +651,9 @@ class SId extends S {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => 'Gunakan `rm -r` untuk menghapus dir di SFTP';
|
String get sftpRmrDirSummary => 'Gunakan `rm -r` untuk menghapus dir di SFTP';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => 'Folder ditampilkan lebih dulu';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'Sftp terhubung';
|
String get sftpSSHConnected => 'Sftp terhubung';
|
||||||
|
|
||||||
|
|||||||
@@ -651,6 +651,9 @@ class SZh extends S {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => '在 SFTP 中使用 `rm -r` 来删除文件夹';
|
String get sftpRmrDirSummary => '在 SFTP 中使用 `rm -r` 来删除文件夹';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => '排序时文件夹显示在前';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'SFTP 已连接...';
|
String get sftpSSHConnected => 'SFTP 已连接...';
|
||||||
|
|
||||||
@@ -1502,6 +1505,9 @@ class SZhTw extends SZh {
|
|||||||
@override
|
@override
|
||||||
String get sftpRmrDirSummary => '在 SFTP 中使用 `rm -r` 來刪除文件夾';
|
String get sftpRmrDirSummary => '在 SFTP 中使用 `rm -r` 來刪除文件夾';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get sftpShowFoldersFirst => '排序時文件夾顯示在前';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sftpSSHConnected => 'SFTP 已連接...';
|
String get sftpSSHConnected => 'SFTP 已連接...';
|
||||||
|
|
||||||
|
|||||||
@@ -197,6 +197,9 @@ class SettingStore extends PersistentStore {
|
|||||||
/// Open SFTP with last viewed path
|
/// Open SFTP with last viewed path
|
||||||
late final sftpOpenLastPath = property('sftpOpenLastPath', true);
|
late final sftpOpenLastPath = property('sftpOpenLastPath', true);
|
||||||
|
|
||||||
|
/// Show folders first in SFTP file browser
|
||||||
|
late final sftpShowFoldersFirst = property('sftpShowFoldersFirst', true);
|
||||||
|
|
||||||
/// Show tip of suspend
|
/// Show tip of suspend
|
||||||
late final showSuspendTip = property('showSuspendTip', true);
|
late final showSuspendTip = property('showSuspendTip', true);
|
||||||
|
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "Einstellungen",
|
"setting": "Einstellungen",
|
||||||
"sftpDlPrepare": "Verbindung vorbereiten...",
|
"sftpDlPrepare": "Verbindung vorbereiten...",
|
||||||
"sftpRmrDirSummary": "Verwenden Sie \"rm -r\", um das Verzeichnis in SFTP zu löschen.",
|
"sftpRmrDirSummary": "Verwenden Sie \"rm -r\", um das Verzeichnis in SFTP zu löschen.",
|
||||||
|
"sftpShowFoldersFirst": "Ordner zuerst anzeigen",
|
||||||
"sftpSSHConnected": "SFTP Verbunden",
|
"sftpSSHConnected": "SFTP Verbunden",
|
||||||
"showDistLogo": "Distributionslogo anzeigen",
|
"showDistLogo": "Distributionslogo anzeigen",
|
||||||
"shutdown": "Abschaltung",
|
"shutdown": "Abschaltung",
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "Settings",
|
"setting": "Settings",
|
||||||
"sftpDlPrepare": "Preparing to connect...",
|
"sftpDlPrepare": "Preparing to connect...",
|
||||||
"sftpRmrDirSummary": "Use `rm -r` to delete a folder in SFTP.",
|
"sftpRmrDirSummary": "Use `rm -r` to delete a folder in SFTP.",
|
||||||
|
"sftpShowFoldersFirst": "Disply folders first",
|
||||||
"sftpSSHConnected": "SFTP Connected",
|
"sftpSSHConnected": "SFTP Connected",
|
||||||
"showDistLogo": "Show distribution logo",
|
"showDistLogo": "Show distribution logo",
|
||||||
"shutdown": "Shutdown",
|
"shutdown": "Shutdown",
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "Paramètres",
|
"setting": "Paramètres",
|
||||||
"sftpDlPrepare": "Préparation de la connexion...",
|
"sftpDlPrepare": "Préparation de la connexion...",
|
||||||
"sftpRmrDirSummary": "Utilisez `rm -r` pour supprimer un dossier dans SFTP.",
|
"sftpRmrDirSummary": "Utilisez `rm -r` pour supprimer un dossier dans SFTP.",
|
||||||
|
"sftpShowFoldersFirst": "Dossiers d'abord lors du tri",
|
||||||
"sftpSSHConnected": "SFTP connecté",
|
"sftpSSHConnected": "SFTP connecté",
|
||||||
"showDistLogo": "Afficher le logo de la distribution",
|
"showDistLogo": "Afficher le logo de la distribution",
|
||||||
"shutdown": "Éteindre",
|
"shutdown": "Éteindre",
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "Pengaturan",
|
"setting": "Pengaturan",
|
||||||
"sftpDlPrepare": "Bersiap untuk terhubung ...",
|
"sftpDlPrepare": "Bersiap untuk terhubung ...",
|
||||||
"sftpRmrDirSummary": "Gunakan `rm -r` untuk menghapus dir di SFTP",
|
"sftpRmrDirSummary": "Gunakan `rm -r` untuk menghapus dir di SFTP",
|
||||||
|
"sftpShowFoldersFirst": "Folder ditampilkan lebih dulu",
|
||||||
"sftpSSHConnected": "Sftp terhubung",
|
"sftpSSHConnected": "Sftp terhubung",
|
||||||
"showDistLogo": "Tampilkan logo distribusi",
|
"showDistLogo": "Tampilkan logo distribusi",
|
||||||
"shutdown": "Matikan",
|
"shutdown": "Matikan",
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "设置",
|
"setting": "设置",
|
||||||
"sftpDlPrepare": "准备连接至服务器...",
|
"sftpDlPrepare": "准备连接至服务器...",
|
||||||
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 来删除文件夹",
|
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 来删除文件夹",
|
||||||
|
"sftpShowFoldersFirst": "排序时文件夹显示在前",
|
||||||
"sftpSSHConnected": "SFTP 已连接...",
|
"sftpSSHConnected": "SFTP 已连接...",
|
||||||
"showDistLogo": "显示发行版 Logo",
|
"showDistLogo": "显示发行版 Logo",
|
||||||
"shutdown": "关机",
|
"shutdown": "关机",
|
||||||
|
|||||||
@@ -207,6 +207,7 @@
|
|||||||
"setting": "設置",
|
"setting": "設置",
|
||||||
"sftpDlPrepare": "準備連接至服務器...",
|
"sftpDlPrepare": "準備連接至服務器...",
|
||||||
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 來刪除文件夾",
|
"sftpRmrDirSummary": "在 SFTP 中使用 `rm -r` 來刪除文件夾",
|
||||||
|
"sftpShowFoldersFirst": "排序時文件夾顯示在前",
|
||||||
"sftpSSHConnected": "SFTP 已連接...",
|
"sftpSSHConnected": "SFTP 已連接...",
|
||||||
"showDistLogo": "顯示發行版 Logo",
|
"showDistLogo": "顯示發行版 Logo",
|
||||||
"shutdown": "关机",
|
"shutdown": "关机",
|
||||||
|
|||||||
@@ -855,6 +855,7 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
children: [
|
children: [
|
||||||
_buildSftpRmrDir(),
|
_buildSftpRmrDir(),
|
||||||
_buildSftpOpenLastPath(),
|
_buildSftpOpenLastPath(),
|
||||||
|
_buildSftpShowFoldersFirst(),
|
||||||
].map((e) => CardX(child: e)).toList(),
|
].map((e) => CardX(child: e)).toList(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -867,6 +868,13 @@ class _SettingPageState extends State<SettingPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _buildSftpShowFoldersFirst() {
|
||||||
|
return ListTile(
|
||||||
|
title: Text(l10n.sftpShowFoldersFirst),
|
||||||
|
trailing: StoreSwitch(prop: _setting.sftpShowFoldersFirst),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Widget _buildNetViewType() {
|
Widget _buildNetViewType() {
|
||||||
final items = NetViewType.values
|
final items = NetViewType.values
|
||||||
.map((e) => PopupMenuItem(
|
.map((e) => PopupMenuItem(
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import 'package:toolbox/data/res/logger.dart';
|
|||||||
import 'package:toolbox/data/res/misc.dart';
|
import 'package:toolbox/data/res/misc.dart';
|
||||||
import 'package:toolbox/data/res/provider.dart';
|
import 'package:toolbox/data/res/provider.dart';
|
||||||
import 'package:toolbox/data/res/store.dart';
|
import 'package:toolbox/data/res/store.dart';
|
||||||
|
import 'package:toolbox/data/store/setting.dart';
|
||||||
import 'package:toolbox/view/widget/omit_start_text.dart';
|
import 'package:toolbox/view/widget/omit_start_text.dart';
|
||||||
import 'package:toolbox/view/widget/cardx.dart';
|
import 'package:toolbox/view/widget/cardx.dart';
|
||||||
|
|
||||||
@@ -820,11 +821,14 @@ enum _SortType {
|
|||||||
;
|
;
|
||||||
|
|
||||||
List<SftpName> sort(List<SftpName> files, {bool reversed = false}) {
|
List<SftpName> sort(List<SftpName> files, {bool reversed = false}) {
|
||||||
|
var comparator = ChainComparator<SftpName>.create();
|
||||||
|
if (Stores.setting.sftpShowFoldersFirst.fetch()) {
|
||||||
|
comparator = comparator.thenTrueFirst((x) => x.attr.isDirectory);
|
||||||
|
}
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case _SortType.name:
|
case _SortType.name:
|
||||||
files.sort(
|
files.sort(
|
||||||
ChainComparator<SftpName>.create()
|
comparator
|
||||||
.thenTrueFirst((x) => x.attr.isDirectory)
|
|
||||||
.thenWithComparator(
|
.thenWithComparator(
|
||||||
(a, b) => Comparators.compareStringCaseInsensitive()(
|
(a, b) => Comparators.compareStringCaseInsensitive()(
|
||||||
a.filename, b.filename),
|
a.filename, b.filename),
|
||||||
@@ -835,8 +839,7 @@ enum _SortType {
|
|||||||
break;
|
break;
|
||||||
case _SortType.time:
|
case _SortType.time:
|
||||||
files.sort(
|
files.sort(
|
||||||
ChainComparator<SftpName>.create()
|
comparator
|
||||||
.thenTrueFirst((x) => x.attr.isDirectory)
|
|
||||||
.thenCompareBy<num>(
|
.thenCompareBy<num>(
|
||||||
(x) => x.attr.modifyTime ?? 0,
|
(x) => x.attr.modifyTime ?? 0,
|
||||||
reversed: reversed,
|
reversed: reversed,
|
||||||
@@ -846,8 +849,7 @@ enum _SortType {
|
|||||||
break;
|
break;
|
||||||
case _SortType.size:
|
case _SortType.size:
|
||||||
files.sort(
|
files.sort(
|
||||||
ChainComparator<SftpName>.create()
|
comparator
|
||||||
.thenTrueFirst((x) => x.attr.isDirectory)
|
|
||||||
.thenCompareBy<num>(
|
.thenCompareBy<num>(
|
||||||
(x) => x.attr.size ?? 0,
|
(x) => x.attr.size ?? 0,
|
||||||
reversed: reversed,
|
reversed: reversed,
|
||||||
|
|||||||
Reference in New Issue
Block a user