Skip to content

Commit

Permalink
字体设置生效
Browse files Browse the repository at this point in the history
  • Loading branch information
lyming99 committed Mar 31, 2024
1 parent 29a1f37 commit c91fd52
Show file tree
Hide file tree
Showing 23 changed files with 625 additions and 375 deletions.
24 changes: 19 additions & 5 deletions lib/app/mobile/controller/settings/mobile_settings_controller.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:wenznote/commons/mvc/controller.dart';
import 'package:wenznote/service/service_manager.dart';

const kMinimal = "minimal";
const kMedium = "medium";
const kMaximal = "maximal";

class MobileSettingsController extends ServiceManagerController {
var brightness = "system".obs;
var fontSize = "medium".obs;
Expand All @@ -17,13 +22,13 @@ class MobileSettingsController extends ServiceManagerController {
}

String get fontSizeString {
if (fontSize.value == "medium") {
if (fontSize.value == kMedium) {
return "中";
}
if (fontSize.value == "minimal") {
if (fontSize.value == kMinimal) {
return "小";
}
if (fontSize.value == "maximal") {
if (fontSize.value == kMaximal) {
return "大";
}
return "中";
Expand All @@ -32,11 +37,11 @@ class MobileSettingsController extends ServiceManagerController {
@override
void onInitState(BuildContext context) {
super.onInitState(context);
brightness.listen((text) async{
brightness.listen((text) async {
await serviceManager.configManager.saveConfig("system.brightness", text);
await serviceManager.themeManager.readConfig();
});
fontSize.listen((text) async{
fontSize.listen((text) async {
await serviceManager.configManager.saveConfig("system.fontSize", text);
});
fetchData();
Expand All @@ -48,4 +53,13 @@ class MobileSettingsController extends ServiceManagerController {
fontSize.value = await serviceManager.configManager
.readConfig("system.fontSize", "medium");
}

@override
void onDidUpdateWidget(BuildContext context, MvcController oldController) {
super.onDidUpdateWidget(context, oldController);
if (oldController is MobileSettingsController) {
brightness = oldController.brightness;
fontSize = oldController.fontSize;
}
}
}
4 changes: 2 additions & 2 deletions lib/app/mobile/view/edit/doc_edit_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class MobileDocEditController extends ServiceManagerController {
@override
void onInitState(BuildContext context) {
super.onInitState(context);
serviceManager.editService.openDocEditor(doc?.uuid ?? "");
serviceManager.editService.addOpenedDocEditor(doc?.uuid ?? "");
canUpdateTitle.value = title.value.isEmpty;
editController = YsEditController(
copyService: serviceManager.copyService,
Expand Down Expand Up @@ -88,7 +88,7 @@ class MobileDocEditController extends ServiceManagerController {
@override
void onDispose() {
super.onDispose();
serviceManager.editService.closeDocEditor(doc?.uuid ?? "");
serviceManager.editService.removeOpendDocEditor(doc?.uuid ?? "");
ysTree?.dispose();
}

Expand Down
2 changes: 2 additions & 0 deletions lib/app/windows/controller/home/win_home_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ class WinHomeController extends ServiceManagerController {

bool get isLogin => serviceManager.userService.hasLogin;

bool get isConnected => serviceManager.p2pService.connected.isTrue;

@override
void onInitState(BuildContext context) {
super.onInitState(context);
Expand Down
4 changes: 3 additions & 1 deletion lib/app/windows/routes.dart
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ class WindowsAppRoutes {
transition: Transition.rightToLeft,
transitionDuration: const Duration(milliseconds: 200),
page: () {
return ExportWidget(controller: ExportController(),);
return ExportWidget(
controller: ExportController(),
);
},
),
GetPage(
Expand Down
70 changes: 62 additions & 8 deletions lib/app/windows/view/doc/win_note_edit_tab.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:get/get.dart';
import 'package:oktoast/oktoast.dart';
import 'package:wenznote/app/mobile/controller/settings/mobile_settings_controller.dart';
import 'package:wenznote/app/windows/outline/outline_controller.dart';
import 'package:wenznote/app/windows/outline/outline_tree.dart';
import 'package:wenznote/app/windows/theme/colors.dart';
Expand Down Expand Up @@ -40,6 +41,7 @@ class WinNoteEditTabController extends WinEditTabController {

var outlineController = OutlineController();
var showOutline = false.obs;
var editScale = 1.0;

WinNoteEditTabController({
required super.homeController,
Expand Down Expand Up @@ -74,17 +76,47 @@ class WinNoteEditTabController extends WinEditTabController {
@override
void onInitState(BuildContext context) {
super.onInitState(context);
homeController.serviceManager.editService.openDocEditor(doc.uuid ?? "");
title.value = getDocTitle();
readDoc();
homeController.serviceManager.editService
.addOpenedDocEditor(doc.uuid ?? "");
homeController.serviceManager.configManager.addListener(onConfigChanged);
fetchData();
}

@override
void onDispose() {
homeController.serviceManager.editService.closeDocEditor(doc.uuid ?? "");
homeController.serviceManager.configManager.removeListener(onConfigChanged);
homeController.serviceManager.editService
.removeOpendDocEditor(doc.uuid ?? "");
ysTree?.dispose();
}

void onConfigChanged() {
readEditScale();
}

Future<void> fetchData() async {
title.value = getDocTitle();
await readEditScale();
await readDoc();
}

Future<void> readEditScale() async {
var fontSize = await homeController.serviceManager.configManager
.readConfig("system.fontSize", kMedium);
switch (fontSize) {
case kMinimal:
editScale = 1.4;
break;
case kMedium:
editScale = 1.2;
break;
case kMaximal:
editScale = 1.0;
break;
}
notifyListeners();
}

Future<void> readDoc() async {
var doc =
await homeController.serviceManager.editService.readDoc(this.doc.uuid);
Expand Down Expand Up @@ -279,8 +311,8 @@ class WinNoteEditTab extends MvcView<WinNoteEditTabController> with Focusable {
},
child: Obx(() {
var showOutline = controller.showOutline.value;
var editWidget = EditWidget(
controller: controller.editController,
var editWidget = _EditContent(
controller: controller,
);
return Stack(
children: [
Expand Down Expand Up @@ -312,9 +344,9 @@ class WinNoteEditTab extends MvcView<WinNoteEditTabController> with Focusable {
),
),
primaryIndex: PaneIndex.two,
primaryMinSize: 300,
primaryMinSize: 100,
subMinSize: 300,
primarySize: 300,
primarySize: 240,
);
}
return editWidget;
Expand Down Expand Up @@ -633,3 +665,25 @@ class WinNoteEditTab extends MvcView<WinNoteEditTabController> with Focusable {
});
}
}

class _EditContent extends StatelessWidget {
final WinNoteEditTabController controller;

const _EditContent({Key? key, required this.controller}) : super(key: key);

@override
Widget build(BuildContext context) {
return LayoutBuilder(builder: (context, cons) {
var scale = controller.editScale;
return FittedBox(
child: SizedBox(
width: cons.maxWidth * scale,
height: cons.maxHeight * scale,
child: EditWidget(
controller: controller.editController,
),
),
);
});
}
}
43 changes: 33 additions & 10 deletions lib/app/windows/view/export/export_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:flutter/material.dart';
import 'package:future_progress_dialog/future_progress_dialog.dart';
import 'package:get/get.dart';
import 'package:go_router/go_router.dart';
import 'package:oktoast/oktoast.dart';
import 'package:wenznote/commons/util/platform_util.dart';
import 'package:wenznote/commons/util/string.dart';
import 'package:wenznote/commons/util/wdoc/wdoc.dart';
Expand All @@ -17,7 +18,6 @@ import 'package:wenznote/editor/crdt/doc_utils.dart';
import 'package:wenznote/model/note/po/doc_dir_po.dart';
import 'package:wenznote/model/note/po/doc_po.dart';
import 'package:wenznote/service/service_manager.dart';
import 'package:oktoast/oktoast.dart';

/// 导出笔记
/// 流程1:选择导出文件
Expand All @@ -29,8 +29,8 @@ class ExportController extends ServiceManagerController {

var isWdoc = false.obs;

var pathEditController = TextEditingController(text: "/output");
var nameEditController = TextEditingController(text: "output");
var pathEditController = TextEditingController(text: "./");
var nameEditController = TextEditingController(text: "未命名");
var assetsEditController = TextEditingController(text: "assets");

var isZip = false.obs;
Expand All @@ -52,7 +52,35 @@ class ExportController extends ServiceManagerController {
@override
void onInitState(BuildContext context) {
super.onInitState(context);
fetchNote();
fetchData();
}

Future<void> fetchData() async {
await fetchConfig();
await fetchNote();
}

Future<void> fetchConfig() async {
pathEditController.text =
await serviceManager.configManager.readConfig("export.path", "./");
nameEditController.text =
await serviceManager.configManager.readConfig("export.name", "未命名");
assetsEditController.text =
await serviceManager.configManager.readConfig("export.assets", "assets");
pathEditController.addListener(() {
serviceManager.configManager.saveConfig("export.path", pathEditController.text);
});
nameEditController.addListener(() {
serviceManager.configManager.saveConfig("export.name", nameEditController.text);
});
assetsEditController.addListener(() {
serviceManager.configManager.saveConfig("export.assets", assetsEditController.text);
});
}

Future<void> fetchNote() async {
var root = await fetchRootNode();
treeController.value = SelectTreeController(rootNode: root);
}

Future<SelectTreeNode> fetchRootNode() async {
Expand All @@ -73,11 +101,6 @@ class ExportController extends ServiceManagerController {
return rootNode;
}

void fetchNote() async {
var root = await fetchRootNode();
treeController.value = SelectTreeController(rootNode: root);
}

void toggleExpanded(TreeNode node) {
treeController.update((val) {
node.setExpand(!node.isExpand);
Expand Down Expand Up @@ -112,7 +135,7 @@ class ExportController extends ServiceManagerController {
if (!Directory(outputDir).existsSync() || !mode.contains("w")) {
var isOk = await showSelectFileDialog();
if (!isOk) {
Get.showSnackbar(GetSnackBar(
Get.showSnackbar(const GetSnackBar(
message: "导出异常:文件夹不存在~",
icon: Icon(
Icons.close,
Expand Down
Loading

0 comments on commit c91fd52

Please sign in to comment.