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:fl_lib/fl_lib.dart';
|
||||||
import 'package:server_box/data/model/app/menu/server_func.dart';
|
import 'package:server_box/data/model/app/menu/server_func.dart';
|
||||||
import 'package:server_box/data/model/app/server_detail_card.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);
|
late final betaTest = propertyDefault('betaTest', false);
|
||||||
|
|
||||||
/// If it's empty, skip change window size.
|
/// For desktop only.
|
||||||
/// Format: {width}x{height}
|
/// Record the position and size of the window.
|
||||||
late final windowSize = propertyDefault('windowSize', '');
|
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);
|
late final introVer = propertyDefault('introVer', 0);
|
||||||
|
|
||||||
|
|||||||
@@ -53,15 +53,7 @@ Future<void> _initApp() async {
|
|||||||
await Paths.init(BuildData.name, bakName: 'srvbox_bak.json');
|
await Paths.init(BuildData.name, bakName: 'srvbox_bak.json');
|
||||||
await _initData();
|
await _initData();
|
||||||
_setupDebug();
|
_setupDebug();
|
||||||
|
_initWindow();
|
||||||
final windowSize = Stores.setting.windowSize;
|
|
||||||
final hideTitleBar = Stores.setting.hideTitleBar.fetch();
|
|
||||||
await SystemUIs.initDesktopWindow(
|
|
||||||
hideTitleBar: hideTitleBar,
|
|
||||||
size: windowSize.fetch().toSize(),
|
|
||||||
listener: WindowSizeListener(windowSize),
|
|
||||||
);
|
|
||||||
|
|
||||||
FontUtils.loadFrom(Stores.setting.fontPath.fetch());
|
FontUtils.loadFrom(Stores.setting.fontPath.fetch());
|
||||||
|
|
||||||
_doPlatformRelated();
|
_doPlatformRelated();
|
||||||
@@ -130,3 +122,16 @@ Future<void> _doVersionRelated() async {
|
|||||||
Stores.setting.lastVer.put(newVer);
|
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:
|
fl_lib:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/lppcg/fl_lib
|
url: https://github.com/lppcg/fl_lib
|
||||||
ref: v1.0.236
|
ref: v1.0.243
|
||||||
flutter_distributor: ^0.4.5
|
flutter_distributor: ^0.4.5
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
|
|||||||
Reference in New Issue
Block a user