From 9ca096094fceab83462e715d00f0bc15b21a78cc Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Thu, 10 Aug 2023 18:39:58 +0800 Subject: [PATCH] add: refresh btn on desktop --- ios/Runner.xcodeproj/project.pbxproj | 24 ++++++++++++------------ lib/data/provider/docker.dart | 12 +++++++----- lib/data/res/build_data.dart | 6 +++--- lib/view/page/docker.dart | 3 +-- lib/view/page/home.dart | 24 +++++++++++++++++------- macos/Runner.xcodeproj/project.pbxproj | 12 ++++++------ 6 files changed, 46 insertions(+), 35 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 39b98f8d..7fd50036 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -470,7 +470,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -478,7 +478,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -602,7 +602,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -610,7 +610,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -628,7 +628,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -636,7 +636,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -657,7 +657,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -670,7 +670,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -696,7 +696,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -709,7 +709,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -732,7 +732,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -745,7 +745,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/lib/data/provider/docker.dart b/lib/data/provider/docker.dart index ea5754e8..2d6553a9 100644 --- a/lib/data/provider/docker.dart +++ b/lib/data/provider/docker.dart @@ -65,6 +65,7 @@ class DockerProvider extends ChangeNotifier { if (raw.contains(_dockerNotFound)) { error = DockerErr(type: DockerErrType.notInstalled); + _logger.warning('Docker not installed: $raw'); notifyListeners(); return; } @@ -73,6 +74,7 @@ class DockerProvider extends ChangeNotifier { final segments = raw.split(seperator); if (segments.length != dockerCmds.length) { error = DockerErr(type: DockerErrType.segmentsNotMatch); + _logger.warning('Docker segments not match: ${segments.length}'); notifyListeners(); return; } @@ -94,7 +96,7 @@ class DockerProvider extends ChangeNotifier { type: DockerErrType.parsePsItem, message: '$psRaw\n-\n$e', ); - _logger.warning('parse docker ps: $psRaw', e); + _logger.warning('Parse docker ps: $psRaw', e); } finally { notifyListeners(); } @@ -106,12 +108,12 @@ class DockerProvider extends ChangeNotifier { imageLines.removeWhere((element) => element.isEmpty); if (imageLines.isNotEmpty) imageLines.removeAt(0); images = imageLines.map((e) => DockerImage.fromRawStr(e)).toList(); - } catch (e) { + } catch (e, trace) { error = DockerErr( type: DockerErrType.parseImages, message: '$imageRaw\n-\n$e', ); - _logger.warning('parse docker images: $imageRaw', e); + _logger.warning('Parse docker images: $imageRaw', e, trace); } finally { notifyListeners(); } @@ -130,12 +132,12 @@ class DockerProvider extends ChangeNotifier { if (statsLine.isEmpty) continue; item.parseStats(statsLine); } - } catch (e) { + } catch (e, trace) { error = DockerErr( type: DockerErrType.parseStats, message: '$statsRaw\n-\n$e', ); - _logger.warning('parse docker stats: $statsRaw', e); + _logger.warning('Parse docker stats: $statsRaw', e, trace); } finally { notifyListeners(); } diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 08287690..a091569e 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,8 +2,8 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 459; + static const int build = 460; static const String engine = "3.10.6"; - static const String buildAt = "2023-08-10 00:38:01.678410"; - static const int modifications = 3; + static const String buildAt = "2023-08-10 18:10:04.385080"; + static const int modifications = 5; } diff --git a/lib/view/page/docker.dart b/lib/view/page/docker.dart index 9182a492..ce9b4768 100644 --- a/lib/view/page/docker.dart +++ b/lib/view/page/docker.dart @@ -535,8 +535,7 @@ class _DockerManagePageState extends State { Future _showEditHostDialog() async { final id = widget.spi.id; - final host = - _store.fetch(id) ?? 'unix:///run/user/1000/docker.sock'; + final host = _store.fetch(id) ?? 'unix:///run/user/1000/docker.sock'; final ctrl = TextEditingController(text: host); await showRoundDialog( context: context, diff --git a/lib/view/page/home.dart b/lib/view/page/home.dart index ae9024c4..1fef3131 100644 --- a/lib/view/page/home.dart +++ b/lib/view/page/home.dart @@ -109,12 +109,8 @@ class _HomePageState extends State @override Widget build(BuildContext context) { super.build(context); - return Scaffold( - drawer: _buildDrawer(), - appBar: AppBar( - title: const Text(BuildData.name), - actions: [ - IconButton( + final actions = [ + IconButton( icon: const Icon(Icons.developer_mode, size: 23), tooltip: _s.debug, onPressed: () => AppRoute( @@ -122,7 +118,21 @@ class _HomePageState extends State 'Debug Page', ).go(context), ), - ], + ]; + if (isDesktop && _selectIndex.value == AppTab.server.index) { + actions.add( + IconButton( + icon: const Icon(Icons.refresh, size: 23), + tooltip: 'Refresh', + onPressed: () => _serverProvider.refreshData(), + ), + ); + } + return Scaffold( + drawer: _buildDrawer(), + appBar: AppBar( + title: const Text(BuildData.name), + actions: actions, ), body: PageView.builder( controller: _pageController, diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index c0974c8a..e1820c17 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -475,9 +475,9 @@ baseConfigurationReference = C1C758C41C4E208965A68933 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -490,9 +490,9 @@ baseConfigurationReference = 15AF97DF993E8968098D6EBE /* Pods-RunnerTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -505,9 +505,9 @@ baseConfigurationReference = 7CFA7DE7FABA75685DFB6948 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 459; + CURRENT_PROJECT_VERSION = 460; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0.459; + MARKETING_VERSION = 1.0.460; PRODUCT_BUNDLE_IDENTIFIER = tech.lolli.serverBox.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0;