mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
feat: record window position (#692)
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:fl_lib/fl_lib.dart';
|
||||
import 'package:server_box/data/model/app/menu/server_func.dart';
|
||||
import 'package:server_box/data/model/app/server_detail_card.dart';
|
||||
@@ -223,9 +225,14 @@ class SettingStore extends HiveStore {
|
||||
|
||||
late final betaTest = propertyDefault('betaTest', false);
|
||||
|
||||
/// If it's empty, skip change window size.
|
||||
/// Format: {width}x{height}
|
||||
late final windowSize = propertyDefault('windowSize', '');
|
||||
/// For desktop only.
|
||||
/// Record the position and size of the window.
|
||||
late final windowState = property<WindowState>(
|
||||
'windowState',
|
||||
fromStr: (jsonStr) =>
|
||||
WindowState.fromJson(jsonDecode(jsonStr) as Map<String, dynamic>),
|
||||
toStr: (state) => state == null ? null : jsonEncode(state.toJson()),
|
||||
);
|
||||
|
||||
late final introVer = propertyDefault('introVer', 0);
|
||||
|
||||
|
||||
@@ -53,15 +53,7 @@ Future<void> _initApp() async {
|
||||
await Paths.init(BuildData.name, bakName: 'srvbox_bak.json');
|
||||
await _initData();
|
||||
_setupDebug();
|
||||
|
||||
final windowSize = Stores.setting.windowSize;
|
||||
final hideTitleBar = Stores.setting.hideTitleBar.fetch();
|
||||
await SystemUIs.initDesktopWindow(
|
||||
hideTitleBar: hideTitleBar,
|
||||
size: windowSize.fetch().toSize(),
|
||||
listener: WindowSizeListener(windowSize),
|
||||
);
|
||||
|
||||
_initWindow();
|
||||
FontUtils.loadFrom(Stores.setting.fontPath.fetch());
|
||||
|
||||
_doPlatformRelated();
|
||||
@@ -130,3 +122,16 @@ Future<void> _doVersionRelated() async {
|
||||
Stores.setting.lastVer.put(newVer);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _initWindow() async {
|
||||
if (!isDesktop) return;
|
||||
final windowStateProp = Stores.setting.windowState;
|
||||
final windowState = windowStateProp.fetch();
|
||||
final hideTitleBar = Stores.setting.hideTitleBar.fetch();
|
||||
await SystemUIs.initDesktopWindow(
|
||||
hideTitleBar: hideTitleBar,
|
||||
size: windowState?.size,
|
||||
position: windowState?.position,
|
||||
listener: WindowStateListener(windowStateProp),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ dependencies:
|
||||
fl_lib:
|
||||
git:
|
||||
url: https://github.com/lppcg/fl_lib
|
||||
ref: v1.0.236
|
||||
ref: v1.0.243
|
||||
flutter_distributor: ^0.4.5
|
||||
|
||||
dependency_overrides:
|
||||
|
||||
Reference in New Issue
Block a user