DocTree
This tool is about organizing notes. Therefore, a few thoughts about this subject.
Actually, since I built it with the documentation for some application at work in mind, it's about organizing documentation - hence the name: Doc for documentation and Tree for organizing. But anyway.
Obviously, notes (or any information) can be hierarchically organized. However, it is by no means always the optimal solution. Mainly because hierarchic organisations tend to be static, or fixed. Among others this means that reordering can be a painful process, and only leads to a new fixed state.
With this tool I try to alleviate this situation by providing the possibility to save the reordered information alongside the original ordering, and without duplicating the information. I also provide some basic tooling for reorganisation: the possibility to sort items on various levels according to their titles, and cut/copy/paste and drag&drop on the tree items.
The basic unit of organization is the collection of all the notes. In this tool this corresponds to a file. Such a collection can be
loaded
reloaded (for instance, to discard all changes from the last time it was saved)
started
saved
saved under a different name
These things are contained in the "Main" menu of the application:
Hide is a feature I copied over from Apropos and NoteTree with which you can minimize the application to the system tray using Ctrl-H. An icon is created so you can "revive" the application by clicking on it (any mouse button will do). I seemed useful at the time I developed it.
Switch Panes can be used to move back and forth from the tree to the text area.
Settings will start a dialog to modify settings; more about this here
Most menu options can also be executed using the keyboard shortcuts mentioned. Some can also be done from the toolbar (note the corresponding icons):
Notes
The basic parts of the collection are the notes - in this case, just pieces of text with a title. Functions for this are contained in the Note menu:
New adds a new note below the currently selected one; Add adds one following it. New under root always adds below the top level. Delete is for removing a note with everything below it; using move you can move a note with everything under it (including images) to another DocTree data file.
Using edit title you can change an existing note's title. The underlying notes can be sorted according to title - highest level only or throughout all leves using the recursive option.
The forward/back movement mentioned here means moving from note to note; in the tree structure this corresponds to downwards/upwards.
Not in this menu is the possibility to create a note under the current one by "splitting" the title; this is described here.
Views
Notes can (need) to be organized in what I call a view. Moreover, they can be organized in more than one way. That's what the view menu is about:
Moving around in this menu means visually that you get a new tree and the notes can be in different places. You can control which view to look at by navigating forward or backward or by selecting a name in the lower part of the menu; you can also open a selection dialog
to choose one.
More on this way to reorganize the information while keeping the original ordering here.
Tree
Views are realized in the form of tree structures that can be nested as deep as you like. The Tree menu contains functions that deal with this, like cut-copy-paste and controlling what is visible:
The Qt version of this tool has an undo/redo mechanism for these actions that can be controlled through the top two menu options that indicate what can be undone / redone at a given moment (and thus change with every action).
cut/copy/paste for tree parts can also be done using the toolbar:
Text
Since notes are pieces of text, there are some basic functions that can be applied to their contents, like copy-paste (and for text undo/redo is also available) - hence the text menu:
cut/copy/paste for text parts can also be done using the toolbar:
Format
I've also added functionality to make the texts nicer to read; see here
Search
One time when I was browsing through the Linux Mint Software catalog, I noticed an application that looks a lot like this one but more professional I guess - it's called CherryTree. It looks a lot more complex but it doesn't have that multi-hierarchy thing...
Exploring its options, it did inspire me to build a feature that I had totally overlooked:
More about this here