MarkdownEditor: Change default mode to "Last Used"

Add an extra option of Last Used, along with Edit / View.
This commit is contained in:
Vishesh Handa
2020-07-06 17:14:07 +02:00
parent a86843a2b5
commit c31edc3b57
2 changed files with 33 additions and 3 deletions

View File

@ -67,8 +67,14 @@ class MarkdownEditorState extends State<MarkdownEditor> implements EditorState {
_titleTextController = TextEditingController(text: note.title);
_oldText = note.body;
editingMode = Settings.instance.markdownDefaultView ==
SettingsMarkdownDefaultView.Edit;
var settings = Settings.instance;
if (settings.markdownDefaultView == SettingsMarkdownDefaultView.LastUsed) {
editingMode =
settings.markdownLastUsedView == SettingsMarkdownDefaultView.Edit;
} else {
editingMode =
settings.markdownDefaultView == SettingsMarkdownDefaultView.Edit;
}
}
@override
@ -138,6 +144,17 @@ class MarkdownEditorState extends State<MarkdownEditor> implements EditorState {
void _switchMode() {
setState(() {
editingMode = !editingMode;
switch (editingMode) {
case true:
Settings.instance.markdownLastUsedView =
SettingsMarkdownDefaultView.Edit;
break;
case false:
Settings.instance.markdownLastUsedView =
SettingsMarkdownDefaultView.View;
break;
}
Settings.instance.save();
_updateNote();
});
}

View File

@ -45,6 +45,8 @@ class Settings {
SettingsMarkdownDefaultView markdownDefaultView =
SettingsMarkdownDefaultView.Default;
SettingsMarkdownDefaultView markdownLastUsedView =
SettingsMarkdownDefaultView.Edit;
String imageLocationSpec = "."; // . means the same folder
String debugLogLevel = 'v';
@ -79,8 +81,11 @@ class Settings {
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
defaultView = SettingsFolderViewType.fromInternalString(
pref.getString("defaultView"));
markdownDefaultView = SettingsMarkdownDefaultView.fromInternalString(
pref.getString("markdownDefaultView"));
markdownLastUsedView = SettingsMarkdownDefaultView.fromInternalString(
pref.getString("markdownLastUsedView"));
showNoteSummary = pref.getBool("showNoteSummary") ?? showNoteSummary;
folderViewHeaderType =
@ -151,6 +156,11 @@ class Settings {
"markdownDefaultView",
markdownDefaultView.toInternalString(),
defaultSet.markdownDefaultView.toInternalString());
_setString(
pref,
"markdownLastUsedView",
markdownLastUsedView.toInternalString(),
defaultSet.markdownLastUsedView.toInternalString());
_setBool(
pref, "showNoteSummary", showNoteSummary, defaultSet.showNoteSummary);
_setString(pref, "folderViewHeaderType", folderViewHeaderType,
@ -223,6 +233,7 @@ class Settings {
'proExpirationDate': proExpirationDate,
'pseudoId': pseudoId,
'markdownDefaultView': markdownDefaultView.toInternalString(),
'markdownLastUsedView': markdownLastUsedView.toInternalString(),
'homeScreen': homeScreen.toInternalString(),
'imageLocationSpec': imageLocationSpec,
'debugLogLevel': debugLogLevel,
@ -508,7 +519,8 @@ class SettingsFolderViewType {
class SettingsMarkdownDefaultView {
static const Edit = SettingsMarkdownDefaultView("Edit");
static const View = SettingsMarkdownDefaultView("View");
static const Default = Edit;
static const LastUsed = SettingsMarkdownDefaultView("Last Used");
static const Default = LastUsed;
final String _str;
const SettingsMarkdownDefaultView(this._str);
@ -524,6 +536,7 @@ class SettingsMarkdownDefaultView {
static const options = <SettingsMarkdownDefaultView>[
Edit,
View,
LastUsed,
];
static SettingsMarkdownDefaultView fromInternalString(String str) {