mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 18:03:14 +08:00
JournalEditor: Allow a default folder to be specified
This way all Journal Entries can go to that folder by default. It makes adding a new journal entry easier. Related to #118
This commit is contained in:
@ -209,7 +209,16 @@ class _FolderViewState extends State<FolderView> {
|
|||||||
NotesFolderFS fsFolder = widget.notesFolder.fsFolder;
|
NotesFolderFS fsFolder = widget.notesFolder.fsFolder;
|
||||||
if (widget.notesFolder.name != fsFolder.name) {
|
if (widget.notesFolder.name != fsFolder.name) {
|
||||||
var spec = Settings.instance.defaultNewNoteFolderSpec;
|
var spec = Settings.instance.defaultNewNoteFolderSpec;
|
||||||
fsFolder = fsFolder.getFolderWithSpec(spec);
|
var journalSpec = Settings.instance.journalEditordefaultNewNoteFolderSpec;
|
||||||
|
|
||||||
|
switch (editorType) {
|
||||||
|
case EditorType.Journal:
|
||||||
|
fsFolder = fsFolder.getFolderWithSpec(journalSpec);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fsFolder = fsFolder.getFolderWithSpec(spec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var route = MaterialPageRoute(
|
var route = MaterialPageRoute(
|
||||||
|
@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:gitjournal/screens/settings_screen.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';
|
||||||
|
import 'package:gitjournal/core/notes_folder_fs.dart';
|
||||||
|
import 'package:gitjournal/widgets/folder_selection_dialog.dart';
|
||||||
|
|
||||||
class SettingsEditorsScreen extends StatefulWidget {
|
class SettingsEditorsScreen extends StatefulWidget {
|
||||||
@override
|
@override
|
||||||
@ -12,6 +14,11 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var settings = Settings.instance;
|
var settings = Settings.instance;
|
||||||
|
var defaultNewFolder =
|
||||||
|
Settings.instance.journalEditordefaultNewNoteFolderSpec;
|
||||||
|
if (defaultNewFolder.isEmpty) {
|
||||||
|
defaultNewFolder = "Root Folder";
|
||||||
|
}
|
||||||
|
|
||||||
var body = ListView(children: <Widget>[
|
var body = ListView(children: <Widget>[
|
||||||
ListPreference(
|
ListPreference(
|
||||||
@ -26,7 +33,7 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
SettingsHeader("Markdown Editor Settings"),
|
SettingsHeader("Markdown Editor"),
|
||||||
ListPreference(
|
ListPreference(
|
||||||
title: "Default State",
|
title: "Default State",
|
||||||
currentOption: settings.markdownDefaultView.toPublicString(),
|
currentOption: settings.markdownDefaultView.toPublicString(),
|
||||||
@ -40,6 +47,22 @@ class SettingsEditorsScreenState extends State<SettingsEditorsScreen> {
|
|||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
SettingsHeader("Journal Editor"),
|
||||||
|
ListTile(
|
||||||
|
title: const Text("Default Folder"),
|
||||||
|
subtitle: Text(defaultNewFolder),
|
||||||
|
onTap: () async {
|
||||||
|
var destFolder = await showDialog<NotesFolderFS>(
|
||||||
|
context: context,
|
||||||
|
builder: (context) => FolderSelectionDialog(),
|
||||||
|
);
|
||||||
|
|
||||||
|
Settings.instance.journalEditordefaultNewNoteFolderSpec =
|
||||||
|
destFolder != null ? destFolder.pathSpec() : "";
|
||||||
|
Settings.instance.save();
|
||||||
|
setState(() {});
|
||||||
|
},
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
@ -25,6 +25,7 @@ class Settings {
|
|||||||
String yamlModifiedKey = "modified";
|
String yamlModifiedKey = "modified";
|
||||||
bool yamlHeaderEnabled = true;
|
bool yamlHeaderEnabled = true;
|
||||||
String defaultNewNoteFolderSpec = "";
|
String defaultNewNoteFolderSpec = "";
|
||||||
|
String journalEditordefaultNewNoteFolderSpec = "";
|
||||||
|
|
||||||
RemoteSyncFrequency remoteSyncFrequency = RemoteSyncFrequency.Default;
|
RemoteSyncFrequency remoteSyncFrequency = RemoteSyncFrequency.Default;
|
||||||
SortingMode sortingMode = SortingMode.Default;
|
SortingMode sortingMode = SortingMode.Default;
|
||||||
@ -59,6 +60,9 @@ class Settings {
|
|||||||
yamlHeaderEnabled = pref.getBool("yamlHeaderEnabled") ?? yamlHeaderEnabled;
|
yamlHeaderEnabled = pref.getBool("yamlHeaderEnabled") ?? yamlHeaderEnabled;
|
||||||
defaultNewNoteFolderSpec =
|
defaultNewNoteFolderSpec =
|
||||||
pref.getString("defaultNewNoteFolderSpec") ?? defaultNewNoteFolderSpec;
|
pref.getString("defaultNewNoteFolderSpec") ?? defaultNewNoteFolderSpec;
|
||||||
|
journalEditordefaultNewNoteFolderSpec =
|
||||||
|
pref.getString("journalEditordefaultNewNoteFolderSpec") ??
|
||||||
|
journalEditordefaultNewNoteFolderSpec;
|
||||||
|
|
||||||
remoteSyncFrequency = RemoteSyncFrequency.fromInternalString(
|
remoteSyncFrequency = RemoteSyncFrequency.fromInternalString(
|
||||||
pref.getString("remoteSyncFrequency"));
|
pref.getString("remoteSyncFrequency"));
|
||||||
@ -97,6 +101,8 @@ class Settings {
|
|||||||
pref.setString("yamlModifiedKey", yamlModifiedKey);
|
pref.setString("yamlModifiedKey", yamlModifiedKey);
|
||||||
pref.setBool("yamlHeaderEnabled", yamlHeaderEnabled);
|
pref.setBool("yamlHeaderEnabled", yamlHeaderEnabled);
|
||||||
pref.setString("defaultNewNoteFolderSpec", defaultNewNoteFolderSpec);
|
pref.setString("defaultNewNoteFolderSpec", defaultNewNoteFolderSpec);
|
||||||
|
pref.setString("journalEditordefaultNewNoteFolderSpec",
|
||||||
|
journalEditordefaultNewNoteFolderSpec);
|
||||||
pref.setString(
|
pref.setString(
|
||||||
"remoteSyncFrequency", remoteSyncFrequency.toInternalString());
|
"remoteSyncFrequency", remoteSyncFrequency.toInternalString());
|
||||||
pref.setString("sortingMode", sortingMode.toInternalString());
|
pref.setString("sortingMode", sortingMode.toInternalString());
|
||||||
@ -126,6 +132,8 @@ class Settings {
|
|||||||
"yamlModifiedKey": yamlModifiedKey,
|
"yamlModifiedKey": yamlModifiedKey,
|
||||||
"yamlHeaderEnabled": yamlHeaderEnabled,
|
"yamlHeaderEnabled": yamlHeaderEnabled,
|
||||||
"defaultNewNoteFolderSpec": defaultNewNoteFolderSpec,
|
"defaultNewNoteFolderSpec": defaultNewNoteFolderSpec,
|
||||||
|
"journalEditordefaultNewNoteFolderSpec":
|
||||||
|
journalEditordefaultNewNoteFolderSpec,
|
||||||
"defaultEditor": defaultEditor.toInternalString(),
|
"defaultEditor": defaultEditor.toInternalString(),
|
||||||
"defaultView": defaultView.toInternalString(),
|
"defaultView": defaultView.toInternalString(),
|
||||||
"sortingMode": sortingMode.toInternalString(),
|
"sortingMode": sortingMode.toInternalString(),
|
||||||
|
Reference in New Issue
Block a user