From 153bfc191d0aba0c86efd508bd94ff796e21d19d Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Mon, 25 Sep 2023 19:47:20 +0800 Subject: [PATCH] opt.: sftp `rename` --- ios/Runner.xcodeproj/project.pbxproj | 36 +++++++++++++------------- lib/data/res/build_data.dart | 8 +++--- lib/view/page/editor.dart | 36 ++++++++++++++------------ lib/view/page/home.dart | 2 +- lib/view/page/setting/ios.dart | 2 +- lib/view/page/storage/local.dart | 6 ++--- lib/view/page/storage/sftp.dart | 2 +- lib/view/widget/omit_start_text.dart | 2 +- macos/Runner.xcodeproj/project.pbxproj | 12 ++++----- 9 files changed, 53 insertions(+), 53 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 21f917e2..771e5cc4 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -586,7 +586,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -596,7 +596,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -720,7 +720,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -730,7 +730,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -748,7 +748,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -758,7 +758,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -779,7 +779,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -792,7 +792,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -818,7 +818,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -831,7 +831,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -854,7 +854,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -867,7 +867,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -890,7 +890,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -902,7 +902,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -931,7 +931,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -943,7 +943,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -969,7 +969,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -981,7 +981,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 4051ac6f..48e4bf40 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 575; + static const int build = 577; static const String engine = "3.13.5"; - static const String buildAt = "2023-09-24 15:59:57"; - static const int modifications = 13; - static const int script = 18; + static const String buildAt = "2023-09-25 18:52:38"; + static const int modifications = 3; + static const int script = 19; } diff --git a/lib/view/page/editor.dart b/lib/view/page/editor.dart index 867ae6cb..3cb8105d 100644 --- a/lib/view/page/editor.dart +++ b/lib/view/page/editor.dart @@ -100,23 +100,6 @@ class _EditorPageState extends State { backgroundColor: _codeTheme['root']?.backgroundColor, appBar: _buildAppBar(), body: _buildBody(), - floatingActionButton: FloatingActionButton( - child: const Icon(Icons.done), - onPressed: () async { - // If path is not null, then it's a file editor - // save the text and return true to pop the page - if (widget.path != null) { - context.showLoadingDialog(); - await File(widget.path!).writeAsString(_controller.text); - context.pop(); - context.pop(true); - return; - } - // else it's a text editor - // return the text to the previous page - context.pop(_controller.text); - }, - ), ); } @@ -130,6 +113,7 @@ class _EditorPageState extends State { actions: [ PopupMenuButton( icon: const Icon(Icons.language), + tooltip: l10n.language, onSelected: (value) { _controller.language = Highlights.all[value]; _langCode = value; @@ -143,6 +127,24 @@ class _EditorPageState extends State { ); }).toList(); }, + ), + IconButton( + icon: const Icon(Icons.save), + tooltip: l10n.save, + onPressed: () async { + // If path is not null, then it's a file editor + // save the text and return true to pop the page + if (widget.path != null) { + context.showLoadingDialog(); + await File(widget.path!).writeAsString(_controller.text); + context.pop(); + context.pop(true); + return; + } + // else it's a text editor + // return the text to the previous page + context.pop(_controller.text); + }, ) ], ); diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index 7fce618f..7e3ce951 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -366,7 +366,7 @@ class _HomePageState extends State text: text, langCode: 'json', title: l10n.setting, - ).go(context); + ).go(context); if (result == null) { return; } diff --git a/lib/view/page/setting/ios.dart b/lib/view/page/setting/ios.dart index 1a250b76..f3517de4 100644 --- a/lib/view/page/setting/ios.dart +++ b/lib/view/page/setting/ios.dart @@ -127,7 +127,7 @@ class _IOSSettingsPageState extends State { text: text, langCode: 'json', title: 'Watch app', - ).go(context); + ).go(context); if (result == null) { return; } diff --git a/lib/view/page/storage/local.dart b/lib/view/page/storage/local.dart index ff079114..a560806f 100644 --- a/lib/view/page/storage/local.dart +++ b/lib/view/page/storage/local.dart @@ -245,10 +245,8 @@ class _LocalStoragePageState extends State { } final result = await AppRoute.editor( path: file.absolute.path, - ).go(context); - final f = File(file.absolute.path); - if (result != null) { - f.writeAsString(result); + ).go(context); + if (result == true) { context.showSnackBar(l10n.saved); setState(() {}); } diff --git a/lib/view/page/storage/sftp.dart b/lib/view/page/storage/sftp.dart index 9796762a..f0acc791 100644 --- a/lib/view/page/storage/sftp.dart +++ b/lib/view/page/storage/sftp.dart @@ -540,7 +540,7 @@ class _SftpPageState extends State with AfterLayoutMixin { void _rename(SftpName file) { context.pop(); - final textController = TextEditingController(); + final textController = TextEditingController(text: file.filename); context.showRoundDialog( title: Text(l10n.rename), child: Input( diff --git a/lib/view/widget/omit_start_text.dart b/lib/view/widget/omit_start_text.dart index fb16ad9c..3ed707f4 100644 --- a/lib/view/widget/omit_start_text.dart +++ b/lib/view/widget/omit_start_text.dart @@ -49,4 +49,4 @@ class OmitStartText extends StatelessWidget { ); }); } -} \ No newline at end of file +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 42485205..17369b90 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -476,9 +476,9 @@ baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -491,9 +491,9 @@ baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -506,9 +506,9 @@ baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 575; + CURRENT_PROJECT_VERSION = 577; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.575; + MARKETING_VERSION = 1.0.577; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0;