mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-30 03:19:11 +08:00
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/editors/common.dart';
|
||||
import 'package:gitjournal/editors/note_title_editor.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/widgets/note_viewer.dart';
|
||||
|
||||
class MarkdownEditor extends StatefulWidget implements Editor {
|
||||
@ -51,6 +52,9 @@ class MarkdownEditorState extends State<MarkdownEditor> implements EditorState {
|
||||
MarkdownEditorState(this.note) {
|
||||
_textController = TextEditingController(text: note.body);
|
||||
_titleTextController = TextEditingController(text: note.title);
|
||||
|
||||
editingMode = Settings.instance.markdownDefaultView ==
|
||||
SettingsMarkdownDefaultView.Edit;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1,4 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gitjournal/screens/settings_screen.dart';
|
||||
import 'package:gitjournal/settings.dart';
|
||||
import 'package:gitjournal/screens/settings_widgets.dart';
|
||||
|
||||
@ -12,7 +13,7 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
||||
Widget build(BuildContext context) {
|
||||
var settings = Settings.instance;
|
||||
|
||||
var body = Column(children: <Widget>[
|
||||
var body = ListView(children: <Widget>[
|
||||
ListPreference(
|
||||
title: "Default Editor",
|
||||
currentOption: settings.defaultEditor.toPublicString(),
|
||||
@ -25,6 +26,20 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
SettingsHeader("Markdown Editor Settings"),
|
||||
ListPreference(
|
||||
title: "Default State",
|
||||
currentOption: settings.markdownDefaultView.toPublicString(),
|
||||
options: SettingsMarkdownDefaultView.options
|
||||
.map((f) => f.toPublicString())
|
||||
.toList(),
|
||||
onChange: (String publicStr) {
|
||||
var val = SettingsMarkdownDefaultView.fromPublicString(publicStr);
|
||||
Settings.instance.markdownDefaultView = val;
|
||||
Settings.instance.save();
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
]);
|
||||
|
||||
return Scaffold(
|
||||
@ -37,10 +52,7 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
||||
},
|
||||
),
|
||||
),
|
||||
body: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: body,
|
||||
),
|
||||
body: body,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,9 @@ class Settings {
|
||||
String _pseudoId;
|
||||
String get pseudoId => _pseudoId;
|
||||
|
||||
SettingsMarkdownDefaultView markdownDefaultView =
|
||||
SettingsMarkdownDefaultView.Default;
|
||||
|
||||
void load(SharedPreferences pref) {
|
||||
gitAuthor = pref.getString("gitAuthor") ?? gitAuthor;
|
||||
gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail;
|
||||
@ -64,6 +67,8 @@ class Settings {
|
||||
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
|
||||
defaultView = SettingsFolderViewType.fromInternalString(
|
||||
pref.getString("defaultView"));
|
||||
markdownDefaultView = SettingsMarkdownDefaultView.fromInternalString(
|
||||
pref.getString("markdownDefaultView"));
|
||||
|
||||
showNoteSummary = pref.getBool("showNoteSummary") ?? showNoteSummary;
|
||||
folderViewHeaderType =
|
||||
@ -94,6 +99,8 @@ class Settings {
|
||||
pref.setString("sortingMode", sortingMode.toInternalString());
|
||||
pref.setString("defaultEditor", defaultEditor.toInternalString());
|
||||
pref.setString("defaultView", defaultView.toInternalString());
|
||||
pref.setString(
|
||||
"markdownDefaultView", markdownDefaultView.toInternalString());
|
||||
pref.setBool("showNoteSummary", showNoteSummary);
|
||||
pref.setString("folderViewHeaderType", folderViewHeaderType);
|
||||
pref.setInt("settingsVersion", version);
|
||||
@ -124,6 +131,7 @@ class Settings {
|
||||
"version": version,
|
||||
"proMode": proMode,
|
||||
'pseudoId': pseudoId,
|
||||
'markdownDefaultView': markdownDefaultView,
|
||||
};
|
||||
}
|
||||
|
||||
@ -399,3 +407,50 @@ class SettingsFolderViewType {
|
||||
return SettingsFolderViewType.Default;
|
||||
}
|
||||
}
|
||||
|
||||
class SettingsMarkdownDefaultView {
|
||||
static const Edit = SettingsMarkdownDefaultView("Edit");
|
||||
static const View = SettingsMarkdownDefaultView("View");
|
||||
static const Default = Edit;
|
||||
|
||||
final String _str;
|
||||
const SettingsMarkdownDefaultView(this._str);
|
||||
|
||||
String toInternalString() {
|
||||
return _str;
|
||||
}
|
||||
|
||||
String toPublicString() {
|
||||
return _str;
|
||||
}
|
||||
|
||||
static const options = <SettingsMarkdownDefaultView>[
|
||||
Edit,
|
||||
View,
|
||||
];
|
||||
|
||||
static SettingsMarkdownDefaultView fromInternalString(String str) {
|
||||
for (var opt in options) {
|
||||
if (opt.toInternalString() == str) {
|
||||
return opt;
|
||||
}
|
||||
}
|
||||
return Default;
|
||||
}
|
||||
|
||||
static SettingsMarkdownDefaultView fromPublicString(String str) {
|
||||
for (var opt in options) {
|
||||
if (opt.toPublicString() == str) {
|
||||
return opt;
|
||||
}
|
||||
}
|
||||
return Default;
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
assert(
|
||||
false, "SettingsMarkdownDefaultView toString should never be called");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user