Thank you for your work on this!
It's been awhile since my last devlog update. So much time, in fact, that we passed two version milestones - v0.1.2 and v0.2.0! Surprise! So I'll be iterating through all of the changes in a handy changelog here! First, here's a short guide to the major features added.
A new Timer Task has been added, allowing you to add custom Timers to your Plan. Many developers find that they work more efficiently and effectively with a Pomodoro-style development cycle, where you alternate between working and resting for short periods of time. With the Timer Task, you can now create this kind of workflow from within MasterPlan. Also, Timers that are next to each other will automatically trigger in sequence, much like Sounds do now.
Give it a try if you find that time keeps on slipping into the future!
Textboxes have been drastically improved, allowing for selection of text, as well as copying, cutting, and pasting to and from the clipboard using the standard keyboard shortcuts for these purposes (Ctrl+C, Ctrl+X, and Ctrl+V, respectively). (Note that the shortcuts should use the Super key (Apple key) on Mac; this is a known issue that I need to look into and resolve.) The accuracy of clicking on text and moving around text lines via the keyboard has also been improved, making for a more seamless experience when entering text into MasterPlan.
So! You can now select multiple Tasks at a time by holding the shift key and pressing the keyboard key up or down. Hold control and use the arrow keys to move a Task around now. You can also move multiple Tasks at a time now, rather than just one at a time. When moving Tasks, the indentation stays the same, making it easier for you (and me, haha) to maintain your Tasks' desired hierarchy and ordering. (Note that it's a known issue that selecting multiple Tasks at the same time by holding shift doesn't quite work as it should - it grows the selection amount, rather than moving the ending of the selection sequence; I'll have to get around to fixing it.)
Resources are now shared between Tasks, meaning that MasterPlan should be more lightweight than before. In addition, I've added the usage of MIME-type detection to improve resource downloading and identification. For those who don't know, essentially, a MIME type is a bit of information the computer uses to know what kind of file something is. By doing this, downloading images or sounds is now more fool-proof and less fiddly, as the MIME type tells MasterPlan what the file is and how to load it. In other words, Paste Content now works better - if you paste an image link into MasterPlan, it will display the image (unless it's just unsupported at the current moment, like SVG files).
There's a splash screen now, which is the image at the header of this devlog post. It's kinda cool! I hope to keep making more, like Blender does for its releases. This particular splash screen was made in Blender, as well~
As a sidenote, since I added controls for the Timer, Sound Tasks also now have the same controls to handle playing, pausing, and restarting sounds. That's a good start (haha).
Note that due to some changes in how MasterPlan automatically loads the last saved plan, you will most likely have to go ahead and manually load your plan after this update. Also, you will need to enable the autoload feature in the Project Settings window for MasterPlan to automatically load your desired plan.
Here's the full changelog below:
Fix: Splashscreen not displaying on Mac build.
Splash screen now displays for 1.5 seconds minimum.
Hopeful Fix: Set application build type to GUI on Windows, making it so the command prompt doesn't appear when running.
FIX: Task bar not filling for Timer when running.
Adding splash screen.
FIX: Task completion time constantly set on save for parent Tasks with completed subtasks.
Adding Timer Task type. The Timer allows people to add Timers to their plan, allowing them to better control how and when they work. It allows for Pomodoro-style timing-based workflows (work for x minutes, rest for y minutes, repeat) into their daily development. Timers that are next to each other trigger in sequence, much like Sound Tasks.
Sound Tasks now have buttons for playing, pausing, and restarting sounds.
Completing Tasks with [C] now is displayed as a notification.
Deadline patterns cycle faster to indicate urgency.
Changed deadline icons and patterns a bit.
FIX: Couldn't type caps in textbox after Ctrl+A to select all text.
FIX: Couldn't hold shift and click to select text.
Saving version number in .plan save file. This is to allow backwards compatibility being built in with previous saves in case features are added, changed, or removed.
FIX: Crash if starting MasterPlan and Autoload Last Project setting didn't save.
Major changes - Resource management improvements.
Resources (images and GIFs) are now stored in a central location on the Project and are reused between Tasks.
Resource downloading and loading has been improved by the addition of the usage of a MIME type detection library. This allows for MasterPlan to see what kind of file a file is after downloading, even if the file doesn't have the correct filepath. This means that Paste Content now works much more reliably across media found on the Internet.
Lengthening the amount of time messages are on screen (5 seconds to 7 seconds).
Escape key now defocuses textboxes.
Enter key now is also a shortcut to jump to the next Task in a search when the searchbar is highlighted (like Ctrl+F). Shift+Enter goes back (much like Shift+Ctrl+F).
Adding project setting to save sounds that are currently playing.
FIX: Percentage didn't fill a Task if under 1% filled. That value has now been bumped to 0.01%.
FIX: Log reporting selection and deselection of Tasks was incorrect.
FIX: Pasting Tasks now lowers them below the column of existing Tasks (if the Task is completable). A TODO is to make all Tasks able to have neighbors so you can shift them around easily using the keyboard.
FIX: Crash if using Ctrl+V to paste Tasks with no Tasks copied.
FIX: Crash if playing resampled audio and looping it multiple times (4-6 in my tests on a specific file). This seems to be FIXed by lowering the quality of resampling (quality of 4 > quality of 1).
FIX: Hang when deleting Tasks due to Tasks registering their neighbors that include themselves, resulting in a loop (A.TaskAbove = B, B.TaskAbove = A). This is resolved by comparing Task positions more absolutely to determine whether a Task is another's neighbor.
Massive textbox improvements.
You can now select blocks of text in textboxes, either by mouse click and drag, or by holding shift and using the keyboard.
Ctrl + A selects all Text.
You can now copy, paste, and cut text to/from the system clipboard in textboxes.
FIX: Navigating text lines by keyboard in textboxes is no longer as inaccurate. Clicking on lines is also vastly improved.
You can now move multiple Tasks at a time with the keyboard.
You can now select multiple Tasks using Shift + up or down arrow.
Ctrl + arrow keys now move Tasks, rather than Shift. This is a bit more awkward, but more consistent with how holding shift allows for selecting multiple Tasks with the mouse.
Moving Tasks no longer adjusts the indentation. This seems better to keep Tasks arranged consistently and not jump around when moving groups of Tasks around.
Escape now deselects all Tasks.
Page Up and Page Down now selects the first or last Task in a column, respectively.
FIX: Shadows no longer render on top of Tasks.
FIX: You can now pan while dragging Tasks.
FIX: Projects couldn't restore the pan of the camera from saved plans. To resolve this, creating new Tasks now no longer focuses the view on them.
HOPEFUL FIX: Zoom locks when close to targeted zoom. Seems like I was getting some artifacting at 1x zoom level, but I can't seem to reproduce it reliably. This should help make sure the zoom never stays at fractional levels.
Other assorted code rearrangings and minor fixes.
MasterPlan now maintains global program settings in an external file.
FIX: Crash due to color theme spinner pointing to a theme that no longer exists if a theme is deleted or renamed.
FIX: Minor shadow bug (shadow blitting should be down by a pixel to not have jank on outer vertical edge).
Shadows are now "brighter" / denser.
Color theme spinner is wider now.
Themes reload when opening project settings now.
Adding Shade Thrower 3099 cyberpunk theme.
Changing notification fading from linear to cubic interpolation, making it easier to read for longer before it disappears.
Adding an icon for broken sounds.
More notifications display for loading images and sounds.
FIX: #7 - Backspace teleports to origin for a frame before animating pan.
New Tasks are opened after creation.
Adding option for autoloading last saved project.
FIX: Context menu now never opens offscreen (#9).
FIX: Current value can't go above maximum for Progression Tasks. (#12)
Other assorted code rearrangings and minor fixes.
Welp, that's about it! Thanks a lot for working with me and giving MasterPlan a try! I hope to keep going with development and make it even better than ever!