130 Commits

Author SHA1 Message Date
6474adfa56 Try implementing State properly
I think I understand the 'State' class a bit better. But I need to cross
check.
2021-02-19 11:09:20 +01:00
8eb8905d6d Add Editor Heuristics to Journal Editor
I frequently make lists in the Journal Editor and it's annoying that
these features aren't available.
2021-02-03 19:24:19 +01:00
04228cb497 Fix Experimental Markdown Toolbar
It's now again visible
2021-02-03 16:34:30 +01:00
2c071fb792 Disable undo/redo for editors where it hasn't been implemented 2021-02-03 16:06:28 +01:00
ebff34b753 Basic implementation of undo/redo
It's not great, as the granularity is too low. But it's a good first
step. It only works in the RawEditor so far.
2021-02-03 16:03:15 +01:00
e80fff575c Move Editor Heuristics to be self contained
This way it can easily be used in other editors
2021-02-03 11:56:20 +01:00
350fbb1ccf MarkdownEditor: Handle title change marking note as modified 2021-02-02 16:25:43 +01:00
8c3abe7b65 MarkdownEditor: Remove undo/redo poc
Figured out a better way to do, and it's better if this is in a separate
class as it needs to be reused with different editors.
2021-02-02 16:22:09 +01:00
b9d765f726 Rename EditorState to TextEditorState
Also remove the EditorHeuristicsResult class. This way all of these are
being combined together.
2021-02-02 16:08:15 +01:00
8c373986bc Move Editor Bottom bar to its own file 2021-02-02 16:03:35 +01:00
be44cc05fe Move autocompletion to inside the editors 2021-02-02 15:57:01 +01:00
2199cd2a3a Add some scaffolding for undo/redo
I don't want to lose these changes and putting them in a branch will
result in merge conflicts.
2021-01-22 10:11:35 +01:00
5571fdb65e Use time.dart
I'm sacrificing const code for readability. So maybe I'll lose a bit of
performance, but this is so much easier to read.
2020-11-10 19:07:09 +01:00
43269bbe53 Add lots of listen: false when using Provider
Provider version 4 has an assert which fires if used incorrectly.
2020-09-28 00:09:14 +02:00
a9b821f360 Remove another case of the global settings 2020-09-25 01:40:03 +02:00
265e253584 Generate one journal entry per day
Fixes #243
2020-09-16 11:08:16 +02:00
dc2c81648e Bug: Typing '---' + Enter creates a new list 2020-09-08 23:08:14 +02:00
b9d8a8daa6 FolderView: Implement basic note selection
You can delete or share a note using this.
2020-09-07 16:37:51 +02:00
e33857f8e9 Do not show Tag Editing screen if the Note cannot have metadata
In the case of '.txt' notes or markdown notes without a yaml header.
2020-09-03 08:52:27 +02:00
7e7503ca2f Editors: Expose the preview markdown button on all editors
It's nice to sometimes use the RawEditor to edit something and then
later you want to see what it looks, and having to switch to the
Markdown Editor for that is very annoying.
2020-08-20 11:47:31 +02:00
6ba0f3974a NoteEditor: Pass it the parentFolder
A note has a parent which is the physical folder it is inside, and a
parent folder which it is being displayed inside. It's useful to have
the latter as that can be used to display the next note - in the case of
the Journal Editor, and open the graph view as well.
2020-08-20 10:42:39 +02:00
2c8bf8d5ae Make the MarkdownToolbar prettier 2020-08-15 12:29:37 +02:00
949a7e6662 Editor: Don't use the BottomAppBar
The BottomAppBar has a SafeArea widget inside which seems to give it an
extra top padding on my phone (OnePlus), I'm not sure why it thinks this
extra top padding is required.

Maybe this workaround will fail on other devices
2020-08-15 12:23:43 +02:00
c7a956c5bf Give MarkdownToolBar to TextEditingController
Instead of handling every single callback.
2020-08-13 00:12:25 +02:00
c048ead8a9 Log every feature and how we reach the purchase page
We now have a list of all the features that are implemented, and we can
use that to show a kind of feature list which can be used to -

1. Move away from app rental model
2. Showcase a feature list; see WorkingCopy
2020-08-10 16:05:26 +02:00
e6e0e08fe4 Mark more strings as translatable 2020-08-10 12:16:03 +02:00
9d55b449d3 Settings: Access it through the Provider
Make it a ChageNotifier and try to access it through the Provider
instead of like a global variable. This way, the state is better
managed and it'll be easier to split out Settings into smaller classes.
2020-08-09 01:29:22 +02:00
33c5aae23e MarkdownToolBar: First attempt at the toolbar
This can be enabled via 'Settings -> Experimental'. It's very rough
right now and a lot still needs to be done.

Related to #157
2020-08-06 13:40:45 +02:00
2ef2ccdf23 Editors: Allow the title to be edited even when YAML is disabled 2020-07-29 16:27:15 +02:00
15b978cacb Editors: Remove code duplication 2020-07-28 15:37:31 +02:00
0fe965a2d6 FocusMode: Show the elements when clicking on the top/bottom bar
Ideally clicking anywhere should show the UI, but that doesn't seem to
be working. With this at least clicking on the top/bottom bar will show
the UI.
2020-07-27 12:43:40 +02:00
b6e8f7a883 FocusMode: Do not accept inputs on the hidden elements
Setting the opacity to 0 doesn't meant we cannot interact with them.
2020-07-27 12:32:11 +02:00
606b3d8c24 Fork ChangeNotifier
The EditorStates are inheriting from State and using the ChangeNotifier
mixin. Both the ChangeNotifier and the State class have a dispose
function, which needs to be call.

Without this only the ChangeNotifier's dispose method was being called.
2020-07-27 10:17:17 +02:00
175bf85531 Save zenMode in settings
That way we don't need to toggle it each time.

Maybe it would be nice to have this exposed via the settings as well,
per editor. So I could enable it / disable it per editor.
2020-07-27 10:08:17 +02:00
3996a9163b Change Zen Mode text
Show 'Enable Zen Mode' or 'Disable Zen Mode' instead of just the toggle.
2020-07-27 09:49:24 +02:00
571c219711 Move EditorScaffold to its own file 2020-07-27 09:44:36 +02:00
e9cc050866 Implement a basic Zen Mode
This can be enabled in all the editors.
2020-07-27 09:39:31 +02:00
9d00fdac06 Use import_sorter
flutter pub run import_sorter:main --no-comments

The code feels much cleaner
2020-07-24 12:43:28 +02:00
5d7f616c6e const++ 2020-07-21 10:46:03 +02:00
c31edc3b57 MarkdownEditor: Change default mode to "Last Used"
Add an extra option of Last Used, along with Edit / View.
2020-07-06 17:14:07 +02:00
a43498ef6d Editor Heurisitics: Should work even if the items have spaces 2020-06-08 00:28:14 +02:00
6735f400fb Fix EditorHeuristics tests 2020-06-04 14:32:42 +02:00
9a39960c03 EditorHeuristics: Handle edge cases 2020-06-04 02:12:06 +02:00
c50e8ad999 Add more editor heuristics 2020-06-03 12:10:06 +02:00
47e8ac8b08 Auto add numbered lists when typing
Since we're using markdown it's kinda awesome that we can re-use the
same last number and markdown will arrange the numbers properly.
2020-06-01 23:26:49 +02:00
a5a7211788 Bullet Lists: Auto add bullets lists even when modifying in the middle 2020-06-01 21:14:59 +02:00
f4cc8e2b47 Refactor Auto bullet list in Editor
The earlier code base was a bit fragile, I prefer having this
unit-tested as the logic is a bit tricky, and I still don't support all
the use-cases.
2020-06-01 20:55:04 +02:00
e813edf397 Avoid using deprecated methods 2020-06-01 20:07:28 +02:00
9a726ba8db MarkdownEditor: Improve auto-bullet points
This patch scares me quite a bit. It's taken forever, and even now we
don't add a bullet point if we edit the middle of a list.
2020-06-01 17:55:42 +02:00
3808624655 MarkdownEditor: Auto add bullet points when editing
If the user presses Enter and were previously editing a bullet point,
then we should add a new bullet point with the same indentation.

This is a massive hack, and I don't like the way it is implemented. It
sucks that I cannot seem to access the keyboard events for the
TextField.

Fixes #140
2020-06-01 17:18:36 +02:00