mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-30 02:59:02 +08:00
@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:gitjournal/core/note.dart';
|
import 'package:gitjournal/core/note.dart';
|
||||||
import 'package:gitjournal/editors/common.dart';
|
import 'package:gitjournal/editors/common.dart';
|
||||||
import 'package:gitjournal/editors/note_title_editor.dart';
|
import 'package:gitjournal/editors/note_title_editor.dart';
|
||||||
|
import 'package:gitjournal/settings.dart';
|
||||||
import 'package:gitjournal/widgets/note_viewer.dart';
|
import 'package:gitjournal/widgets/note_viewer.dart';
|
||||||
|
|
||||||
class MarkdownEditor extends StatefulWidget implements Editor {
|
class MarkdownEditor extends StatefulWidget implements Editor {
|
||||||
@ -51,6 +52,9 @@ class MarkdownEditorState extends State<MarkdownEditor> implements EditorState {
|
|||||||
MarkdownEditorState(this.note) {
|
MarkdownEditorState(this.note) {
|
||||||
_textController = TextEditingController(text: note.body);
|
_textController = TextEditingController(text: note.body);
|
||||||
_titleTextController = TextEditingController(text: note.title);
|
_titleTextController = TextEditingController(text: note.title);
|
||||||
|
|
||||||
|
editingMode = Settings.instance.markdownDefaultView ==
|
||||||
|
SettingsMarkdownDefaultView.Edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gitjournal/screens/settings_screen.dart';
|
||||||
import 'package:gitjournal/settings.dart';
|
import 'package:gitjournal/settings.dart';
|
||||||
import 'package:gitjournal/screens/settings_widgets.dart';
|
import 'package:gitjournal/screens/settings_widgets.dart';
|
||||||
|
|
||||||
@ -12,7 +13,7 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var settings = Settings.instance;
|
var settings = Settings.instance;
|
||||||
|
|
||||||
var body = Column(children: <Widget>[
|
var body = ListView(children: <Widget>[
|
||||||
ListPreference(
|
ListPreference(
|
||||||
title: "Default Editor",
|
title: "Default Editor",
|
||||||
currentOption: settings.defaultEditor.toPublicString(),
|
currentOption: settings.defaultEditor.toPublicString(),
|
||||||
@ -25,6 +26,20 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
setState(() {});
|
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(
|
return Scaffold(
|
||||||
@ -37,10 +52,7 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
body: Padding(
|
body: body,
|
||||||
padding: const EdgeInsets.all(16.0),
|
|
||||||
child: body,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,9 @@ class Settings {
|
|||||||
String _pseudoId;
|
String _pseudoId;
|
||||||
String get pseudoId => _pseudoId;
|
String get pseudoId => _pseudoId;
|
||||||
|
|
||||||
|
SettingsMarkdownDefaultView markdownDefaultView =
|
||||||
|
SettingsMarkdownDefaultView.Default;
|
||||||
|
|
||||||
void load(SharedPreferences pref) {
|
void load(SharedPreferences pref) {
|
||||||
gitAuthor = pref.getString("gitAuthor") ?? gitAuthor;
|
gitAuthor = pref.getString("gitAuthor") ?? gitAuthor;
|
||||||
gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail;
|
gitAuthorEmail = pref.getString("gitAuthorEmail") ?? gitAuthorEmail;
|
||||||
@ -64,6 +67,8 @@ class Settings {
|
|||||||
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
|
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
|
||||||
defaultView = SettingsFolderViewType.fromInternalString(
|
defaultView = SettingsFolderViewType.fromInternalString(
|
||||||
pref.getString("defaultView"));
|
pref.getString("defaultView"));
|
||||||
|
markdownDefaultView = SettingsMarkdownDefaultView.fromInternalString(
|
||||||
|
pref.getString("markdownDefaultView"));
|
||||||
|
|
||||||
showNoteSummary = pref.getBool("showNoteSummary") ?? showNoteSummary;
|
showNoteSummary = pref.getBool("showNoteSummary") ?? showNoteSummary;
|
||||||
folderViewHeaderType =
|
folderViewHeaderType =
|
||||||
@ -94,6 +99,8 @@ class Settings {
|
|||||||
pref.setString("sortingMode", sortingMode.toInternalString());
|
pref.setString("sortingMode", sortingMode.toInternalString());
|
||||||
pref.setString("defaultEditor", defaultEditor.toInternalString());
|
pref.setString("defaultEditor", defaultEditor.toInternalString());
|
||||||
pref.setString("defaultView", defaultView.toInternalString());
|
pref.setString("defaultView", defaultView.toInternalString());
|
||||||
|
pref.setString(
|
||||||
|
"markdownDefaultView", markdownDefaultView.toInternalString());
|
||||||
pref.setBool("showNoteSummary", showNoteSummary);
|
pref.setBool("showNoteSummary", showNoteSummary);
|
||||||
pref.setString("folderViewHeaderType", folderViewHeaderType);
|
pref.setString("folderViewHeaderType", folderViewHeaderType);
|
||||||
pref.setInt("settingsVersion", version);
|
pref.setInt("settingsVersion", version);
|
||||||
@ -124,6 +131,7 @@ class Settings {
|
|||||||
"version": version,
|
"version": version,
|
||||||
"proMode": proMode,
|
"proMode": proMode,
|
||||||
'pseudoId': pseudoId,
|
'pseudoId': pseudoId,
|
||||||
|
'markdownDefaultView': markdownDefaultView,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,3 +407,50 @@ class SettingsFolderViewType {
|
|||||||
return SettingsFolderViewType.Default;
|
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