From f9aadc6b0f03edbb60cb042ed5766749e4c5af3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lollipopkit=F0=9F=8F=B3=EF=B8=8F=E2=80=8D=E2=9A=A7?= =?UTF-8?q?=EF=B8=8F?= <10864310+lollipopkit@users.noreply.github.com> Date: Sun, 28 Jul 2024 20:26:08 +0800 Subject: [PATCH] opt.: `Btn` --- ios/Runner.xcodeproj/project.pbxproj | 36 ++++++++++++------------ lib/data/res/build_data.dart | 4 +-- lib/view/page/pve.dart | 39 +++++++++++++------------- lib/view/page/server/tab.dart | 24 ++++++++-------- lib/view/page/ssh/tab.dart | 28 ++++++++++-------- macos/Runner.xcodeproj/project.pbxproj | 12 ++++---- pubspec.lock | 4 +-- pubspec.yaml | 4 +-- 8 files changed, 78 insertions(+), 73 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 344eab61..7e311c82 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -690,7 +690,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -700,7 +700,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -826,7 +826,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -836,7 +836,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -854,7 +854,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -864,7 +864,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -885,7 +885,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -898,7 +898,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -924,7 +924,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -937,7 +937,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -960,7 +960,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -973,7 +973,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -996,7 +996,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1008,7 +1008,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -1037,7 +1037,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1049,7 +1049,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -1075,7 +1075,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -1087,7 +1087,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; 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 e103216a..878a1a6a 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,6 +2,6 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 1034; - static const int script = 54; + static const int build = 1038; + static const int script = 55; } diff --git a/lib/view/page/pve.dart b/lib/view/page/pve.dart index 7ab625a4..46865719 100644 --- a/lib/view/page/pve.dart +++ b/lib/view/page/pve.dart @@ -59,9 +59,9 @@ final class _PvePageState extends State { listenable: _pve.err, builder: (val) => val == null ? UIs.placeholder - : IconBtn( - icon: Icons.refresh, - onTap: () { + : Btn.icon( + icon: const Icon(Icons.refresh), + onTap: (_) { _pve.err.value = null; _pve.list(); _initRefreshTimer(); @@ -393,27 +393,26 @@ final class _PvePageState extends State { } Widget _buildCtrlBtns(PveCtrlIface item) { + const pad = EdgeInsets.symmetric(horizontal: 7, vertical: 5); if (!item.available) { - return IconBtn( - icon: Icons.play_arrow, - color: Colors.grey, - onTap: () => _onCtrl(_pve.start, l10n.start, item)); + return Btn.icon( + icon: const Icon(Icons.play_arrow, color: Colors.grey), + onTap: (_) => _onCtrl(_pve.start, l10n.start, item)); } return Row( children: [ - IconBtn( - icon: Icons.stop, - color: Colors.grey, - onTap: () => _onCtrl(_pve.stop, l10n.stop, item)), - IconBtn( - icon: Icons.refresh, - color: Colors.grey, - onTap: () => _onCtrl(_pve.reboot, l10n.reboot, item)), - IconBtn( - icon: Icons.power_off, - color: Colors.grey, - onTap: () => _onCtrl(_pve.shutdown, l10n.shutdown, item), - ), + Btn.icon( + icon: const Icon(Icons.stop, color: Colors.grey, size: 20), + padding: pad, + onTap: (_) => _onCtrl(_pve.stop, l10n.stop, item)), + Btn.icon( + icon: const Icon(Icons.refresh, color: Colors.grey, size: 20), + padding: pad, + onTap: (_) => _onCtrl(_pve.reboot, l10n.reboot, item)), + Btn.icon( + icon: const Icon(Icons.power_off, color: Colors.grey, size: 20), + padding: pad, + onTap: (_) => _onCtrl(_pve.shutdown, l10n.shutdown, item)), ], ); } diff --git a/lib/view/page/server/tab.dart b/lib/view/page/server/tab.dart index b3cdbb36..b1cf1d2f 100644 --- a/lib/view/page/server/tab.dart +++ b/lib/view/page/server/tab.dart @@ -349,8 +349,8 @@ class _ServerPageState extends State List _buildFlippedCard(Server srv) { final children = [ - IconTextBtn( - onPressed: () => _askFor( + Btn.column( + onTap: (_) => _askFor( func: () async { if (Stores.setting.showSuspendTip.fetch()) { await context.showRoundDialog( @@ -368,11 +368,11 @@ class _ServerPageState extends State typ: l10n.suspend, name: srv.spi.name, ), - icon: Icons.stop, + icon: const Icon(Icons.stop), text: l10n.suspend, ), - IconTextBtn( - onPressed: () => _askFor( + Btn.column( + onTap: (_) => _askFor( func: () => srv.client?.execWithPwd( ShellFunc.shutdown.exec, context: context, @@ -381,11 +381,11 @@ class _ServerPageState extends State typ: l10n.shutdown, name: srv.spi.name, ), - icon: Icons.power_off, + icon: const Icon(Icons.power_off), text: l10n.shutdown, ), - IconTextBtn( - onPressed: () => _askFor( + Btn.column( + onTap: (_) => _askFor( func: () => srv.client?.execWithPwd( ShellFunc.reboot.exec, context: context, @@ -394,12 +394,12 @@ class _ServerPageState extends State typ: l10n.reboot, name: srv.spi.name, ), - icon: Icons.restart_alt, + icon: const Icon(Icons.restart_alt), text: l10n.reboot, ), - IconTextBtn( - onPressed: () => AppRoutes.serverEdit(spi: srv.spi).go(context), - icon: Icons.edit, + Btn.column( + onTap: (_) => AppRoutes.serverEdit(spi: srv.spi).go(context), + icon: const Icon(Icons.edit), text: l10n.edit, ) ]; diff --git a/lib/view/page/ssh/tab.dart b/lib/view/page/ssh/tab.dart index 61bb1bd0..cb467a03 100644 --- a/lib/view/page/ssh/tab.dart +++ b/lib/view/page/ssh/tab.dart @@ -231,7 +231,7 @@ final class _TabBar extends StatelessWidget implements PreferredSizeWidget { builder: () { return ListView.separated( scrollDirection: Axis.horizontal, - padding: const EdgeInsets.symmetric(horizontal: 11, vertical: 5), + padding: const EdgeInsets.symmetric(horizontal: 7, vertical: 5), itemCount: names.length, itemBuilder: (_, idx) => _buillItem(idx), separatorBuilder: (_, __) => Padding( @@ -270,32 +270,38 @@ final class _TabBar extends StatelessWidget implements PreferredSizeWidget { child = AnimatedContainer( width: selected ? 90 : 50, duration: Durations.medium3, + padding: selected ? const EdgeInsets.symmetric(horizontal: 7) : null, curve: Curves.fastEaseInToSlowEaseOut, child: switch (selected) { true => Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.start, children: [ - SizedBox(width: 55, child: text), if (selected) FadeIn( - child: IconBtn( - icon: MingCute.close_circle_fill, - color: color, - onTap: () => onClose(name), + child: Btn.icon( + icon: Icon( + MingCute.close_circle_fill, + color: color, + size: 17, + ), + onTap: (_) => onClose(name), ), ), + const Spacer(), + SizedBox(width: 50, child: text), ], ), - false => Center(child: text), + false => Align( + alignment: Alignment.centerRight, + child: text, + ), }, - ).paddingOnly(left: 3, right: 3); + ); } return InkWell( borderRadius: BorderRadius.circular(13), onTap: () => onTap(idx), child: child, - ).paddingSymmetric(horizontal: 13); + ).paddingSymmetric(horizontal: 7); } } diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 0ea4ca99..52d21983 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -471,7 +471,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -481,7 +481,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -608,7 +608,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Server Box"; @@ -618,7 +618,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -638,7 +638,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1034; + CURRENT_PROJECT_VERSION = 1038; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6; INFOPLIST_FILE = Runner/Info.plist; @@ -649,7 +649,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; - MARKETING_VERSION = 1.0.1034; + MARKETING_VERSION = 1.0.1038; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "Server Box"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/pubspec.lock b/pubspec.lock index 4c0b082a..bc6da8a2 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -385,8 +385,8 @@ packages: dependency: "direct main" description: path: "." - ref: "v1.0.94" - resolved-ref: b4e431b7131605fa266be80a016165562b5437eb + ref: "v1.0.96" + resolved-ref: "585ac0566cae83a54c035dc3346a80356e68e528" url: "https://github.com/lppcg/fl_lib" source: git version: "0.0.1" diff --git a/pubspec.yaml b/pubspec.yaml index 182b9a7a..246b1e21 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: server_box description: server status & toolbox app. publish_to: 'none' -version: 1.0.1034+1034 +version: 1.0.1038+1038 environment: sdk: ">=3.0.0" @@ -62,7 +62,7 @@ dependencies: fl_lib: git: url: https://github.com/lppcg/fl_lib - ref: v1.0.94 + ref: v1.0.96 dependency_overrides: # dartssh2: