From d2e463b0ce11b83f819d857f3b40dfab0ffa00a7 Mon Sep 17 00:00:00 2001 From: deathblade666 Date: Mon, 2 Sep 2024 14:16:27 -0400 Subject: [PATCH] Fixed toolbar toggle --- lib/pages/menu.dart | 46 +++++++++++++++++++++++++++++++++++---- lib/pages/split_edit.dart | 17 +++++++++++++-- 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/lib/pages/menu.dart b/lib/pages/menu.dart index 47c0147..fad6c0c 100644 --- a/lib/pages/menu.dart +++ b/lib/pages/menu.dart @@ -20,6 +20,7 @@ import 'package:shared_preferences/shared_preferences.dart'; bool fullEdit = true; bool WordCount = false; bool syncScrolling = false; + bool enableToolBar = false; const List list = ['system', 'dark', 'light',]; String dropDownValue = list.first; @@ -37,6 +38,7 @@ class Menu extends StatefulWidget { required this.onfileName, required this.onThemeSelected, required this.onsyncScrollEnable, + required this.onEnableToolBar, super.key } ); @@ -46,6 +48,7 @@ class Menu extends StatefulWidget { final void Function(bool WordCount) onEnableWordCount; void Function(String? selectedTheme) onThemeSelected; final void Function(bool syncScrolling) onsyncScrollEnable; + final void Function(bool enableToolBar) onEnableToolBar; TextEditingController openFile = TextEditingController(); final String inputText; int wordCount; @@ -66,6 +69,7 @@ class Menu extends StatefulWidget { SharedPreferences prefs; bool switchInputvalue = false; bool switchSyncScroll = false; + bool enableToolBar = false; void closeApp({bool? animated}) async { prefs.reload(); @@ -140,10 +144,6 @@ class Menu extends StatefulWidget { ); } } - - - - }, child: const Text("Save"), ), @@ -167,6 +167,8 @@ class Menu extends StatefulWidget { widget.onsyncScrollEnable, prefs, switchInputvalue, + enableToolBar, + widget.onEnableToolBar, ) ); } @@ -186,10 +188,12 @@ class optionsDialog extends StatefulWidget { final Function onEnableWordCount; final Function onModeToggle; final Function onsyncScrollEnable; + final Function onEnableToolBar; bool switchModeValue; bool switchWCValue; bool switchInputvalue; bool switchSyncScroll; + bool enableToolBar; optionsDialog( this.switchSyncScroll, @@ -200,6 +204,8 @@ class optionsDialog extends StatefulWidget { this.onsyncScrollEnable, this.prefs, this.switchInputvalue, + this.enableToolBar, + this.onEnableToolBar, { required this.onThemeSelected, super.key @@ -228,6 +234,19 @@ class optionsDialogState extends State { prefs.setBool("ViewMode", fullEdit); } + void enableToolbar(value) { + prefs.reload(); + bool? toolbar = prefs.getBool('enableToolbar'); + if (toolbar == true){ + enableToolBar = true; + } + if (toolbar == false) { + enableToolBar = false; + } + widget.onEnableToolBar(enableToolBar); + prefs.setBool('enableToolbar', enableToolBar); + } + void showWordCount(value) { prefs.reload(); bool? enableCount = prefs.getBool('DisplayWordCount'); @@ -266,6 +285,7 @@ class optionsDialogState extends State { bool? retainInput = prefs.getBool('RetainInputSwitch'); String? selectedTheme = prefs.getString('selectedTheme'); bool? syncScroll = prefs.getBool('RetainsyncSwitch'); + bool? toolbar = prefs.getBool('enableToolbar'); setState(() { if (viewmodeValue != null) { widget.switchModeValue = viewmodeValue; @@ -282,6 +302,9 @@ class optionsDialogState extends State { if (syncScroll != null){ widget.switchSyncScroll = syncScroll; } + if (toolbar != null) { + widget.enableToolBar = toolbar; + } }); } @@ -363,6 +386,21 @@ class optionsDialogState extends State { }, ) ), + PopupMenuItem( + child: SwitchListTile( + value: widget.enableToolBar, + title: const Text("Enable Markdown Toolbar"), + subtitle: const Text("Enables a markdown Toolbar"), + activeColor: Theme.of(context).colorScheme.primary, + onChanged: (bool value) async { + setState(() { + widget.enableToolBar = value; + prefs.setBool("enableToolbar", value); + }); + enableToolbar(value); + } + ) + ), PopupMenuItem( child: SwitchListTile( title: const Text("Synchronized Scrolling"), diff --git a/lib/pages/split_edit.dart b/lib/pages/split_edit.dart index ba57d73..364c359 100644 --- a/lib/pages/split_edit.dart +++ b/lib/pages/split_edit.dart @@ -30,6 +30,7 @@ class editorState extends State { LinkedScrollControllerGroup scrollGroup = LinkedScrollControllerGroup(); ScrollController scrollRenderController = ScrollController(); ScrollController userInputController = ScrollController(); + bool toolBarToggle = enableToolBar; @override void initState() { @@ -43,6 +44,7 @@ class editorState extends State { bool? WordCount = prefs.getBool('enableCount'); String? priorInput = prefs.getString('InputText'); bool? syncScrolling = prefs.getBool('RetainsyncSwitch'); + bool? enableToolBar = prefs.getBool('enableToolbar'); if (WordCount != null){ enableWordCount(WordCount); } @@ -56,6 +58,9 @@ class editorState extends State { if (syncScrolling != null){ syncScroll(syncScrolling); } + if (enableToolBar != null) { + toggleToolBar(enableToolBar); + } } void syncScroll (syncScrolling){ @@ -123,6 +128,13 @@ class editorState extends State { void setTheme(selectedTheme){ widget.onThemeSelect(selectedTheme); } + + void toggleToolBar(enableToolBar){ + setState(() { + toolBarToggle = enableToolBar; + }); + + } @override Widget build(BuildContext context) { @@ -145,7 +157,7 @@ class editorState extends State { ), ), Visibility( - visible: true, + visible: toolBarToggle, child: MarkdownToolbar( useIncludedTextField: false, controller: openFile, @@ -187,7 +199,8 @@ class editorState extends State { onModeToggle: switchViewMode, wordCount, onEnableWordCount: enableWordCount, onThemeSelected: setTheme, - onsyncScrollEnable: syncScroll,), + onsyncScrollEnable: syncScroll, + onEnableToolBar: toggleToolBar,), const Padding(padding: EdgeInsets.only(right: 15)), ], ),