mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-30 19:36:25 +08:00
Save default folder view on change
This commit is contained in:
@ -26,7 +26,7 @@ class FolderView extends StatefulWidget {
|
|||||||
|
|
||||||
class _FolderViewState extends State<FolderView> {
|
class _FolderViewState extends State<FolderView> {
|
||||||
SortedNotesFolder sortedNotesFolder;
|
SortedNotesFolder sortedNotesFolder;
|
||||||
FolderViewType _viewType;
|
FolderViewType _viewType = FolderViewType.Standard;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@ -35,7 +35,18 @@ class _FolderViewState extends State<FolderView> {
|
|||||||
folder: widget.notesFolder,
|
folder: widget.notesFolder,
|
||||||
sortingMode: Settings.instance.sortingMode,
|
sortingMode: Settings.instance.sortingMode,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
switch (Settings.instance.defaultView) {
|
||||||
|
case SettingsFolderViewType.Standard:
|
||||||
_viewType = FolderViewType.Standard;
|
_viewType = FolderViewType.Standard;
|
||||||
|
break;
|
||||||
|
case SettingsFolderViewType.Compact:
|
||||||
|
_viewType = FolderViewType.Compact;
|
||||||
|
break;
|
||||||
|
case SettingsFolderViewType.Journal:
|
||||||
|
_viewType = FolderViewType.Journal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -199,6 +210,19 @@ class _FolderViewState extends State<FolderView> {
|
|||||||
if (newViewType != null) {
|
if (newViewType != null) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_viewType = newViewType;
|
_viewType = newViewType;
|
||||||
|
|
||||||
|
switch (_viewType) {
|
||||||
|
case FolderViewType.Standard:
|
||||||
|
Settings.instance.defaultView = SettingsFolderViewType.Standard;
|
||||||
|
break;
|
||||||
|
case FolderViewType.Journal:
|
||||||
|
Settings.instance.defaultView = SettingsFolderViewType.Journal;
|
||||||
|
break;
|
||||||
|
case FolderViewType.Compact:
|
||||||
|
Settings.instance.defaultView = SettingsFolderViewType.Compact;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
Settings.instance.save();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ class Settings {
|
|||||||
RemoteSyncFrequency remoteSyncFrequency = RemoteSyncFrequency.Default;
|
RemoteSyncFrequency remoteSyncFrequency = RemoteSyncFrequency.Default;
|
||||||
SortingMode sortingMode = SortingMode.Default;
|
SortingMode sortingMode = SortingMode.Default;
|
||||||
SettingsEditorType defaultEditor = SettingsEditorType.Default;
|
SettingsEditorType defaultEditor = SettingsEditorType.Default;
|
||||||
|
SettingsFolderViewType defaultView = SettingsFolderViewType.Default;
|
||||||
int version = 0;
|
int version = 0;
|
||||||
|
|
||||||
void load(SharedPreferences pref) {
|
void load(SharedPreferences pref) {
|
||||||
@ -50,6 +51,8 @@ class Settings {
|
|||||||
sortingMode = SortingMode.fromInternalString(pref.getString("sortingMode"));
|
sortingMode = SortingMode.fromInternalString(pref.getString("sortingMode"));
|
||||||
defaultEditor =
|
defaultEditor =
|
||||||
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
|
SettingsEditorType.fromInternalString(pref.getString("defaultEditor"));
|
||||||
|
defaultView = SettingsFolderViewType.fromInternalString(
|
||||||
|
pref.getString("defaultView"));
|
||||||
|
|
||||||
version = pref.getInt("settingsVersion") ?? version;
|
version = pref.getInt("settingsVersion") ?? version;
|
||||||
}
|
}
|
||||||
@ -68,6 +71,7 @@ class Settings {
|
|||||||
"remoteSyncFrequency", remoteSyncFrequency.toInternalString());
|
"remoteSyncFrequency", remoteSyncFrequency.toInternalString());
|
||||||
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.setInt("settingsVersion", version);
|
pref.setInt("settingsVersion", version);
|
||||||
|
|
||||||
// Shouldn't we check if something has actually changed?
|
// Shouldn't we check if something has actually changed?
|
||||||
@ -87,6 +91,9 @@ class Settings {
|
|||||||
"yamlHeaderEnabled": yamlHeaderEnabled,
|
"yamlHeaderEnabled": yamlHeaderEnabled,
|
||||||
"defaultNewNoteFolder": defaultNewNoteFolder,
|
"defaultNewNoteFolder": defaultNewNoteFolder,
|
||||||
"defaultEditor": defaultEditor.toInternalString(),
|
"defaultEditor": defaultEditor.toInternalString(),
|
||||||
|
"defaultView": defaultView.toInternalString(),
|
||||||
|
"sortingMode": sortingMode.toInternalString(),
|
||||||
|
"remoteSyncFrequency": remoteSyncFrequency.toInternalString(),
|
||||||
"version": version,
|
"version": version,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -250,3 +257,52 @@ class SettingsEditorType {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SettingsFolderViewType {
|
||||||
|
static const Standard = SettingsFolderViewType("Standard", "Standard");
|
||||||
|
static const Journal = SettingsFolderViewType("Journal", "Journal");
|
||||||
|
static const Compact = SettingsFolderViewType("Compact", "Compact");
|
||||||
|
static const Default = Standard;
|
||||||
|
|
||||||
|
final String _str;
|
||||||
|
final String _publicString;
|
||||||
|
const SettingsFolderViewType(this._publicString, this._str);
|
||||||
|
|
||||||
|
String toInternalString() {
|
||||||
|
return _str;
|
||||||
|
}
|
||||||
|
|
||||||
|
String toPublicString() {
|
||||||
|
return _publicString;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const options = <SettingsFolderViewType>[
|
||||||
|
Standard,
|
||||||
|
Journal,
|
||||||
|
Compact,
|
||||||
|
];
|
||||||
|
|
||||||
|
static SettingsFolderViewType fromInternalString(String str) {
|
||||||
|
for (var opt in options) {
|
||||||
|
if (opt.toInternalString() == str) {
|
||||||
|
return opt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SettingsFolderViewType fromPublicString(String str) {
|
||||||
|
for (var opt in options) {
|
||||||
|
if (opt.toPublicString() == str) {
|
||||||
|
return opt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
assert(false, "FolderViewType toString should never be called");
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user