mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-27 17:29:50 +08:00
Rename NoteFolder -> NotesFolder
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:fimber/fimber.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/note_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
|
||||
class AppState {
|
||||
//
|
||||
@ -28,7 +28,7 @@ class AppState {
|
||||
}
|
||||
|
||||
List<Note> notes = [];
|
||||
NoteFolder noteFolder;
|
||||
NotesFolder noteFolder;
|
||||
|
||||
AppState(SharedPreferences pref) {
|
||||
localGitRepoConfigured = pref.getBool("localGitRepoConfigured") ?? false;
|
||||
|
@ -1,11 +1,11 @@
|
||||
import 'note.dart';
|
||||
import 'note_folder.dart';
|
||||
import 'notes_folder.dart';
|
||||
|
||||
// FIXME: Maybe the parent should be a part of the Note, and the NoteFolder
|
||||
// or maybe also a part of the NoteFolder
|
||||
class NoteFSEntity {
|
||||
NoteFolder parent;
|
||||
NoteFolder folder;
|
||||
NotesFolder parent;
|
||||
NotesFolder folder;
|
||||
Note note;
|
||||
|
||||
NoteFSEntity(this.parent, {this.folder, this.note}) {
|
||||
|
@ -5,11 +5,12 @@ import 'package:path/path.dart';
|
||||
import 'note.dart';
|
||||
import 'note_fs_entity.dart';
|
||||
|
||||
class NoteFolder {
|
||||
class NotesFolder {
|
||||
NotesFolder parent;
|
||||
List<NoteFSEntity> entities = [];
|
||||
String folderPath;
|
||||
|
||||
NoteFolder(this.folderPath);
|
||||
NotesFolder(this.parent, this.folderPath);
|
||||
|
||||
bool get isEmpty {
|
||||
return entities.isEmpty;
|
||||
@ -55,24 +56,55 @@ class NoteFolder {
|
||||
var lister = dir.list(recursive: false, followLinks: false);
|
||||
await for (var fsEntity in lister) {
|
||||
if (fsEntity is Directory) {
|
||||
var subFolder = NoteFolder(fsEntity.path);
|
||||
var subFolder = NotesFolder(this, fsEntity.path);
|
||||
if (subFolder.name.startsWith('.')) {
|
||||
continue;
|
||||
}
|
||||
await subFolder.loadRecursively();
|
||||
|
||||
var noteFSEntity = NoteFSEntity(this, folder: subFolder);
|
||||
var noteFSEntity = NoteFSEntity(folder: subFolder);
|
||||
entities.add(noteFSEntity);
|
||||
}
|
||||
|
||||
var note = Note(fsEntity.path);
|
||||
var note = Note(this, fsEntity.path);
|
||||
if (!note.filePath.toLowerCase().endsWith('.md')) {
|
||||
continue;
|
||||
}
|
||||
await note.load();
|
||||
|
||||
var noteFSEntity = NoteFSEntity(this, note: note);
|
||||
var noteFSEntity = NoteFSEntity(note: note);
|
||||
entities.add(noteFSEntity);
|
||||
}
|
||||
}
|
||||
|
||||
void add(Note note) {
|
||||
assert(note.parent == this);
|
||||
entities.add(NoteFSEntity(note: note));
|
||||
}
|
||||
|
||||
void insert(int index, Note note) {
|
||||
assert(note.parent == this);
|
||||
|
||||
for (var i = 0; i < entities.length; i++) {
|
||||
var e = entities[i];
|
||||
if (e is NotesFolder) continue;
|
||||
|
||||
if (index == 0) {
|
||||
entities.insert(i, NoteFSEntity(note: note));
|
||||
return;
|
||||
}
|
||||
index--;
|
||||
}
|
||||
}
|
||||
|
||||
void remove(Note note) {
|
||||
assert(note.parent == this);
|
||||
var i = entities.indexWhere((e) {
|
||||
if (e.isFolder) return false;
|
||||
return e.note.filePath == note.filePath;
|
||||
});
|
||||
assert(i != -1);
|
||||
|
||||
entities.removeAt(i);
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ import 'package:gitjournal/widgets/app_bar_menu_button.dart';
|
||||
import 'package:gitjournal/widgets/app_drawer.dart';
|
||||
import 'package:gitjournal/widgets/folder_tree_view.dart';
|
||||
import 'package:gitjournal/state_container.dart';
|
||||
import 'package:gitjournal/core/note_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
|
||||
import 'journal_listing.dart';
|
||||
|
||||
@ -16,7 +16,7 @@ class FolderListingScreen extends StatelessWidget {
|
||||
|
||||
var treeView = FolderTreeView(
|
||||
rootFolder: appState.noteFolder,
|
||||
onFolderSelected: (NoteFolder folder) {
|
||||
onFolderSelected: (NotesFolder folder) {
|
||||
var route = MaterialPageRoute(
|
||||
builder: (context) => JournalListingScreen(
|
||||
noteFolder: folder,
|
||||
|
@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/note_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/utils.dart';
|
||||
import 'package:gitjournal/apis/git.dart';
|
||||
import 'package:gitjournal/screens/journal_editor.dart';
|
||||
@ -12,7 +12,7 @@ import 'package:gitjournal/widgets/journal_list.dart';
|
||||
import 'package:gitjournal/themes.dart';
|
||||
|
||||
class JournalListingScreen extends StatelessWidget {
|
||||
final NoteFolder noteFolder;
|
||||
final NotesFolder noteFolder;
|
||||
final bool recursive;
|
||||
|
||||
JournalListingScreen({@required this.noteFolder, this.recursive = false});
|
||||
|
@ -8,7 +8,7 @@ import 'package:gitjournal/analytics.dart';
|
||||
import 'package:gitjournal/apis/git_migration.dart';
|
||||
import 'package:gitjournal/appstate.dart';
|
||||
import 'package:gitjournal/core/note.dart';
|
||||
import 'package:gitjournal/core/note_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
import 'package:gitjournal/core/note_fileName.dart';
|
||||
import 'package:gitjournal/storage/git_storage.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
@ -57,7 +57,7 @@ class StateContainerState extends State<StateContainer> {
|
||||
dirName: appState.localGitRepoPath,
|
||||
);
|
||||
}
|
||||
appState.noteFolder = NoteFolder(noteRepo.notesBasePath);
|
||||
appState.noteFolder = NotesFolder(noteRepo.notesBasePath);
|
||||
|
||||
// Just a fail safe
|
||||
if (!appState.remoteGitRepoConfigured) {
|
||||
@ -225,7 +225,7 @@ class StateContainerState extends State<StateContainer> {
|
||||
baseDirectory: appState.gitBaseDirectory,
|
||||
dirName: appState.remoteGitRepoFolderName,
|
||||
);
|
||||
appState.noteFolder = NoteFolder(noteRepo.notesBasePath);
|
||||
appState.noteFolder = NotesFolder(noteRepo.notesBasePath);
|
||||
|
||||
await _persistConfig();
|
||||
_loadNotesFromDisk();
|
||||
|
@ -1,11 +1,11 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:gitjournal/core/note_folder.dart';
|
||||
import 'package:gitjournal/core/notes_folder.dart';
|
||||
|
||||
typedef void FolderSelectedCallback(NoteFolder folder);
|
||||
typedef void FolderSelectedCallback(NotesFolder folder);
|
||||
|
||||
class FolderTreeView extends StatelessWidget {
|
||||
final NoteFolder rootFolder;
|
||||
final NotesFolder rootFolder;
|
||||
final FolderSelectedCallback onFolderSelected;
|
||||
|
||||
FolderTreeView({
|
||||
@ -29,7 +29,7 @@ class FolderTreeView extends StatelessWidget {
|
||||
}
|
||||
|
||||
class FolderTile extends StatefulWidget {
|
||||
final NoteFolder folder;
|
||||
final NotesFolder folder;
|
||||
final FolderSelectedCallback onFolderSelected;
|
||||
|
||||
FolderTile(this.folder, this.onFolderSelected);
|
||||
|
Reference in New Issue
Block a user